From: Andy Shevchenko Date: Tue, 3 Nov 2020 20:45:07 +0000 (+0200) Subject: resource: Introduce resource_intersection() for overlapping resources X-Git-Tag: v5.11-rc1~150^2~2^2~6 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=f65674df1b23cdcb6f656a14f659ffea83e7acaa;p=thirdparty%2Flinux.git resource: Introduce resource_intersection() for overlapping resources There will be at least one user that can utilize new helper. Provide the helper for future user and for wider use. Signed-off-by: Andy Shevchenko Reviewed-by: Hanjun Guo Signed-off-by: Rafael J. Wysocki --- diff --git a/include/linux/ioport.h b/include/linux/ioport.h index 40320eb5bc0e6..ece1a8db309ca 100644 --- a/include/linux/ioport.h +++ b/include/linux/ioport.h @@ -236,6 +236,16 @@ static inline bool resource_overlaps(struct resource *r1, struct resource *r2) return r1->start <= r2->end && r1->end >= r2->start; } +static inline bool +resource_intersection(struct resource *r1, struct resource *r2, struct resource *r) +{ + if (!resource_overlaps(r1, r2)) + return false; + r->start = max(r1->start, r2->start); + r->end = min(r1->end, r2->end); + return true; +} + static inline bool resource_union(struct resource *r1, struct resource *r2, struct resource *r) {