Lines Matching refs:res

310 	struct apei_res *res, *resn, *res_ins = NULL;  in apei_res_add()  local
316 list_for_each_entry_safe(res, resn, res_list, list) { in apei_res_add()
317 if (res->start > end || res->end < start) in apei_res_add()
319 else if (end <= res->end && start >= res->start) { in apei_res_add()
323 list_del(&res->list); in apei_res_add()
324 res->start = start = min(res->start, start); in apei_res_add()
325 res->end = end = max(res->end, end); in apei_res_add()
327 res_ins = res; in apei_res_add()
334 res_ins = kmalloc(sizeof(*res), GFP_KERNEL); in apei_res_add()
348 struct apei_res *res1, *resn1, *res2, *res; in apei_res_sub() local
363 res = kmalloc(sizeof(*res), GFP_KERNEL); in apei_res_sub()
364 if (!res) in apei_res_sub()
366 res->start = res2->end; in apei_res_sub()
367 res->end = res1->end; in apei_res_sub()
369 list_add(&res->list, &res1->list); in apei_res_sub()
370 resn1 = res; in apei_res_sub()
387 struct apei_res *res, *resn; in apei_res_clean() local
389 list_for_each_entry_safe(res, resn, res_list, list) { in apei_res_clean()
390 list_del(&res->list); in apei_res_clean()
391 kfree(res); in apei_res_clean()
406 struct apei_res *res; in apei_resources_merge() local
408 list_for_each_entry(res, &resources2->iomem, list) { in apei_resources_merge()
409 rc = apei_res_add(&resources1->iomem, res->start, in apei_resources_merge()
410 res->end - res->start); in apei_resources_merge()
414 list_for_each_entry(res, &resources2->ioport, list) { in apei_resources_merge()
415 rc = apei_res_add(&resources1->ioport, res->start, in apei_resources_merge()
416 res->end - res->start); in apei_resources_merge()
479 struct apei_res *res, *res_bak = NULL; in apei_resources_request() local
512 list_for_each_entry(res, &resources->iomem, list) { in apei_resources_request()
513 r = request_mem_region(res->start, res->end - res->start, in apei_resources_request()
518 (unsigned long long)res->start, in apei_resources_request()
519 (unsigned long long)res->end - 1, desc); in apei_resources_request()
520 res_bak = res; in apei_resources_request()
525 list_for_each_entry(res, &resources->ioport, list) { in apei_resources_request()
526 r = request_region(res->start, res->end - res->start, desc); in apei_resources_request()
530 (unsigned long long)res->start, in apei_resources_request()
531 (unsigned long long)res->end - 1, desc); in apei_resources_request()
532 res_bak = res; in apei_resources_request()
545 list_for_each_entry(res, &resources->ioport, list) { in apei_resources_request()
546 if (res == res_bak) in apei_resources_request()
548 release_region(res->start, res->end - res->start); in apei_resources_request()
552 list_for_each_entry(res, &resources->iomem, list) { in apei_resources_request()
553 if (res == res_bak) in apei_resources_request()
555 release_mem_region(res->start, res->end - res->start); in apei_resources_request()
568 struct apei_res *res; in apei_resources_release() local
570 list_for_each_entry(res, &resources->iomem, list) in apei_resources_release()
571 release_mem_region(res->start, res->end - res->start); in apei_resources_release()
572 list_for_each_entry(res, &resources->ioport, list) in apei_resources_release()
573 release_region(res->start, res->end - res->start); in apei_resources_release()