Commit d46c742f authored by Li Qiong's avatar Li Qiong Committed by Helge Deller

parisc: ccio-dma: Handle kmalloc failure in ccio_init_resources()

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: default avatarLi Qiong <liqiong@nfschina.com>
Signed-off-by: default avatarHelge Deller <deller@gmx.de>
parent 4cb26436
...@@ -1380,15 +1380,17 @@ ccio_init_resource(struct resource *res, char *name, void __iomem *ioaddr) ...@@ -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) ...@@ -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);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment