diff mbox

[BISECTED] ssh - Received disconnect from x.x.x.x: 2: Bad packet length 3149594624

Message ID 530C4C9B.7050104@gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Ivaylo Dimitrov Feb. 25, 2014, 7:56 a.m. UTC
Hi,

On 14.02.2014 18:24, Will Deacon wrote:
> You could try putting back the UNALIGNED_ACCESS in net/mac80211/rx.c and
> commenting out the skb->len = desc->length  - PLCP_HEADER_LENGTH;  line
> above.
>

the following patch

seems to fix the issue, including those "corrupt probe response" 
messages in dmesg log (I took that 'skb_trim' from the original Nokia 
kernel). Will send a properly formatted patch shortly.

Thanks,
Ivo

Comments

Will Deacon Feb. 25, 2014, 10:57 a.m. UTC | #1
Hi Ivaylo,

On Tue, Feb 25, 2014 at 07:56:11AM +0000, Ivaylo Dimitrov wrote:
> On 14.02.2014 18:24, Will Deacon wrote:
> > You could try putting back the UNALIGNED_ACCESS in net/mac80211/rx.c and
> > commenting out the skb->len = desc->length  - PLCP_HEADER_LENGTH;  line
> > above.
> >
> 
> the following patch
> 
> diff --git a/drivers/net/wireless/ti/wl1251/rx.c 
> b/drivers/net/wireless/ti/wl1251/rx.c
> index 123c4bb..cde0eaf 100644
> --- a/drivers/net/wireless/ti/wl1251/rx.c
> +++ b/drivers/net/wireless/ti/wl1251/rx.c
> @@ -180,7 +180,7 @@ static void wl1251_rx_body(struct wl1251 *wl,
>          wl1251_mem_read(wl, rx_packet_ring_addr, rx_buffer, length);
> 
>          /* The actual length doesn't include the target's alignment */
> -       skb->len = desc->length  - PLCP_HEADER_LENGTH;
> +       skb_trim(skb, desc->length - PLCP_HEADER_LENGTH);
> 
>          fc = (u16 *)skb->data;
> 
> seems to fix the issue, including those "corrupt probe response" 
> messages in dmesg log (I took that 'skb_trim' from the original Nokia 
> kernel). Will send a properly formatted patch shortly.

Good idea -- don't forget to CC linux-wireless, as suggested by Kalle.

Will
diff mbox

Patch

diff --git a/drivers/net/wireless/ti/wl1251/rx.c 
b/drivers/net/wireless/ti/wl1251/rx.c
index 123c4bb..cde0eaf 100644
--- a/drivers/net/wireless/ti/wl1251/rx.c
+++ b/drivers/net/wireless/ti/wl1251/rx.c
@@ -180,7 +180,7 @@  static void wl1251_rx_body(struct wl1251 *wl,
         wl1251_mem_read(wl, rx_packet_ring_addr, rx_buffer, length);

         /* The actual length doesn't include the target's alignment */
-       skb->len = desc->length  - PLCP_HEADER_LENGTH;
+       skb_trim(skb, desc->length - PLCP_HEADER_LENGTH);

         fc = (u16 *)skb->data;