Hi Alan, On Thu, Oct 22, 2015 at 10:56 AM, atull <atull@xxxxxxxxxxxxxxxxxxxxx> wrote: > On Fri, 16 Oct 2015, Moritz Fischer wrote: > > Hi Moritz, > > I just noticed a problem regarding private data. Fortunately > it is easy to fix. See below... > >> +static int zynq_fpga_probe(struct platform_device *pdev) >> +{ >> + struct device *dev = &pdev->dev; >> + struct zynq_fpga_priv *priv; >> + struct resource *res; >> + int err; >> + >> + priv = devm_kzalloc(dev, sizeof(*priv), GFP_KERNEL); >> + if (!priv) >> + return -ENOMEM; >> + >> + platform_set_drvdata(pdev, priv); > > fpga-mgr.c uses drvdata for its struct fpga_manager, so this will > get overwritten. So remove this platform_set_drvdata(). priv > is saved in struct fpga_manager during fpga_mgr_register(). Ouch, I missed that. > > ... > >> +static int zynq_fpga_remove(struct platform_device *pdev) >> +{ > > Here you can get a pointer to priv from the fpga_manager struct: > struct fpga_manager *mgr = platform_get_drvdata(pdev); > struct zynq_fpga_priv *priv = mgr->priv; Thanks, will submit a follow up patch. >> + struct zynq_fpga_priv *priv; >> + >> + fpga_mgr_unregister(&pdev->dev); >> + >> + priv = platform_get_drvdata(pdev); >> + >> + clk_disable_unprepare(priv->clk); >> + >> + return 0; >> +}> > Alan > Cheers, Moritz -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html