Message ID | 346db238d6c8c418bddb1e8a166e9818b5074c06.1378305864.git.michal.simek@xilinx.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Hi Russell, any comment on this one? Thanks, Michal On 09/04/2013 04:44 PM, Michal Simek wrote: > This patch is inpired by the patch for drvdata > "device-core: Ensure drvdata = NULL when no driver is bound" > (sha1: 0998d0631001288a5974afc0b2a5f568bcdecb4d) > > Also it fixes all occurences in drivers. > > Signed-off-by: Michal Simek <michal.simek@xilinx.com> > --- > arch/arm/kernel/etm.c | 6 ------ > drivers/amba/bus.c | 2 ++ > drivers/dma/pl330.c | 3 --- > drivers/input/serio/ambakmi.c | 2 -- > drivers/mmc/host/mmci.c | 2 -- > drivers/rtc/rtc-pl030.c | 2 -- > drivers/rtc/rtc-pl031.c | 2 -- > drivers/spi/spi-pl022.c | 1 - > drivers/tty/serial/amba-pl010.c | 3 --- > drivers/tty/serial/amba-pl011.c | 3 --- > drivers/video/amba-clcd.c | 2 -- > drivers/watchdog/sp805_wdt.c | 1 - > 12 files changed, 2 insertions(+), 27 deletions(-) > > diff --git a/arch/arm/kernel/etm.c b/arch/arm/kernel/etm.c > index 8ff0ecd..131a6ab 100644 > --- a/arch/arm/kernel/etm.c > +++ b/arch/arm/kernel/etm.c > @@ -385,7 +385,6 @@ out: > return ret; > > out_unmap: > - amba_set_drvdata(dev, NULL); > iounmap(t->etb_regs); > > out_release: > @@ -398,8 +397,6 @@ static int etb_remove(struct amba_device *dev) > { > struct tracectx *t = amba_get_drvdata(dev); > > - amba_set_drvdata(dev, NULL); > - > iounmap(t->etb_regs); > t->etb_regs = NULL; > > @@ -588,7 +585,6 @@ out: > return ret; > > out_unmap: > - amba_set_drvdata(dev, NULL); > iounmap(t->etm_regs); > > out_release: > @@ -601,8 +597,6 @@ static int etm_remove(struct amba_device *dev) > { > struct tracectx *t = amba_get_drvdata(dev); > > - amba_set_drvdata(dev, NULL); > - > iounmap(t->etm_regs); > t->etm_regs = NULL; > > diff --git a/drivers/amba/bus.c b/drivers/amba/bus.c > index c670727..9762090 100644 > --- a/drivers/amba/bus.c > +++ b/drivers/amba/bus.c > @@ -373,6 +373,7 @@ static int amba_probe(struct device *dev) > if (ret == 0) > break; > > + amba_set_drvdata(pcdev, NULL); > pm_runtime_disable(dev); > pm_runtime_set_suspended(dev); > pm_runtime_put_noidle(dev); > @@ -391,6 +392,7 @@ static int amba_remove(struct device *dev) > > pm_runtime_get_sync(dev); > ret = drv->remove(pcdev); > + amba_set_drvdata(pcdev, NULL); > pm_runtime_put_noidle(dev); > > /* Undo the runtime PM settings in amba_probe() */ > diff --git a/drivers/dma/pl330.c b/drivers/dma/pl330.c > index fa645d8..626f99e 100644 > --- a/drivers/dma/pl330.c > +++ b/drivers/dma/pl330.c > @@ -3026,8 +3026,6 @@ pl330_probe(struct amba_device *adev, const struct amba_id *id) > > return 0; > probe_err3: > - amba_set_drvdata(adev, NULL); > - > /* Idle the DMAC */ > list_for_each_entry_safe(pch, _p, &pdmac->ddma.channels, > chan.device_node) { > @@ -3061,7 +3059,6 @@ static int pl330_remove(struct amba_device *adev) > of_dma_controller_free(adev->dev.of_node); > > dma_async_device_unregister(&pdmac->ddma); > - amba_set_drvdata(adev, NULL); > > /* Idle the DMAC */ > list_for_each_entry_safe(pch, _p, &pdmac->ddma.channels, > diff --git a/drivers/input/serio/ambakmi.c b/drivers/input/serio/ambakmi.c > index 4e2fd44..b7c206d 100644 > --- a/drivers/input/serio/ambakmi.c > +++ b/drivers/input/serio/ambakmi.c > @@ -167,8 +167,6 @@ static int amba_kmi_remove(struct amba_device *dev) > { > struct amba_kmi_port *kmi = amba_get_drvdata(dev); > > - amba_set_drvdata(dev, NULL); > - > serio_unregister_port(kmi->io); > clk_put(kmi->clk); > iounmap(kmi->base); > diff --git a/drivers/mmc/host/mmci.c b/drivers/mmc/host/mmci.c > index c3785ed..07e17f1 100644 > --- a/drivers/mmc/host/mmci.c > +++ b/drivers/mmc/host/mmci.c > @@ -1678,8 +1678,6 @@ static int mmci_remove(struct amba_device *dev) > { > struct mmc_host *mmc = amba_get_drvdata(dev); > > - amba_set_drvdata(dev, NULL); > - > if (mmc) { > struct mmci_host *host = mmc_priv(mmc); > > diff --git a/drivers/rtc/rtc-pl030.c b/drivers/rtc/rtc-pl030.c > index 22bacdb..a804f75 100644 > --- a/drivers/rtc/rtc-pl030.c > +++ b/drivers/rtc/rtc-pl030.c > @@ -153,8 +153,6 @@ static int pl030_remove(struct amba_device *dev) > { > struct pl030_rtc *rtc = amba_get_drvdata(dev); > > - amba_set_drvdata(dev, NULL); > - > writel(0, rtc->base + RTC_CR); > > free_irq(dev->irq[0], rtc); > diff --git a/drivers/rtc/rtc-pl031.c b/drivers/rtc/rtc-pl031.c > index 0f0609b..c9ca86e 100644 > --- a/drivers/rtc/rtc-pl031.c > +++ b/drivers/rtc/rtc-pl031.c > @@ -305,7 +305,6 @@ static int pl031_remove(struct amba_device *adev) > { > struct pl031_local *ldata = dev_get_drvdata(&adev->dev); > > - amba_set_drvdata(adev, NULL); > free_irq(adev->irq[0], ldata); > rtc_device_unregister(ldata->rtc); > iounmap(ldata->base); > @@ -392,7 +391,6 @@ out_no_irq: > rtc_device_unregister(ldata->rtc); > out_no_rtc: > iounmap(ldata->base); > - amba_set_drvdata(adev, NULL); > out_no_remap: > kfree(ldata); > out: > diff --git a/drivers/spi/spi-pl022.c b/drivers/spi/spi-pl022.c > index abef061..e12813e 100644 > --- a/drivers/spi/spi-pl022.c > +++ b/drivers/spi/spi-pl022.c > @@ -2306,7 +2306,6 @@ pl022_remove(struct amba_device *adev) > amba_release_regions(adev); > tasklet_disable(&pl022->pump_transfers); > spi_unregister_master(pl022->master); > - amba_set_drvdata(adev, NULL); > return 0; > } > > diff --git a/drivers/tty/serial/amba-pl010.c b/drivers/tty/serial/amba-pl010.c > index c368405..f630b78 100644 > --- a/drivers/tty/serial/amba-pl010.c > +++ b/drivers/tty/serial/amba-pl010.c > @@ -728,7 +728,6 @@ static int pl010_probe(struct amba_device *dev, const struct amba_id *id) > amba_set_drvdata(dev, uap); > ret = uart_add_one_port(&amba_reg, &uap->port); > if (ret) { > - amba_set_drvdata(dev, NULL); > amba_ports[i] = NULL; > clk_put(uap->clk); > unmap: > @@ -745,8 +744,6 @@ static int pl010_remove(struct amba_device *dev) > struct uart_amba_port *uap = amba_get_drvdata(dev); > int i; > > - amba_set_drvdata(dev, NULL); > - > uart_remove_one_port(&amba_reg, &uap->port); > > for (i = 0; i < ARRAY_SIZE(amba_ports); i++) > diff --git a/drivers/tty/serial/amba-pl011.c b/drivers/tty/serial/amba-pl011.c > index 28b35ad..2a1efe0 100644 > --- a/drivers/tty/serial/amba-pl011.c > +++ b/drivers/tty/serial/amba-pl011.c > @@ -2143,7 +2143,6 @@ static int pl011_probe(struct amba_device *dev, const struct amba_id *id) > amba_set_drvdata(dev, uap); > ret = uart_add_one_port(&amba_reg, &uap->port); > if (ret) { > - amba_set_drvdata(dev, NULL); > amba_ports[i] = NULL; > pl011_dma_remove(uap); > } > @@ -2156,8 +2155,6 @@ static int pl011_remove(struct amba_device *dev) > struct uart_amba_port *uap = amba_get_drvdata(dev); > int i; > > - amba_set_drvdata(dev, NULL); > - > uart_remove_one_port(&amba_reg, &uap->port); > > for (i = 0; i < ARRAY_SIZE(amba_ports); i++) > diff --git a/drivers/video/amba-clcd.c b/drivers/video/amba-clcd.c > index 0a2cce7..0bab6ab 100644 > --- a/drivers/video/amba-clcd.c > +++ b/drivers/video/amba-clcd.c > @@ -594,8 +594,6 @@ static int clcdfb_remove(struct amba_device *dev) > { > struct clcd_fb *fb = amba_get_drvdata(dev); > > - amba_set_drvdata(dev, NULL); > - > clcdfb_disable(fb); > unregister_framebuffer(&fb->fb); > if (fb->fb.cmap.len) > diff --git a/drivers/watchdog/sp805_wdt.c b/drivers/watchdog/sp805_wdt.c > index 58df98a..3f786ce 100644 > --- a/drivers/watchdog/sp805_wdt.c > +++ b/drivers/watchdog/sp805_wdt.c > @@ -268,7 +268,6 @@ static int sp805_wdt_remove(struct amba_device *adev) > struct sp805_wdt *wdt = amba_get_drvdata(adev); > > watchdog_unregister_device(&wdt->wdd); > - amba_set_drvdata(adev, NULL); > watchdog_set_drvdata(&wdt->wdd, NULL); > > return 0; > -- > 1.8.2.3 >
diff --git a/arch/arm/kernel/etm.c b/arch/arm/kernel/etm.c index 8ff0ecd..131a6ab 100644 --- a/arch/arm/kernel/etm.c +++ b/arch/arm/kernel/etm.c @@ -385,7 +385,6 @@ out: return ret; out_unmap: - amba_set_drvdata(dev, NULL); iounmap(t->etb_regs); out_release: @@ -398,8 +397,6 @@ static int etb_remove(struct amba_device *dev) { struct tracectx *t = amba_get_drvdata(dev); - amba_set_drvdata(dev, NULL); - iounmap(t->etb_regs); t->etb_regs = NULL; @@ -588,7 +585,6 @@ out: return ret; out_unmap: - amba_set_drvdata(dev, NULL); iounmap(t->etm_regs); out_release: @@ -601,8 +597,6 @@ static int etm_remove(struct amba_device *dev) { struct tracectx *t = amba_get_drvdata(dev); - amba_set_drvdata(dev, NULL); - iounmap(t->etm_regs); t->etm_regs = NULL; diff --git a/drivers/amba/bus.c b/drivers/amba/bus.c index c670727..9762090 100644 --- a/drivers/amba/bus.c +++ b/drivers/amba/bus.c @@ -373,6 +373,7 @@ static int amba_probe(struct device *dev) if (ret == 0) break; + amba_set_drvdata(pcdev, NULL); pm_runtime_disable(dev); pm_runtime_set_suspended(dev); pm_runtime_put_noidle(dev); @@ -391,6 +392,7 @@ static int amba_remove(struct device *dev) pm_runtime_get_sync(dev); ret = drv->remove(pcdev); + amba_set_drvdata(pcdev, NULL); pm_runtime_put_noidle(dev); /* Undo the runtime PM settings in amba_probe() */ diff --git a/drivers/dma/pl330.c b/drivers/dma/pl330.c index fa645d8..626f99e 100644 --- a/drivers/dma/pl330.c +++ b/drivers/dma/pl330.c @@ -3026,8 +3026,6 @@ pl330_probe(struct amba_device *adev, const struct amba_id *id) return 0; probe_err3: - amba_set_drvdata(adev, NULL); - /* Idle the DMAC */ list_for_each_entry_safe(pch, _p, &pdmac->ddma.channels, chan.device_node) { @@ -3061,7 +3059,6 @@ static int pl330_remove(struct amba_device *adev) of_dma_controller_free(adev->dev.of_node); dma_async_device_unregister(&pdmac->ddma); - amba_set_drvdata(adev, NULL); /* Idle the DMAC */ list_for_each_entry_safe(pch, _p, &pdmac->ddma.channels, diff --git a/drivers/input/serio/ambakmi.c b/drivers/input/serio/ambakmi.c index 4e2fd44..b7c206d 100644 --- a/drivers/input/serio/ambakmi.c +++ b/drivers/input/serio/ambakmi.c @@ -167,8 +167,6 @@ static int amba_kmi_remove(struct amba_device *dev) { struct amba_kmi_port *kmi = amba_get_drvdata(dev); - amba_set_drvdata(dev, NULL); - serio_unregister_port(kmi->io); clk_put(kmi->clk); iounmap(kmi->base); diff --git a/drivers/mmc/host/mmci.c b/drivers/mmc/host/mmci.c index c3785ed..07e17f1 100644 --- a/drivers/mmc/host/mmci.c +++ b/drivers/mmc/host/mmci.c @@ -1678,8 +1678,6 @@ static int mmci_remove(struct amba_device *dev) { struct mmc_host *mmc = amba_get_drvdata(dev); - amba_set_drvdata(dev, NULL); - if (mmc) { struct mmci_host *host = mmc_priv(mmc); diff --git a/drivers/rtc/rtc-pl030.c b/drivers/rtc/rtc-pl030.c index 22bacdb..a804f75 100644 --- a/drivers/rtc/rtc-pl030.c +++ b/drivers/rtc/rtc-pl030.c @@ -153,8 +153,6 @@ static int pl030_remove(struct amba_device *dev) { struct pl030_rtc *rtc = amba_get_drvdata(dev); - amba_set_drvdata(dev, NULL); - writel(0, rtc->base + RTC_CR); free_irq(dev->irq[0], rtc); diff --git a/drivers/rtc/rtc-pl031.c b/drivers/rtc/rtc-pl031.c index 0f0609b..c9ca86e 100644 --- a/drivers/rtc/rtc-pl031.c +++ b/drivers/rtc/rtc-pl031.c @@ -305,7 +305,6 @@ static int pl031_remove(struct amba_device *adev) { struct pl031_local *ldata = dev_get_drvdata(&adev->dev); - amba_set_drvdata(adev, NULL); free_irq(adev->irq[0], ldata); rtc_device_unregister(ldata->rtc); iounmap(ldata->base); @@ -392,7 +391,6 @@ out_no_irq: rtc_device_unregister(ldata->rtc); out_no_rtc: iounmap(ldata->base); - amba_set_drvdata(adev, NULL); out_no_remap: kfree(ldata); out: diff --git a/drivers/spi/spi-pl022.c b/drivers/spi/spi-pl022.c index abef061..e12813e 100644 --- a/drivers/spi/spi-pl022.c +++ b/drivers/spi/spi-pl022.c @@ -2306,7 +2306,6 @@ pl022_remove(struct amba_device *adev) amba_release_regions(adev); tasklet_disable(&pl022->pump_transfers); spi_unregister_master(pl022->master); - amba_set_drvdata(adev, NULL); return 0; } diff --git a/drivers/tty/serial/amba-pl010.c b/drivers/tty/serial/amba-pl010.c index c368405..f630b78 100644 --- a/drivers/tty/serial/amba-pl010.c +++ b/drivers/tty/serial/amba-pl010.c @@ -728,7 +728,6 @@ static int pl010_probe(struct amba_device *dev, const struct amba_id *id) amba_set_drvdata(dev, uap); ret = uart_add_one_port(&amba_reg, &uap->port); if (ret) { - amba_set_drvdata(dev, NULL); amba_ports[i] = NULL; clk_put(uap->clk); unmap: @@ -745,8 +744,6 @@ static int pl010_remove(struct amba_device *dev) struct uart_amba_port *uap = amba_get_drvdata(dev); int i; - amba_set_drvdata(dev, NULL); - uart_remove_one_port(&amba_reg, &uap->port); for (i = 0; i < ARRAY_SIZE(amba_ports); i++) diff --git a/drivers/tty/serial/amba-pl011.c b/drivers/tty/serial/amba-pl011.c index 28b35ad..2a1efe0 100644 --- a/drivers/tty/serial/amba-pl011.c +++ b/drivers/tty/serial/amba-pl011.c @@ -2143,7 +2143,6 @@ static int pl011_probe(struct amba_device *dev, const struct amba_id *id) amba_set_drvdata(dev, uap); ret = uart_add_one_port(&amba_reg, &uap->port); if (ret) { - amba_set_drvdata(dev, NULL); amba_ports[i] = NULL; pl011_dma_remove(uap); } @@ -2156,8 +2155,6 @@ static int pl011_remove(struct amba_device *dev) struct uart_amba_port *uap = amba_get_drvdata(dev); int i; - amba_set_drvdata(dev, NULL); - uart_remove_one_port(&amba_reg, &uap->port); for (i = 0; i < ARRAY_SIZE(amba_ports); i++) diff --git a/drivers/video/amba-clcd.c b/drivers/video/amba-clcd.c index 0a2cce7..0bab6ab 100644 --- a/drivers/video/amba-clcd.c +++ b/drivers/video/amba-clcd.c @@ -594,8 +594,6 @@ static int clcdfb_remove(struct amba_device *dev) { struct clcd_fb *fb = amba_get_drvdata(dev); - amba_set_drvdata(dev, NULL); - clcdfb_disable(fb); unregister_framebuffer(&fb->fb); if (fb->fb.cmap.len) diff --git a/drivers/watchdog/sp805_wdt.c b/drivers/watchdog/sp805_wdt.c index 58df98a..3f786ce 100644 --- a/drivers/watchdog/sp805_wdt.c +++ b/drivers/watchdog/sp805_wdt.c @@ -268,7 +268,6 @@ static int sp805_wdt_remove(struct amba_device *adev) struct sp805_wdt *wdt = amba_get_drvdata(adev); watchdog_unregister_device(&wdt->wdd); - amba_set_drvdata(adev, NULL); watchdog_set_drvdata(&wdt->wdd, NULL); return 0;
This patch is inpired by the patch for drvdata "device-core: Ensure drvdata = NULL when no driver is bound" (sha1: 0998d0631001288a5974afc0b2a5f568bcdecb4d) Also it fixes all occurences in drivers. Signed-off-by: Michal Simek <michal.simek@xilinx.com> --- arch/arm/kernel/etm.c | 6 ------ drivers/amba/bus.c | 2 ++ drivers/dma/pl330.c | 3 --- drivers/input/serio/ambakmi.c | 2 -- drivers/mmc/host/mmci.c | 2 -- drivers/rtc/rtc-pl030.c | 2 -- drivers/rtc/rtc-pl031.c | 2 -- drivers/spi/spi-pl022.c | 1 - drivers/tty/serial/amba-pl010.c | 3 --- drivers/tty/serial/amba-pl011.c | 3 --- drivers/video/amba-clcd.c | 2 -- drivers/watchdog/sp805_wdt.c | 1 - 12 files changed, 2 insertions(+), 27 deletions(-) -- 1.8.2.3