mirror of
https://github.com/opnsense/src.git
synced 2026-06-04 22:32:43 -04:00
nexus: Use resource_validate_map_request
Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D42724
This commit is contained in:
parent
19f073c612
commit
b887b665eb
4 changed files with 20 additions and 56 deletions
|
|
@ -462,7 +462,8 @@ nexus_map_resource(device_t bus, device_t child, int type, struct resource *r,
|
|||
struct resource_map_request *argsp, struct resource_map *map)
|
||||
{
|
||||
struct resource_map_request args;
|
||||
rman_res_t end, length, start;
|
||||
rman_res_t length, start;
|
||||
int error;
|
||||
|
||||
/* Resources must be active to be mapped. */
|
||||
if ((rman_get_flags(r) & RF_ACTIVE) == 0)
|
||||
|
|
@ -478,18 +479,9 @@ nexus_map_resource(device_t bus, device_t child, int type, struct resource *r,
|
|||
}
|
||||
|
||||
resource_init_map_request(&args);
|
||||
if (argsp != NULL)
|
||||
bcopy(argsp, &args, imin(argsp->size, args.size));
|
||||
start = rman_get_start(r) + args.offset;
|
||||
if (args.length == 0)
|
||||
length = rman_get_size(r);
|
||||
else
|
||||
length = args.length;
|
||||
end = start + length - 1;
|
||||
if (start > rman_get_end(r) || start < rman_get_start(r))
|
||||
return (EINVAL);
|
||||
if (end > rman_get_end(r) || end < start)
|
||||
return (EINVAL);
|
||||
error = resource_validate_map_request(r, argsp, &args, &start, &length);
|
||||
if (error)
|
||||
return (error);
|
||||
|
||||
map->r_vaddr = pmap_mapdev_attr(start, length, args.memattr);
|
||||
map->r_bustag = &memmap_bus;
|
||||
|
|
|
|||
|
|
@ -353,9 +353,9 @@ static int
|
|||
nexus_map_resource(device_t bus, device_t child, int type, struct resource *r,
|
||||
struct resource_map_request *argsp, struct resource_map *map)
|
||||
{
|
||||
|
||||
struct resource_map_request args;
|
||||
rman_res_t end, length, start;
|
||||
rman_res_t length, start;
|
||||
int error;
|
||||
|
||||
/* Resources must be active to be mapped. */
|
||||
if (!(rman_get_flags(r) & RF_ACTIVE))
|
||||
|
|
@ -371,21 +371,9 @@ nexus_map_resource(device_t bus, device_t child, int type, struct resource *r,
|
|||
}
|
||||
|
||||
resource_init_map_request(&args);
|
||||
if (argsp != NULL)
|
||||
bcopy(argsp, &args, imin(argsp->size, args.size));
|
||||
|
||||
start = rman_get_start(r) + args.offset;
|
||||
if (args.length == 0)
|
||||
length = rman_get_size(r);
|
||||
else
|
||||
length = args.length;
|
||||
|
||||
end = start + length - 1;
|
||||
if (start > rman_get_end(r) || start < rman_get_start(r))
|
||||
return (EINVAL);
|
||||
|
||||
if (end > rman_get_end(r) || end < start)
|
||||
return (EINVAL);
|
||||
error = resource_validate_map_request(r, argsp, &args, &start, &length);
|
||||
if (error)
|
||||
return (error);
|
||||
|
||||
/*
|
||||
* If this is a memory resource, map it into the kernel.
|
||||
|
|
|
|||
|
|
@ -424,7 +424,8 @@ nexus_map_resource(device_t bus, device_t child, int type, struct resource *r,
|
|||
struct resource_map_request *argsp, struct resource_map *map)
|
||||
{
|
||||
struct resource_map_request args;
|
||||
rman_res_t end, length, start;
|
||||
rman_res_t length, start;
|
||||
int error;
|
||||
|
||||
/* Resources must be active to be mapped. */
|
||||
if ((rman_get_flags(r) & RF_ACTIVE) == 0)
|
||||
|
|
@ -440,18 +441,9 @@ nexus_map_resource(device_t bus, device_t child, int type, struct resource *r,
|
|||
}
|
||||
|
||||
resource_init_map_request(&args);
|
||||
if (argsp != NULL)
|
||||
bcopy(argsp, &args, imin(argsp->size, args.size));
|
||||
start = rman_get_start(r) + args.offset;
|
||||
if (args.length == 0)
|
||||
length = rman_get_size(r);
|
||||
else
|
||||
length = args.length;
|
||||
end = start + length - 1;
|
||||
if (start > rman_get_end(r) || start < rman_get_start(r))
|
||||
return (EINVAL);
|
||||
if (end > rman_get_end(r) || end < start)
|
||||
return (EINVAL);
|
||||
error = resource_validate_map_request(r, argsp, &args, &start, &length);
|
||||
if (error)
|
||||
return (error);
|
||||
|
||||
map->r_vaddr = pmap_mapdev(start, length);
|
||||
map->r_bustag = &memmap_bus;
|
||||
|
|
|
|||
|
|
@ -458,7 +458,8 @@ nexus_map_resource(device_t bus, device_t child, int type, struct resource *r,
|
|||
struct resource_map_request *argsp, struct resource_map *map)
|
||||
{
|
||||
struct resource_map_request args;
|
||||
rman_res_t end, length, start;
|
||||
rman_res_t length, start;
|
||||
int error;
|
||||
|
||||
/* Resources must be active to be mapped. */
|
||||
if (!(rman_get_flags(r) & RF_ACTIVE))
|
||||
|
|
@ -474,18 +475,9 @@ nexus_map_resource(device_t bus, device_t child, int type, struct resource *r,
|
|||
}
|
||||
|
||||
resource_init_map_request(&args);
|
||||
if (argsp != NULL)
|
||||
bcopy(argsp, &args, imin(argsp->size, args.size));
|
||||
start = rman_get_start(r) + args.offset;
|
||||
if (args.length == 0)
|
||||
length = rman_get_size(r);
|
||||
else
|
||||
length = args.length;
|
||||
end = start + length - 1;
|
||||
if (start > rman_get_end(r) || start < rman_get_start(r))
|
||||
return (EINVAL);
|
||||
if (end > rman_get_end(r) || end < start)
|
||||
return (EINVAL);
|
||||
error = resource_validate_map_request(r, argsp, &args, &start, &length);
|
||||
if (error)
|
||||
return (error);
|
||||
|
||||
/*
|
||||
* If this is a memory resource, map it into the kernel.
|
||||
|
|
|
|||
Loading…
Reference in a new issue