2008-10-06 11:40:23

by Winkler, Tomas

[permalink] [raw]
Subject: [PATCH V2] btsdio: fix tx error path

This patch fixes accumulating of the header
in case packet was requeued in the error path.

Signed-off-by: Tomas Winkler <[email protected]>
Cc: Marcel Holtmann <[email protected]>
---
drivers/bluetooth/btsdio.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/drivers/bluetooth/btsdio.c b/drivers/bluetooth/btsdio.c
index 58630cc..c422e89 100644
--- a/drivers/bluetooth/btsdio.c
+++ b/drivers/bluetooth/btsdio.c
@@ -91,6 +91,7 @@ static int btsdio_tx_packet(struct btsdio_data *data, struct sk_buff *skb)

err = sdio_writesb(data->func, REG_TDAT, skb->data, skb->len);
if (err < 0) {
+ skb_pull(skb, 4);
sdio_writeb(data->func, 0x01, REG_PC_WRT, NULL);
return err;
}
--
1.5.4.3

---------------------------------------------------------------------
Intel Israel (74) Limited

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.


2008-10-06 12:05:41

by Winkler, Tomas

[permalink] [raw]
Subject: RE: [PATCH V2] btsdio: fix tx error path



>-----Original Message-----
>From: Marcel Holtmann [mailto:[email protected]]
>Sent: Monday, October 06, 2008 2:02 PM
>To: Winkler, Tomas
>Cc: [email protected]; [email protected]
>Subject: Re: [PATCH V2] btsdio: fix tx error path
>
>Hi Tomas,
>
>> This patch fixes accumulating of the header
>> in case packet was requeued in the error path.
>>
>> Signed-off-by: Tomas Winkler <[email protected]>
>> Cc: Marcel Holtmann <[email protected]>
>> ---
>> drivers/bluetooth/btsdio.c | 1 +
>> 1 files changed, 1 insertions(+), 0 deletions(-)
>>
>> diff --git a/drivers/bluetooth/btsdio.c b/drivers/bluetooth/btsdio.c
>> index 58630cc..c422e89 100644
>> --- a/drivers/bluetooth/btsdio.c
>> +++ b/drivers/bluetooth/btsdio.c
>> @@ -91,6 +91,7 @@ static int btsdio_tx_packet(struct btsdio_data
*data,
>struct sk_buff *skb)
>>
>> err =3D sdio_writesb(data->func, REG_TDAT, skb->data, skb->len);
>> if (err < 0) {
>> + skb_pull(skb, 4);
>> sdio_writeb(data->func, 0x01, REG_PC_WRT, NULL);
>> return err;
>> }
>
>thanks, but I already fixed that one manually in my tree :)

Yeah I guessed that, resubmitted just for the protocol.
Tomas

---------------------------------------------------------------------
Intel Israel (74) Limited

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.

2008-10-06 12:01:43

by Marcel Holtmann

[permalink] [raw]
Subject: Re: [PATCH V2] btsdio: fix tx error path

Hi Tomas,

> This patch fixes accumulating of the header
> in case packet was requeued in the error path.
>
> Signed-off-by: Tomas Winkler <[email protected]>
> Cc: Marcel Holtmann <[email protected]>
> ---
> drivers/bluetooth/btsdio.c | 1 +
> 1 files changed, 1 insertions(+), 0 deletions(-)
>
> diff --git a/drivers/bluetooth/btsdio.c b/drivers/bluetooth/btsdio.c
> index 58630cc..c422e89 100644
> --- a/drivers/bluetooth/btsdio.c
> +++ b/drivers/bluetooth/btsdio.c
> @@ -91,6 +91,7 @@ static int btsdio_tx_packet(struct btsdio_data *data, struct sk_buff *skb)
>
> err = sdio_writesb(data->func, REG_TDAT, skb->data, skb->len);
> if (err < 0) {
> + skb_pull(skb, 4);
> sdio_writeb(data->func, 0x01, REG_PC_WRT, NULL);
> return err;
> }

thanks, but I already fixed that one manually in my tree :)

Regards

Marcel



2009-02-02 15:29:51

by Marcel Holtmann

[permalink] [raw]
Subject: Re: [PATCH V2] btsdio: fix tx error path

Hi Tomas,

> >> This patch fixes accumulating of the header
> >> in case packet was requeued in the error path.
> >>
> >> Signed-off-by: Tomas Winkler <[email protected]>
> >> Cc: Marcel Holtmann <[email protected]>
> >> ---
> >> drivers/bluetooth/btsdio.c | 1 +
> >> 1 files changed, 1 insertions(+), 0 deletions(-)
> >>
> >> diff --git a/drivers/bluetooth/btsdio.c b/drivers/bluetooth/btsdio.c
> >> index 58630cc..c422e89 100644
> >> --- a/drivers/bluetooth/btsdio.c
> >> +++ b/drivers/bluetooth/btsdio.c
> >> @@ -91,6 +91,7 @@ static int btsdio_tx_packet(struct btsdio_data *data, struct sk_buff *skb)
> >>
> >> err = sdio_writesb(data->func, REG_TDAT, skb->data, skb->len);
> >> if (err < 0) {
> >> + skb_pull(skb, 4);
> >> sdio_writeb(data->func, 0x01, REG_PC_WRT, NULL);
> >> return err;
> >> }
> >
> > thanks, but I already fixed that one manually in my tree :)
> >
> > Regards
> >
> > Marcel
>
> Would you mind to queue it for 27 stable? I'm always hitting this and
> I guess I'm not only one.
> http://marc.info/?l=linux-bluetooth&m=122513647106365&w=2

since besides development hardware, nobody really has this issue and I
think it doesn't really justify pushing this to -stable. However this is
up to the -stable guys and you can just sent it to [email protected] by
yourself if you wanna have it included. Just point them to

http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff_plain;h=7644d63d1348ec044ccd8f775fefe5eb7cbcac69

and explain you reason for adding it to -stable.

Regards

Marcel



2009-02-02 14:15:51

by Tomas Winkler

[permalink] [raw]
Subject: Re: [PATCH V2] btsdio: fix tx error path

On Mon, Oct 6, 2008 at 2:01 PM, Marcel Holtmann <[email protected]> wrote:
> Hi Tomas,
>
>> This patch fixes accumulating of the header
>> in case packet was requeued in the error path.
>>
>> Signed-off-by: Tomas Winkler <[email protected]>
>> Cc: Marcel Holtmann <[email protected]>
>> ---
>> drivers/bluetooth/btsdio.c | 1 +
>> 1 files changed, 1 insertions(+), 0 deletions(-)
>>
>> diff --git a/drivers/bluetooth/btsdio.c b/drivers/bluetooth/btsdio.c
>> index 58630cc..c422e89 100644
>> --- a/drivers/bluetooth/btsdio.c
>> +++ b/drivers/bluetooth/btsdio.c
>> @@ -91,6 +91,7 @@ static int btsdio_tx_packet(struct btsdio_data *data, struct sk_buff *skb)
>>
>> err = sdio_writesb(data->func, REG_TDAT, skb->data, skb->len);
>> if (err < 0) {
>> + skb_pull(skb, 4);
>> sdio_writeb(data->func, 0x01, REG_PC_WRT, NULL);
>> return err;
>> }
>
> thanks, but I already fixed that one manually in my tree :)
>
> Regards
>
> Marcel

Would you mind to queue it for 27 stable? I'm always hitting this and
I guess I'm not only one.
http://marc.info/?l=linux-bluetooth&m=122513647106365&w=2

Thanks
Tomas