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

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
Loading
Loading
Loading
Loading
+8 −3
Original line number Diff line number Diff line
@@ -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;
	char *name = kmalloc(14, GFP_KERNEL);

	if (unlikely(!name))
		return -ENOMEM;
	snprintf(name, 14, "GSC Bus [%d/]", ioc->hw_path);

	ccio_init_resource(res, name, &ioc->ioc_regs->io_io_low);
	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,
@@ -1543,7 +1545,10 @@ static int __init ccio_probe(struct parisc_device *dev)
		return -ENOMEM;
	}
	ccio_ioc_init(ioc);
	ccio_init_resources(ioc);
	if (ccio_init_resources(ioc)) {
		kfree(ioc);
		return -ENOMEM;
	}
	hppa_dma_ops = &ccio_ops;

	hba = kzalloc(sizeof(*hba), GFP_KERNEL);