parisc: ccio-dma: Handle kmalloc failure in ccio_init_resources()
[ Upstream commit d46c742f827fa2326ab1f4faa1cccadb56912341 ] As the possible failure of the kmalloc(), it should be better to fix this error path, check and return '-ENOMEM' error code. Signed-off-by: Li Qiong <liqiong@nfschina.com> Signed-off-by: Helge Deller <deller@gmx.de> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:

committed by
Greg Kroah-Hartman

parent
826b46fd59
commit
44739b5aae
@@ -1380,15 +1380,17 @@ ccio_init_resource(struct resource *res, char *name, void __iomem *ioaddr)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void __init ccio_init_resources(struct ioc *ioc)
|
static int __init ccio_init_resources(struct ioc *ioc)
|
||||||
{
|
{
|
||||||
struct resource *res = ioc->mmio_region;
|
struct resource *res = ioc->mmio_region;
|
||||||
char *name = kmalloc(14, GFP_KERNEL);
|
char *name = kmalloc(14, GFP_KERNEL);
|
||||||
|
if (unlikely(!name))
|
||||||
|
return -ENOMEM;
|
||||||
snprintf(name, 14, "GSC Bus [%d/]", ioc->hw_path);
|
snprintf(name, 14, "GSC Bus [%d/]", ioc->hw_path);
|
||||||
|
|
||||||
ccio_init_resource(res, name, &ioc->ioc_regs->io_io_low);
|
ccio_init_resource(res, name, &ioc->ioc_regs->io_io_low);
|
||||||
ccio_init_resource(res + 1, name, &ioc->ioc_regs->io_io_low_hv);
|
ccio_init_resource(res + 1, name, &ioc->ioc_regs->io_io_low_hv);
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int new_ioc_area(struct resource *res, unsigned long size,
|
static int new_ioc_area(struct resource *res, unsigned long size,
|
||||||
@@ -1543,7 +1545,10 @@ static int __init ccio_probe(struct parisc_device *dev)
|
|||||||
return -ENOMEM;
|
return -ENOMEM;
|
||||||
}
|
}
|
||||||
ccio_ioc_init(ioc);
|
ccio_ioc_init(ioc);
|
||||||
ccio_init_resources(ioc);
|
if (ccio_init_resources(ioc)) {
|
||||||
|
kfree(ioc);
|
||||||
|
return -ENOMEM;
|
||||||
|
}
|
||||||
hppa_dma_ops = &ccio_ops;
|
hppa_dma_ops = &ccio_ops;
|
||||||
|
|
||||||
hba = kzalloc(sizeof(*hba), GFP_KERNEL);
|
hba = kzalloc(sizeof(*hba), GFP_KERNEL);
|
||||||
|
Reference in New Issue
Block a user