|
@@ -1085,15 +1085,16 @@ struct resource * __request_region(struct resource *parent,
|
|
|
res->name = name;
|
|
|
res->start = start;
|
|
|
res->end = start + n - 1;
|
|
|
- res->flags = resource_type(parent) | resource_ext_type(parent);
|
|
|
- res->flags |= IORESOURCE_BUSY | flags;
|
|
|
- res->desc = IORES_DESC_NONE;
|
|
|
|
|
|
write_lock(&resource_lock);
|
|
|
|
|
|
for (;;) {
|
|
|
struct resource *conflict;
|
|
|
|
|
|
+ res->flags = resource_type(parent) | resource_ext_type(parent);
|
|
|
+ res->flags |= IORESOURCE_BUSY | flags;
|
|
|
+ res->desc = parent->desc;
|
|
|
+
|
|
|
conflict = __request_resource(parent, res);
|
|
|
if (!conflict)
|
|
|
break;
|