2011-03-01 15:41:38

by Daniel J Blueman

[permalink] [raw]
Subject: [2.6.38-rc6, patch] fix hci_dev_list locking...

Release acquired lock on error path, fixing potential hang up.

Signed-off-by: Daniel J Blueman <[email protected]>

diff --git a/net/bluetooth/mgmt.c b/net/bluetooth/mgmt.c
index f827fd9..ace8726 100644
--- a/net/bluetooth/mgmt.c
+++ b/net/bluetooth/mgmt.c
@@ -111,8 +111,10 @@ static int read_index_list(struct sock *sk)

body_len = sizeof(*ev) + sizeof(*rp) + (2 * count);
skb = alloc_skb(sizeof(*hdr) + body_len, GFP_ATOMIC);
- if (!skb)
+ if (!skb) {
+ read_unlock(&hci_dev_list_lock);
return -ENOMEM;
+ }

hdr = (void *) skb_put(skb, sizeof(*hdr));
hdr->opcode = cpu_to_le16(MGMT_EV_CMD_COMPLETE);
--
Daniel J Blueman


2011-03-01 15:53:55

by Daniel J Blueman

[permalink] [raw]
Subject: Re: [stable] [2.6.38-rc6, patch] fix hci_dev_list locking...

On 1 March 2011 23:49, Greg KH <[email protected]> wrote:
> On Tue, Mar 01, 2011 at 11:41:38PM +0800, Daniel J Blueman wrote:
>> Release acquired lock on error path, fixing potential hang up.
>>
>> Signed-off-by: Daniel J Blueman <[email protected]>
>>
>> diff --git a/net/bluetooth/mgmt.c b/net/bluetooth/mgmt.c
>> index f827fd9..ace8726 100644
>
> Please go read Documentation/stable_kernel_rules.txt for how to properly
> submit patches to the stable kernel tree (hint, this way was not
> correct...)

Good tip; I'll follow it up.

Thanks,
Daniel
--
Daniel J Blueman

2011-03-01 15:49:19

by Greg KH

[permalink] [raw]
Subject: Re: [stable] [2.6.38-rc6, patch] fix hci_dev_list locking...

On Tue, Mar 01, 2011 at 11:41:38PM +0800, Daniel J Blueman wrote:
> Release acquired lock on error path, fixing potential hang up.
>
> Signed-off-by: Daniel J Blueman <[email protected]>
>
> diff --git a/net/bluetooth/mgmt.c b/net/bluetooth/mgmt.c
> index f827fd9..ace8726 100644

Please go read Documentation/stable_kernel_rules.txt for how to properly
submit patches to the stable kernel tree (hint, this way was not
correct...)

thanks,

greg k-h