Re: [ 056/127] Bluetooth: Fix not removing power_off delayed work

From: Greg Kroah-Hartman
Date: Fri Sep 28 2012 - 18:26:42 EST


On Fri, Sep 28, 2012 at 07:19:27PM -0300, Gustavo Padovan wrote:
> * Ben Hutchings <ben@xxxxxxxxxxxxxxx> [2012-09-29 00:13:03 +0200]:
>
> > On Fri, 2012-09-28 at 13:33 -0700, Greg Kroah-Hartman wrote:
> > > 3.0-stable review patch. If anyone has any objections, please let me know.
> > >
> > > ------------------
> > >
> > > From: Vinicius Costa Gomes <vinicius.gomes@xxxxxxxxxxxxx>
> > >
> > > commit 78c04c0bf52360dc2f7185e99c8e9aa05d73ae5a upstream.
> > >
> > > For example, when a usb reset is received (I could reproduce it
> > > running something very similar to this[1] in a loop) it could be
> > > that the device is unregistered while the power_off delayed work
> > > is still scheduled to run.
> > [...]
> > > --- a/net/bluetooth/hci_core.c
> > > +++ b/net/bluetooth/hci_core.c
> > > @@ -588,6 +588,8 @@ static int hci_dev_do_close(struct hci_d
> > > {
> > > BT_DBG("%s %p", hdev->name, hdev);
> > >
> > > + cancel_delayed_work(&hdev->power_off);
> > [...]
> >
> > This is not right for 3.0 as the type of hdev->power_off is struct
> > work_struct, not struct delayed_work.
> >
> > When I looked at this for 3.2 it appeared that this fix might not be
> > required at all.
>
> Yes, at that time we had a timer to run the work, at some point we changed it
> with a delayed_work but I don't remember exactly which version was it, 3.3 I
> think.

Thanks for letting me know, I'll go delete this from the 3.0 queue.

greg k-h
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/