Merge tag 'for-linus-5.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/uml
[linux-2.6-microblaze.git] / kernel / resource.c
index 76036a4..841737b 100644 (file)
@@ -1126,6 +1126,7 @@ struct resource * __request_region(struct resource *parent,
 {
        DECLARE_WAITQUEUE(wait, current);
        struct resource *res = alloc_resource(GFP_KERNEL);
+       struct resource *orig_parent = parent;
 
        if (!res)
                return NULL;
@@ -1176,6 +1177,10 @@ struct resource * __request_region(struct resource *parent,
                break;
        }
        write_unlock(&resource_lock);
+
+       if (res && orig_parent == &iomem_resource)
+               revoke_devmem(res);
+
        return res;
 }
 EXPORT_SYMBOL(__request_region);