[BISECTED] ssh - Received disconnect from x.x.x.x: 2: Bad packet length 3149594624
From: Kalle Valo <hidden>
Date: 2014-02-24 16:53:49
Also in:
lkml
Will Deacon [off-list ref] writes:
Well, we probably need a bit more to go on, because I doubt that this code
is to blame. More likely, the issue is in the caller.
Looking at drivers/net/wireless/ti/wl1251/rx.c:182
/* The actual length doesn't include the target's alignment */
skb->len = desc->length - PLCP_HEADER_LENGTH;
fc = (u16 *)skb->data;
if ((*fc & IEEE80211_FCTL_STYPE) == IEEE80211_STYPE_BEACON)
beacon = 1;
wl1251_rx_status(wl, desc, &status, beacon);
wl1251_debug(DEBUG_RX, "rx skb 0x%p: %d B %s", skb, skb->len,
beacon ? "beacon" : "");
memcpy(IEEE80211_SKB_RXCB(skb), &status, sizeof(status));
ieee80211_rx_ni(wl->hw, skb);
I wonder whether that first line (with the comment about alignment) is
assuming some behaviour from the mac80211 layer.
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.
Adding the original author (I think) and John Linville, since I'm well out
of my depth in this code!I haven't touched wl1251 for years. You should send questions to linux-wireless list and CC people who have worked on it recently. -- Kalle Valo