From: Michal Simek <hidden> Date: 2013-09-12 05:54:45
devm_iounmap is called automatically that's why remove it from the code
dev_set_drvdata(dev, NULL) is called by generic code
after device_release or on probe failure.
Signed-off-by: Michal Simek <redacted>
---
drivers/video/xilinxfb.c | 28 ++++++----------------------
1 file changed, 6 insertions(+), 22 deletions(-)
@@ -260,10 +260,9 @@ static int xilinxfb_assign(struct platform_device *pdev,res=platform_get_resource(pdev,IORESOURCE_MEM,0);drvdata->regs=devm_ioremap_resource(&pdev->dev,res);-if(IS_ERR(drvdata->regs)){-rc=PTR_ERR(drvdata->regs);-gotoerr_region;-}+if(IS_ERR(drvdata->regs))+returnPTR_ERR(drvdata->regs);+drvdata->regs_phys=res->start;}
@@ -279,11 +278,7 @@ static int xilinxfb_assign(struct platform_device *pdev,if(!drvdata->fb_virt){dev_err(dev,"Could not allocate frame buffer memory\n");-rc=-ENOMEM;-if(drvdata->flags&BUS_ACCESS_FLAG)-gotoerr_fbmem;-else-gotoerr_region;+return-ENOMEM;}/* Clear (turn to black) the framebuffer */
@@ -363,13 +358,6 @@ err_cmap:/* Turn off the display */xilinx_fb_out32(drvdata,REG_CTRL,0);-err_fbmem:-if(drvdata->flags&BUS_ACCESS_FLAG)-devm_iounmap(dev,drvdata->regs);--err_region:-dev_set_drvdata(dev,NULL);-returnrc;}
@@ -394,16 +382,12 @@ static int xilinxfb_release(struct device *dev)/* Turn off the display */xilinx_fb_out32(drvdata,REG_CTRL,0);-/* Release the resources, as allocated based on interface */-if(drvdata->flags&BUS_ACCESS_FLAG)-devm_iounmap(dev,drvdata->regs);#ifdef CONFIG_PPC_DCR-else+/* Release the resources, as allocated based on interface */+if(!(drvdata->flags&BUS_ACCESS_FLAG))dcr_unmap(drvdata->dcr_host,drvdata->dcr_len);#endif-dev_set_drvdata(dev,NULL);-return0;}--
@@ -403,7 +402,6 @@ static int xilinxfb_release(struct device *dev)dcr_unmap(drvdata->dcr_host,drvdata->dcr_len);#endif-kfree(drvdata);dev_set_drvdata(dev,NULL);return0;
@@ -425,7 +423,7 @@ static int xilinxfb_of_probe(struct platform_device *pdev)pdata=xilinx_fb_default_pdata;/* Allocate the driver data region */-drvdata=kzalloc(sizeof(*drvdata),GFP_KERNEL);+drvdata=devm_kzalloc(&pdev->dev,sizeof(*drvdata),GFP_KERNEL);if(!drvdata){dev_err(&pdev->dev,"Couldn't allocate device private record\n");return-ENOMEM;
From: Jingoo Han <hidden> Date: 2013-09-12 10:46:53
On Thursday, September 12, 2013 2:55 PM, Michal Simek wrote:
devm_iounmap is called automatically that's why remove it from the code
dev_set_drvdata(dev, NULL) is called by generic code
after device_release or on probe failure.
Signed-off-by: Michal Simek <redacted>
From: Tomi Valkeinen <hidden> Date: 2013-09-16 09:52:05
On 12/09/13 08:54, Michal Simek wrote:
quoted hunk
@@ -394,16 +382,12 @@ static int xilinxfb_release(struct device *dev) /* Turn off the display */ xilinx_fb_out32(drvdata, REG_CTRL, 0);- /* Release the resources, as allocated based on interface */- if (drvdata->flags & BUS_ACCESS_FLAG)- devm_iounmap(dev, drvdata->regs); #ifdef CONFIG_PPC_DCR- else+ /* Release the resources, as allocated based on interface */+ if (!(drvdata->flags & BUS_ACCESS_FLAG)) dcr_unmap(drvdata->dcr_host, drvdata->dcr_len); #endif
I might be mistaken, and it's not strictly part of this series, but
shouldn't dcr_unmap be called somewhere else also, if the probe fails?
Tomi
From: Michal Simek <monstr@monstr.eu> Date: 2013-09-16 10:33:14
On 09/16/2013 11:51 AM, Tomi Valkeinen wrote:
On 12/09/13 08:54, Michal Simek wrote:
quoted
@@ -394,16 +382,12 @@ static int xilinxfb_release(struct device *dev) /* Turn off the display */ xilinx_fb_out32(drvdata, REG_CTRL, 0);- /* Release the resources, as allocated based on interface */- if (drvdata->flags & BUS_ACCESS_FLAG)- devm_iounmap(dev, drvdata->regs); #ifdef CONFIG_PPC_DCR- else+ /* Release the resources, as allocated based on interface */+ if (!(drvdata->flags & BUS_ACCESS_FLAG)) dcr_unmap(drvdata->dcr_host, drvdata->dcr_len); #endif
I might be mistaken, and it's not strictly part of this series, but
shouldn't dcr_unmap be called somewhere else also, if the probe fails?
yes. It should.
Thanks,
Michal
--
Michal Simek, Ing. (M.Eng), OpenPGP -> KeyID: FE3D1F91
w: www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel - Microblaze cpu - http://www.monstr.eu/fdt/
Maintainer of Linux kernel - Xilinx Zynq ARM architecture
Microblaze U-BOOT custodian and responsible for u-boot arm zynq platform
From: Tomi Valkeinen <hidden> Date: 2013-09-16 10:34:45
On 16/09/13 13:33, Michal Simek wrote:
On 09/16/2013 11:51 AM, Tomi Valkeinen wrote:
quoted
On 12/09/13 08:54, Michal Simek wrote:
quoted
@@ -394,16 +382,12 @@ static int xilinxfb_release(struct device *dev) /* Turn off the display */ xilinx_fb_out32(drvdata, REG_CTRL, 0);- /* Release the resources, as allocated based on interface */- if (drvdata->flags & BUS_ACCESS_FLAG)- devm_iounmap(dev, drvdata->regs); #ifdef CONFIG_PPC_DCR- else+ /* Release the resources, as allocated based on interface */+ if (!(drvdata->flags & BUS_ACCESS_FLAG)) dcr_unmap(drvdata->dcr_host, drvdata->dcr_len); #endif
I might be mistaken, and it's not strictly part of this series, but
shouldn't dcr_unmap be called somewhere else also, if the probe fails?
yes. It should.
Do you want me to apply these patches as they are, or do you want to
improve the series to include the dcr_unmap fix?
Tomi
From: Michal Simek <monstr@monstr.eu> Date: 2013-09-30 12:05:58
Hi Tomi,
On 09/16/2013 12:34 PM, Tomi Valkeinen wrote:
On 16/09/13 13:33, Michal Simek wrote:
quoted
On 09/16/2013 11:51 AM, Tomi Valkeinen wrote:
quoted
On 12/09/13 08:54, Michal Simek wrote:
quoted
@@ -394,16 +382,12 @@ static int xilinxfb_release(struct device *dev) /* Turn off the display */ xilinx_fb_out32(drvdata, REG_CTRL, 0);- /* Release the resources, as allocated based on interface */- if (drvdata->flags & BUS_ACCESS_FLAG)- devm_iounmap(dev, drvdata->regs); #ifdef CONFIG_PPC_DCR- else+ /* Release the resources, as allocated based on interface */+ if (!(drvdata->flags & BUS_ACCESS_FLAG)) dcr_unmap(drvdata->dcr_host, drvdata->dcr_len); #endif
I might be mistaken, and it's not strictly part of this series, but
shouldn't dcr_unmap be called somewhere else also, if the probe fails?
yes. It should.
Do you want me to apply these patches as they are, or do you want to
improve the series to include the dcr_unmap fix?
Sorry I have missed this email.
Yes please apply it as is. I don't have ppc hw here to be able to test this
change.
Thanks,
Michal
--
Michal Simek, Ing. (M.Eng), OpenPGP -> KeyID: FE3D1F91
w: www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel - Microblaze cpu - http://www.monstr.eu/fdt/
Maintainer of Linux kernel - Xilinx Zynq ARM architecture
Microblaze U-BOOT custodian and responsible for u-boot arm zynq platform
From: Tomi Valkeinen <hidden> Date: 2013-10-09 09:02:44
On 30/09/13 15:05, Michal Simek wrote:
Hi Tomi,
On 09/16/2013 12:34 PM, Tomi Valkeinen wrote:
quoted
On 16/09/13 13:33, Michal Simek wrote:
quoted
On 09/16/2013 11:51 AM, Tomi Valkeinen wrote:
quoted
On 12/09/13 08:54, Michal Simek wrote:
quoted
@@ -394,16 +382,12 @@ static int xilinxfb_release(struct device *dev) /* Turn off the display */ xilinx_fb_out32(drvdata, REG_CTRL, 0);- /* Release the resources, as allocated based on interface */- if (drvdata->flags & BUS_ACCESS_FLAG)- devm_iounmap(dev, drvdata->regs); #ifdef CONFIG_PPC_DCR- else+ /* Release the resources, as allocated based on interface */+ if (!(drvdata->flags & BUS_ACCESS_FLAG)) dcr_unmap(drvdata->dcr_host, drvdata->dcr_len); #endif
I might be mistaken, and it's not strictly part of this series, but
shouldn't dcr_unmap be called somewhere else also, if the probe fails?
yes. It should.
Do you want me to apply these patches as they are, or do you want to
improve the series to include the dcr_unmap fix?
Sorry I have missed this email.
Yes please apply it as is. I don't have ppc hw here to be able to test this
change.
This series does not apply. Can you rebase on top of linux-next, and resend?
Tomi
From: Michal Simek <monstr@monstr.eu> Date: 2013-10-09 10:26:01
On 10/09/2013 11:02 AM, Tomi Valkeinen wrote:
On 30/09/13 15:05, Michal Simek wrote:
quoted
Hi Tomi,
On 09/16/2013 12:34 PM, Tomi Valkeinen wrote:
quoted
On 16/09/13 13:33, Michal Simek wrote:
quoted
On 09/16/2013 11:51 AM, Tomi Valkeinen wrote:
quoted
On 12/09/13 08:54, Michal Simek wrote:
quoted
@@ -394,16 +382,12 @@ static int xilinxfb_release(struct device *dev) /* Turn off the display */ xilinx_fb_out32(drvdata, REG_CTRL, 0);- /* Release the resources, as allocated based on interface */- if (drvdata->flags & BUS_ACCESS_FLAG)- devm_iounmap(dev, drvdata->regs); #ifdef CONFIG_PPC_DCR- else+ /* Release the resources, as allocated based on interface */+ if (!(drvdata->flags & BUS_ACCESS_FLAG)) dcr_unmap(drvdata->dcr_host, drvdata->dcr_len); #endif
I might be mistaken, and it's not strictly part of this series, but
shouldn't dcr_unmap be called somewhere else also, if the probe fails?
yes. It should.
Do you want me to apply these patches as they are, or do you want to
improve the series to include the dcr_unmap fix?
Sorry I have missed this email.
Yes please apply it as is. I don't have ppc hw here to be able to test this
change.
This series does not apply. Can you rebase on top of linux-next, and resend?
Do you mean Stephen Rothwell linux-next or any your linux-next branch?
No problem to do so if you send me link to the repo.
Thanks,
Michal
--
Michal Simek, Ing. (M.Eng), OpenPGP -> KeyID: FE3D1F91
w: www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel - Microblaze cpu - http://www.monstr.eu/fdt/
Maintainer of Linux kernel - Xilinx Zynq ARM architecture
Microblaze U-BOOT custodian and responsible for u-boot arm zynq platform