summaryrefslogtreecommitdiff
path: root/drivers/parisc
diff options
context:
space:
mode:
authorArvind Yadav <arvind.yadav.cs@gmail.com>2017-02-02 18:52:34 +0530
committerHelge Deller <deller@gmx.de>2017-02-25 22:27:30 +0100
commite28f701b21ee4b4eb716e4717fa2aa78c28a8523 (patch)
treee4ad1fe08defaf2214da3a4f716f9e9d4121096d /drivers/parisc
parent09b871ffd4d8ddc005a9480fb69ff1897caaeb1f (diff)
downloadlwn-e28f701b21ee4b4eb716e4717fa2aa78c28a8523.tar.gz
lwn-e28f701b21ee4b4eb716e4717fa2aa78c28a8523.zip
parisc: ccio-dma: Handle return NULL error from ioremap_nocache
Fix error paths and return -ENOMEM instead of '1'. Signed-off-by: Arvind Yadav <arvind.yadav.cs@gmail.com> Signed-off-by: Helge Deller <deller@gmx.de>
Diffstat (limited to 'drivers/parisc')
-rw-r--r--drivers/parisc/ccio-dma.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/parisc/ccio-dma.c b/drivers/parisc/ccio-dma.c
index 553ef8a5d588..b0558e2451b5 100644
--- a/drivers/parisc/ccio-dma.c
+++ b/drivers/parisc/ccio-dma.c
@@ -1539,7 +1539,7 @@ static int __init ccio_probe(struct parisc_device *dev)
ioc = kzalloc(sizeof(struct ioc), GFP_KERNEL);
if (ioc == NULL) {
printk(KERN_ERR MODULE_NAME ": memory allocation failure\n");
- return 1;
+ return -ENOMEM;
}
ioc->name = dev->id.hversion == U2_IOA_RUNWAY ? "U2" : "UTurn";
@@ -1554,6 +1554,10 @@ static int __init ccio_probe(struct parisc_device *dev)
ioc->hw_path = dev->hw_path;
ioc->ioc_regs = ioremap_nocache(dev->hpa.start, 4096);
+ if (!ioc->ioc_regs) {
+ kfree(ioc);
+ return -ENOMEM;
+ }
ccio_ioc_init(ioc);
ccio_init_resources(ioc);
hppa_dma_ops = &ccio_ops;