Messages in this thread Patch in this message | | | From | nizamhaider786@gmail ... | Subject | [PATCH v2 2/2] char: pcmcia: cm4040_cs: Fix failure handling | Date | Tue, 25 May 2021 04:32:35 +0530 |
| |
From: Nijam Haider <nizamhaider786@gmail.com>
Handled failure cases of device_create()
Signed-off-by: Nijam Haider <nizamhaider786@gmail.com> --- V1 -> V2: Added description and changelog --- drivers/char/pcmcia/cm4040_cs.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/drivers/char/pcmcia/cm4040_cs.c b/drivers/char/pcmcia/cm4040_cs.c index d5e43606339c..526198be91fa 100644 --- a/drivers/char/pcmcia/cm4040_cs.c +++ b/drivers/char/pcmcia/cm4040_cs.c @@ -558,6 +558,7 @@ static void reader_release(struct pcmcia_device *link) static int reader_probe(struct pcmcia_device *link) { struct reader_dev *dev; + struct device *dev_ret; int i, ret; for (i = 0; i < CM_MAX_DEV; i++) { @@ -593,8 +594,14 @@ static int reader_probe(struct pcmcia_device *link) return ret; } - device_create(cmx_class, NULL, MKDEV(major, i), NULL, "cmx%d", i); - + dev_ret = device_create(cmx_class, NULL, MKDEV(major, i), NULL, "cmx%d", i); + if (IS_ERR(dev_ret)) { + dev_err(&link->dev, "device_create failed for %d\n", i); + reader_release(link); + dev_table[i] = NULL; + kfree(dev); + return -ENODEV; + } return 0; } -- 2.7.4
| |