@@ -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)
{
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@linux.intel.com> --- include/linux/ioport.h | 10 ++++++++++ 1 file changed, 10 insertions(+)