[PATCH 5/5] staging: vt6656: set usb_set_intfdata on driver fail.
Greg Kroah-Hartman
gregkh at linuxfoundation.org
Fri Jan 3 10:03:18 UTC 2020
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 <stable at vger.kernel.org>
> > Signed-off-by: Malcolm Priestley <tvboxspy at 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
More information about the devel
mailing list