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 <stable@xxxxxxxxxxxxxxx> > Signed-off-by: Malcolm Priestley <tvboxspy@xxxxxxxxx> > --- > 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? thanks, greg k-h _______________________________________________ devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxx http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel