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

From: Ben Hutchings
Date: Fri Sep 28 2012 - 18:13:22 EST


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.

Ben.

--
Ben Hutchings
Usenet is essentially a HUGE group of people passing notes in class.
- Rachel Kadel, `A Quick Guide to Newsgroup Etiquette'

Attachment: signature.asc
Description: This is a digitally signed message part