Hi Alan, On Tue, Sep 4, 2018 at 2:22 PM, Alan Tull <atull@xxxxxxxxxx> wrote: > A couple drivers were accessing the region struct after it had been > freed. Save off the pointer to the mgr before the region struct gets > freed. > > Signed-off-by: Alan Tull <atull@xxxxxxxxxx> Acked-by: Moritz Fischer <mdf@xxxxxxxxxx> > --- > v2: no change in v2 of patchset > --- > drivers/fpga/dfl-fme-region.c | 4 +++- > drivers/fpga/of-fpga-region.c | 3 ++- > 2 files changed, 5 insertions(+), 2 deletions(-) > > diff --git a/drivers/fpga/dfl-fme-region.c b/drivers/fpga/dfl-fme-region.c > index 0b7e19c..51a5ac2 100644 > --- a/drivers/fpga/dfl-fme-region.c > +++ b/drivers/fpga/dfl-fme-region.c > @@ -14,6 +14,7 @@ > */ > > #include <linux/module.h> > +#include <linux/fpga/fpga-mgr.h> > #include <linux/fpga/fpga-region.h> > > #include "dfl-fme-pr.h" > @@ -66,9 +67,10 @@ static int fme_region_probe(struct platform_device *pdev) > static int fme_region_remove(struct platform_device *pdev) > { > struct fpga_region *region = dev_get_drvdata(&pdev->dev); > + struct fpga_manager *mgr = region->mgr; > > fpga_region_unregister(region); > - fpga_mgr_put(region->mgr); > + fpga_mgr_put(mgr); > > return 0; > } > diff --git a/drivers/fpga/of-fpga-region.c b/drivers/fpga/of-fpga-region.c > index 35fabb8..052a134 100644 > --- a/drivers/fpga/of-fpga-region.c > +++ b/drivers/fpga/of-fpga-region.c > @@ -437,9 +437,10 @@ static int of_fpga_region_probe(struct platform_device *pdev) > static int of_fpga_region_remove(struct platform_device *pdev) > { > struct fpga_region *region = platform_get_drvdata(pdev); > + struct fpga_manager *mgr = region->mgr; > > fpga_region_unregister(region); > - fpga_mgr_put(region->mgr); > + fpga_mgr_put(mgr); > > return 0; > } > -- > 2.7.4 > Thanks, Moritz