There will be at least one user that can utilize new helper. Provide the helper for future user and for wider use. Deliberately avoid min()/max() macro as they are still parts of kernel.h which is quite a burden to be included here in order to avoid circular dependencies. Signed-off-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> --- include/linux/ioport.h | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/include/linux/ioport.h b/include/linux/ioport.h index c98df0ec7422..1d5ab2e7f9eb 100644 --- a/include/linux/ioport.h +++ b/include/linux/ioport.h @@ -232,6 +232,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 = r1->start > r2->start ? r1->start : r2->start; + r->end = r1->end < r2->end ? r1->end : r2->end; + return true; +} + static inline bool resource_union(struct resource *r1, struct resource *r2, struct resource *r) { -- 2.28.0