On Fri, Jan 03, 2020 at 11:01:59AM +0100, Greg Kroah-Hartman wrote:
> On Fri, Dec 20, 2019 at 09:15:59PM +0000, Malcolm Priestley wrote:
> > intfdata will contain stale pointer when the device is detached after
> > failed initialization when referenced in vt6656_disconnect
> > 
> > Provide driver access to it here and NULL it.
> > 
> > Cc: stable <sta...@vger.kernel.org>
> > Signed-off-by: Malcolm Priestley <tvbox...@gmail.com>
> > ---
> >  drivers/staging/vt6656/device.h   | 1 +
> >  drivers/staging/vt6656/main_usb.c | 1 +
> >  drivers/staging/vt6656/wcmd.c     | 1 +
> >  3 files changed, 3 insertions(+)
> > 
> > diff --git a/drivers/staging/vt6656/device.h 
> > b/drivers/staging/vt6656/device.h
> > index 6074ceda78bf..50e1c8918040 100644
> > --- a/drivers/staging/vt6656/device.h
> > +++ b/drivers/staging/vt6656/device.h
> > @@ -259,6 +259,7 @@ struct vnt_private {
> >     u8 mac_hw;
> >     /* netdev */
> >     struct usb_device *usb;
> > +   struct usb_interface *intf;
> >  
> >     u64 tsf_time;
> >     u8 rx_rate;
> > diff --git a/drivers/staging/vt6656/main_usb.c 
> > b/drivers/staging/vt6656/main_usb.c
> > index 4a5d741f94f5..9cb924c54571 100644
> > --- a/drivers/staging/vt6656/main_usb.c
> > +++ b/drivers/staging/vt6656/main_usb.c
> > @@ -992,6 +992,7 @@ vt6656_probe(struct usb_interface *intf, const struct 
> > usb_device_id *id)
> >     priv = hw->priv;
> >     priv->hw = hw;
> >     priv->usb = udev;
> > +   priv->intf = intf;
> >  
> >     vnt_set_options(priv);
> >  
> > diff --git a/drivers/staging/vt6656/wcmd.c b/drivers/staging/vt6656/wcmd.c
> > index 3eb2f11a5de1..2c5250ca2801 100644
> > --- a/drivers/staging/vt6656/wcmd.c
> > +++ b/drivers/staging/vt6656/wcmd.c
> > @@ -99,6 +99,7 @@ void vnt_run_command(struct work_struct *work)
> >             if (vnt_init(priv)) {
> >                     /* If fail all ends TODO retry */
> >                     dev_err(&priv->usb->dev, "failed to start\n");
> > +                   usb_set_intfdata(priv->intf, NULL);
> >                     ieee80211_free_hw(priv->hw);
> >                     return;
> >             }
> 
> You set this variable, but never reference it, so how does this change
> any behavior in the driver?

Nevermind, I've looked at the driver, it makes more sense now, sorry for
the noise.

greg k-h
_______________________________________________
devel mailing list
de...@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel

Reply via email to