diff options
author | Alan Tull <atull@kernel.org> | 2018-09-12 17:43:23 +0300 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2018-09-30 18:49:55 +0300 |
commit | 34bd283396af1f05c43fa64d51378d38affb1cf1 (patch) | |
tree | 51ba04c6fbe0a5afbf97589873b738d49aa2b8d6 /drivers/fpga/of-fpga-region.c | |
parent | 41e270f6898e7502be9fd6920ee0a108ca259d36 (diff) | |
download | linux-34bd283396af1f05c43fa64d51378d38affb1cf1.tar.xz |
fpga: do not access region struct after fpga_region_unregister
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@kernel.org>
Acked-by: Moritz Fischer <mdf@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/fpga/of-fpga-region.c')
-rw-r--r-- | drivers/fpga/of-fpga-region.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/fpga/of-fpga-region.c b/drivers/fpga/of-fpga-region.c index 35fabb8083fb..052a1342ab7e 100644 --- a/drivers/fpga/of-fpga-region.c +++ b/drivers/fpga/of-fpga-region.c @@ -437,9 +437,10 @@ eprobe_mgr_put: 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; } |