Patch "mmc: pxamci: fix potential oops" has been added to the 4.4-stable tree
Subsystems (2)
This is a note to let you know that I've just added the patch titled
mmc: pxamci: fix potential oops
to the 4.4-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
mmc-pxamci-fix-potential-oops.patch
and it can be found in the queue-4.4 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
b3802db5eb72d2a96f4aa4ff0abb937033df2acfMon Sep 17 00:00:00 2001
From: Robert Jarzmik <[email protected]>
Date: Thu, 14 Jul 2016 17:05:50 +0200
Subject: mmc: pxamci: fix potential oops
From: Robert Jarzmik <[email protected]>
commit b3802db5eb72d2a96f4aa4ff0abb937033df2acf upstream.
As reported by Dan in his report in [1], there is a potential NULL pointer derefence if these conditions are met :
- there is no platform_data provided, ie. host->pdata = NULL
Fix this by only using the platform data ro_invert when a gpio for read-only is provided by the platform data.
This doesn't appear yet as every pxa board provides a platform_data, and calls pxa_set_mci_info() with a non NULL pointer.
[1] [bug report] mmc: pxamci: fix card detect with slot-gpio API. The commit fd546ee6a7dc ("mmc: pxamci: fix card detect with slot-gpio API") from Sep 26, 2015, leads to the following static checker warning:
drivers/mmc/host/pxamci.c:809 pxamci_probe() warn: variable dereferenced before check 'host->pdata' (see line 798)
--- drivers/mmc/host/pxamci.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-)
drivers/mmc/host/pxamci.c +9 -7
@@ -798,14 +798,16 @@ static int pxamci_probe(struct platform_gpio_direction_output (gpio_power, host->pdata->gpio_power_invert); } -if (gpio_is_valid (gpio_ro)) +if (gpio_is_valid (gpio_ro)) { ret =mmc_gpio_request_ro (mmc, gpio_ro); -if (ret) { -dev_err (&pdev->dev,"Failed requesting gpio_ro %d\n" , gpio_ro); - goto out; - }else { - mmc->caps2 |= host->pdata->gpio_card_ro_invert ? -0 :MMC_CAP2_RO_ACTIVE_HIGH ; +if (ret) { +dev_err (&pdev->dev,"Failed requesting gpio_ro %d\n" , + gpio_ro); + goto out; + }else { + mmc->caps2 |= host->pdata->gpio_card_ro_invert ? +0 :MMC_CAP2_RO_ACTIVE_HIGH ; + } }if (gpio_is_valid (gpio_cd))
Patches currently in stable-queue which might be from [email protected] are
queue-4.4/mmc-pxamci-fix-potential-oops.patch