Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1540050 > unrolled thread
| Started by | Arvind Yadav <arvind.yadav.cs@gmail.com> |
|---|---|
| First post | 2016-12-11 19:10 +0100 |
| Last post | 2016-12-12 19:20 +0100 |
| Articles | 4 — 4 participants |
Back to article view | Back to linux.kernel
[V1] mtd: devices: docg3:- Handle return value of devm_ioremap. Arvind Yadav <arvind.yadav.cs@gmail.com> - 2016-12-11 19:10 +0100
Re: [V1] mtd: devices: docg3:- Handle return value of devm_ioremap. Marek Vasut <marek.vasut@gmail.com> - 2016-12-11 20:20 +0100
Re: [V1] mtd: devices: docg3:- Handle return value of devm_ioremap. arvind Yadav <arvind.yadav.cs@gmail.com> - 2016-12-12 04:00 +0100
Re: [V1] mtd: devices: docg3:- Handle return value of devm_ioremap. Fabio Estevam <festevam@gmail.com> - 2016-12-12 19:20 +0100
| From | Arvind Yadav <arvind.yadav.cs@gmail.com> |
|---|---|
| Date | 2016-12-11 19:10 +0100 |
| Subject | [V1] mtd: devices: docg3:- Handle return value of devm_ioremap. |
| Message-ID | <sNgJs-2lO-27@gated-at.bofh.it> |
Here, If devm_ioremap will fail. It will return NULL. Kernel can run into a NULL-pointer dereference. Signed-off-by: Arvind Yadav <arvind.yadav.cs@gmail.com> --- drivers/mtd/devices/docg3.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/mtd/devices/docg3.c b/drivers/mtd/devices/docg3.c index b833e6c..013b5b9 100644 --- a/drivers/mtd/devices/docg3.c +++ b/drivers/mtd/devices/docg3.c @@ -2083,9 +2083,12 @@ static int __init docg3_probe(struct platform_device *pdev) dev_err(dev, "No I/O memory resource defined\n"); return ret; } - base = devm_ioremap(dev, ress->start, DOC_IOSPACE_SIZE); ret = -ENOMEM; + base = devm_ioremap(dev, ress->start, DOC_IOSPACE_SIZE); + if (!base) + return ret; + cascade = devm_kzalloc(dev, sizeof(*cascade) * DOC_MAX_NBFLOORS, GFP_KERNEL); if (!cascade) -- 2.7.4
[toc] | [next] | [standalone]
| From | Marek Vasut <marek.vasut@gmail.com> |
|---|---|
| Date | 2016-12-11 20:20 +0100 |
| Message-ID | <sNhPb-2YZ-5@gated-at.bofh.it> |
| In reply to | #1540050 |
On 12/11/2016 07:01 PM, Arvind Yadav wrote: > Here, If devm_ioremap will fail. It will return NULL. > Kernel can run into a NULL-pointer dereference. > > Signed-off-by: Arvind Yadav <arvind.yadav.cs@gmail.com> > --- > drivers/mtd/devices/docg3.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) > > diff --git a/drivers/mtd/devices/docg3.c b/drivers/mtd/devices/docg3.c > index b833e6c..013b5b9 100644 > --- a/drivers/mtd/devices/docg3.c > +++ b/drivers/mtd/devices/docg3.c > @@ -2083,9 +2083,12 @@ static int __init docg3_probe(struct platform_device *pdev) > dev_err(dev, "No I/O memory resource defined\n"); > return ret; > } > - base = devm_ioremap(dev, ress->start, DOC_IOSPACE_SIZE); > > ret = -ENOMEM; > + base = devm_ioremap(dev, ress->start, DOC_IOSPACE_SIZE); > + if (!base) > + return ret; I think return -ENOMEM right away won't hurt here. Also, dev_err() explaining the failure would be nice to add. Thanks! > cascade = devm_kzalloc(dev, sizeof(*cascade) * DOC_MAX_NBFLOORS, > GFP_KERNEL); > if (!cascade) > -- Best regards, Marek Vasut
[toc] | [prev] | [next] | [standalone]
| From | arvind Yadav <arvind.yadav.cs@gmail.com> |
|---|---|
| Date | 2016-12-12 04:00 +0100 |
| Message-ID | <sNp0l-743-7@gated-at.bofh.it> |
| In reply to | #1540052 |
Yes, We are returning -ENOMEM, ret is initialized to -ENOMEM. As per your concern, I have added dev_err failure message. Thanks -Arvind On Monday 12 December 2016 12:45 AM, Marek Vasut wrote: > On 12/11/2016 07:01 PM, Arvind Yadav wrote: >> Here, If devm_ioremap will fail. It will return NULL. >> Kernel can run into a NULL-pointer dereference. >> >> Signed-off-by: Arvind Yadav <arvind.yadav.cs@gmail.com> >> --- >> drivers/mtd/devices/docg3.c | 5 ++++- >> 1 file changed, 4 insertions(+), 1 deletion(-) >> >> diff --git a/drivers/mtd/devices/docg3.c b/drivers/mtd/devices/docg3.c >> index b833e6c..013b5b9 100644 >> --- a/drivers/mtd/devices/docg3.c >> +++ b/drivers/mtd/devices/docg3.c >> @@ -2083,9 +2083,12 @@ static int __init docg3_probe(struct platform_device *pdev) >> dev_err(dev, "No I/O memory resource defined\n"); >> return ret; >> } >> - base = devm_ioremap(dev, ress->start, DOC_IOSPACE_SIZE); >> >> ret = -ENOMEM; >> + base = devm_ioremap(dev, ress->start, DOC_IOSPACE_SIZE); >> + if (!base) >> + return ret; > I think return -ENOMEM right away won't hurt here. Also, dev_err() > explaining the failure would be nice to add. > > Thanks! > >> cascade = devm_kzalloc(dev, sizeof(*cascade) * DOC_MAX_NBFLOORS, >> GFP_KERNEL); >> if (!cascade) >> >
[toc] | [prev] | [next] | [standalone]
| From | Fabio Estevam <festevam@gmail.com> |
|---|---|
| Date | 2016-12-12 19:20 +0100 |
| Message-ID | <sNDmF-7Fp-27@gated-at.bofh.it> |
| In reply to | #1540052 |
On Sun, Dec 11, 2016 at 5:15 PM, Marek Vasut <marek.vasut@gmail.com> wrote: >> ret = -ENOMEM; >> + base = devm_ioremap(dev, ress->start, DOC_IOSPACE_SIZE); >> + if (!base) >> + return ret; > > I think return -ENOMEM right away won't hurt here. Also, dev_err() > explaining the failure would be nice to add. There is no need to add dev_err() message as the mm core will complain loudly if devm_ioremap() fails.
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web