diff mbox

[linux,dev-4.7,v2] drivers/fsi: Don't scan after fsi-gpio_master unbound

Message ID 20170302211537.67380-1-cbostic@linux.vnet.ibm.com
State Accepted, archived
Headers show

Commit Message

Christopher Bostic March 2, 2017, 9:15 p.m. UTC
Check pointers prior to scanning master in the sysfs scan
file.  These get invalidated after an unbind operation.

Signed-off-by: Christopher Bostic <cbostic@linux.vnet.ibm.com>
---
v2:
    Return error if invalid pointers passed in.
---
 drivers/fsi/fsi-master-gpio.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

Comments

Joel Stanley March 3, 2017, 7:49 a.m. UTC | #1
On Fri, Mar 3, 2017 at 7:45 AM, Christopher Bostic
<cbostic@linux.vnet.ibm.com> wrote:
> Check pointers prior to scanning master in the sysfs scan
> file.  These get invalidated after an unbind operation.
>
> Signed-off-by: Christopher Bostic <cbostic@linux.vnet.ibm.com>
> ---
> v2:
>     Return error if invalid pointers passed in.

Thanks, I think this is better.

Applied to dev-4.7.

Cheers,

Joel

> ---
>  drivers/fsi/fsi-master-gpio.c | 9 ++++++++-
>  1 file changed, 8 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/fsi/fsi-master-gpio.c b/drivers/fsi/fsi-master-gpio.c
> index c5f4f9c..49f3399 100644
> --- a/drivers/fsi/fsi-master-gpio.c
> +++ b/drivers/fsi/fsi-master-gpio.c
> @@ -476,7 +476,14 @@ static ssize_t store_scan(struct device *dev,
>                                 const char *buf,
>                                 size_t count)
>  {
> -       struct fsi_master_gpio *master = dev_get_drvdata(dev);
> +       struct fsi_master_gpio *master;
> +
> +       if (!dev)
> +               return -EINVAL;
> +
> +       master = dev_get_drvdata(dev);
> +       if (!master)
> +               return -EINVAL;
>
>         fsi_master_gpio_init(master);
>
> --
> 1.8.2.2
>
diff mbox

Patch

diff --git a/drivers/fsi/fsi-master-gpio.c b/drivers/fsi/fsi-master-gpio.c
index c5f4f9c..49f3399 100644
--- a/drivers/fsi/fsi-master-gpio.c
+++ b/drivers/fsi/fsi-master-gpio.c
@@ -476,7 +476,14 @@  static ssize_t store_scan(struct device *dev,
 				const char *buf,
 				size_t count)
 {
-	struct fsi_master_gpio *master = dev_get_drvdata(dev);
+	struct fsi_master_gpio *master;
+
+	if (!dev)
+		return -EINVAL;
+
+	master = dev_get_drvdata(dev);
+	if (!master)
+		return -EINVAL;
 
 	fsi_master_gpio_init(master);