Messages in this thread Patch in this message |  | | From | nizamhaider786@gmail ... | Subject | [PATCH 1/2] char: pcmcia: cm4000_cs: Fix failure handling Handled failure cases of device_create() | Date | Mon, 24 May 2021 01:00:28 +0530 |
| |
From: Nijam Haider <nizamhaider786@gmail.com>
Signed-off-by: Nijam Haider <nizamhaider786@gmail.com> --- drivers/char/pcmcia/cm4000_cs.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/drivers/char/pcmcia/cm4000_cs.c b/drivers/char/pcmcia/cm4000_cs.c index 89681f0..d6f5598 100644 --- a/drivers/char/pcmcia/cm4000_cs.c +++ b/drivers/char/pcmcia/cm4000_cs.c @@ -1783,6 +1783,7 @@ static int cm4000_probe(struct pcmcia_device *link) { struct cm4000_dev *dev; int i, ret; + struct device *dev_ret; for (i = 0; i < CM4000_MAX_DEV; i++) if (dev_table[i] == NULL) @@ -1814,8 +1815,15 @@ static int cm4000_probe(struct pcmcia_device *link) return ret; } - device_create(cmm_class, NULL, MKDEV(major, i), NULL, "cmm%d", i); - + dev_ret = device_create(cmm_class, NULL, MKDEV(major, i), NULL, "cmm%d", i); + if (IS_ERR(dev_ret)) { + printk(KERN_ERR "device_create failed for %d\n", + i); + cm4000_release(link); + dev_table[i] = NULL; + kfree(dev); + return -ENODEV; + } return 0; } -- 2.7.4
|  |