/* Lookup the resource. */
if (!list_empty(&sm_state->map_list)) {
list_for_each_entry(map, &sm_state->map_list, map_list) {
- if (map->res_pid != pid || map->res_addr != addr)
+ if (map->res_pid != pid)
+ continue;
+ if (!(map->res_addr <= addr &&
+ addr < map->res_addr + map->resource->res_size))
continue;
pr_debug("[%s]: global map %p (pid %u, addr %lx) -> vc-hdl %x (usr-hdl %x)\n",
/* Lookup the resource. */
if (!list_empty(&sm_state->map_list)) {
list_for_each_entry(map, &sm_state->map_list, map_list) {
- if (map->res_pid != pid || map->res_addr != addr)
+ if (map->res_pid != pid)
+ continue;
+ if (!(map->res_addr <= addr &&
+ addr < map->res_addr + map->resource->res_size))
continue;
pr_debug("[%s]: global map %p (pid %u, addr %lx) -> usr-hdl %x (vc-hdl %x)\n",