Lines Matching refs:res
306 struct apei_res *res, *resn, *res_ins = NULL; in apei_res_add() local
312 list_for_each_entry_safe(res, resn, res_list, list) { in apei_res_add()
313 if (res->start > end || res->end < start) in apei_res_add()
315 else if (end <= res->end && start >= res->start) { in apei_res_add()
319 list_del(&res->list); in apei_res_add()
320 res->start = start = min(res->start, start); in apei_res_add()
321 res->end = end = max(res->end, end); in apei_res_add()
323 res_ins = res; in apei_res_add()
330 res_ins = kmalloc(sizeof(*res), GFP_KERNEL); in apei_res_add()
344 struct apei_res *res1, *resn1, *res2, *res; in apei_res_sub() local
359 res = kmalloc(sizeof(*res), GFP_KERNEL); in apei_res_sub()
360 if (!res) in apei_res_sub()
362 res->start = res2->end; in apei_res_sub()
363 res->end = res1->end; in apei_res_sub()
365 list_add(&res->list, &res1->list); in apei_res_sub()
366 resn1 = res; in apei_res_sub()
383 struct apei_res *res, *resn; in apei_res_clean() local
385 list_for_each_entry_safe(res, resn, res_list, list) { in apei_res_clean()
386 list_del(&res->list); in apei_res_clean()
387 kfree(res); in apei_res_clean()
402 struct apei_res *res; in apei_resources_merge() local
404 list_for_each_entry(res, &resources2->iomem, list) { in apei_resources_merge()
405 rc = apei_res_add(&resources1->iomem, res->start, in apei_resources_merge()
406 res->end - res->start); in apei_resources_merge()
410 list_for_each_entry(res, &resources2->ioport, list) { in apei_resources_merge()
411 rc = apei_res_add(&resources1->ioport, res->start, in apei_resources_merge()
412 res->end - res->start); in apei_resources_merge()
475 struct apei_res *res, *res_bak = NULL; in apei_resources_request() local
508 list_for_each_entry(res, &resources->iomem, list) { in apei_resources_request()
509 r = request_mem_region(res->start, res->end - res->start, in apei_resources_request()
514 (unsigned long long)res->start, in apei_resources_request()
515 (unsigned long long)res->end - 1, desc); in apei_resources_request()
516 res_bak = res; in apei_resources_request()
521 list_for_each_entry(res, &resources->ioport, list) { in apei_resources_request()
522 r = request_region(res->start, res->end - res->start, desc); in apei_resources_request()
526 (unsigned long long)res->start, in apei_resources_request()
527 (unsigned long long)res->end - 1, desc); in apei_resources_request()
528 res_bak = res; in apei_resources_request()
541 list_for_each_entry(res, &resources->ioport, list) { in apei_resources_request()
542 if (res == res_bak) in apei_resources_request()
544 release_region(res->start, res->end - res->start); in apei_resources_request()
548 list_for_each_entry(res, &resources->iomem, list) { in apei_resources_request()
549 if (res == res_bak) in apei_resources_request()
551 release_mem_region(res->start, res->end - res->start); in apei_resources_request()
564 struct apei_res *res; in apei_resources_release() local
566 list_for_each_entry(res, &resources->iomem, list) in apei_resources_release()
567 release_mem_region(res->start, res->end - res->start); in apei_resources_release()
568 list_for_each_entry(res, &resources->ioport, list) in apei_resources_release()
569 release_region(res->start, res->end - res->start); in apei_resources_release()