diff options
Diffstat (limited to 'kernel/resource.c')
| -rw-r--r-- | kernel/resource.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/kernel/resource.c b/kernel/resource.c index b0fbf685c77a..915c02e8e5dd 100644 --- a/kernel/resource.c +++ b/kernel/resource.c | |||
| @@ -1256,6 +1256,21 @@ int release_mem_region_adjustable(struct resource *parent, | |||
| 1256 | continue; | 1256 | continue; |
| 1257 | } | 1257 | } |
| 1258 | 1258 | ||
| 1259 | /* | ||
| 1260 | * All memory regions added from memory-hotplug path have the | ||
| 1261 | * flag IORESOURCE_SYSTEM_RAM. If the resource does not have | ||
| 1262 | * this flag, we know that we are dealing with a resource coming | ||
| 1263 | * from HMM/devm. HMM/devm use another mechanism to add/release | ||
| 1264 | * a resource. This goes via devm_request_mem_region and | ||
| 1265 | * devm_release_mem_region. | ||
| 1266 | * HMM/devm take care to release their resources when they want, | ||
| 1267 | * so if we are dealing with them, let us just back off here. | ||
| 1268 | */ | ||
| 1269 | if (!(res->flags & IORESOURCE_SYSRAM)) { | ||
| 1270 | ret = 0; | ||
| 1271 | break; | ||
| 1272 | } | ||
| 1273 | |||
| 1259 | if (!(res->flags & IORESOURCE_MEM)) | 1274 | if (!(res->flags & IORESOURCE_MEM)) |
| 1260 | break; | 1275 | break; |
| 1261 | 1276 | ||
