From: Catalin Marinas Signed-off-by: Catalin Marinas Signed-off-by: Andrew Morton --- arch/i386/kernel/setup.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff -puN arch/i386/kernel/setup.c~fix-a-memory-leak-in-the-i386-setup-code arch/i386/kernel/setup.c --- a/arch/i386/kernel/setup.c~fix-a-memory-leak-in-the-i386-setup-code +++ a/arch/i386/kernel/setup.c @@ -1327,7 +1327,10 @@ legacy_init_iomem_resources(struct resou res->start = e820.map[i].addr; res->end = res->start + e820.map[i].size - 1; res->flags = IORESOURCE_MEM | IORESOURCE_BUSY; - request_resource(&iomem_resource, res); + if (request_resource(&iomem_resource, res)) { + kfree(res); + continue; + } if (e820.map[i].type == E820_RAM) { /* * We don't know which RAM region contains kernel data, _