Page 1 of 1

failed to linearize skb with tiny unaligned fragment

Posted: 24 Jun 2016, 12:22
by stasheck
After last kernel update (Arch Linux), when I try to watch films from B3 (via NFS), the film will get stuck a few times, and then will cause B3 to die - only hard reboot helps.

In the log, I get a ton of those: (few hundred per second):
[root@archb3 ~]# journalctl -r | grep skb | head -n1
Jun 24 18:02:28 archb3 kernel: mv643xx_eth_port mv643xx_eth_port.1 eth1: failed to linearize skb with tiny unaligned fragment
Current kernel:
[root@archb3 ~]# uname -a
Linux archb3 4.6.2-1-ARCH #1 PREEMPT Mon Jun 13 02:11:34 MDT 2016 armv5tel GNU/Linux
Did quick research and:
- seems to be a rare problem
- caused by a kernel driver
- I have no idea how to fix it
- I have very slight idea on how to roll back Arch kernel and not totally mess my system up

Any ideas?

PS. After reboot system seems to work fine - no errors - for some time. E.g. After I rebooted yesterday, I was aboe to watch 1 hr film without any issues; tried to watch today and it died after some 5 minutes or so.

Re: failed to linearize skb with tiny unaligned fragment

Posted: 25 Jun 2016, 07:22
by sakaki
Hi stasheck,

haven't looked into this bug specifically, but if, as you say, it is kernel version specific, then you can easily roll back the kernel (inc. module set and headers) on your system and then 'pin' this in place (so it is not subsequently replaced by pacman -Syu). You can use the Arch Linux ARM rollback machine to get previous package versions (and browse its package archive, to see what versions are available, here).

For example, suppose your "last known good" version of the kernel was 4.5.5-1. Then, to get the rollback package for this kernel (and install it), issue:

Code: Select all

[root@archb3 ~]# curl -O http://tardis.tiny-vps.com/aarm/packages/l/linux-kirkwood-dt/linux-kirkwood-dt-4.5.5-1-arm.pkg.tar.xz
[root@archb3 ~]# curl -O http://tardis.tiny-vps.com/aarm/packages/l/linux-api-headers/linux-api-headers-4.5.5-1-arm.pkg.tar.xz
[root@archb3 ~]# pacman -U linux-kirkwood-dt-4.5.5-1-arm.pkg.tar.xz linux-api-headers-4.5.5-1-arm.pkg.tar.xz
  (confirm when prompted)
Then, to 'pin' it:

Code: Select all

[root@archb3 ~]# nano -w /etc/pacman.conf
and uncomment the IgnorePkg line, and modify it so it reads:

Code: Select all

IgnorePkg = linux-kirkwood-dt linux-api-headers
Save, and exit nano. Reboot, and you should be done.

If your issue is subsequently fixed in a newer kernel, you can 'unpin' by simply commenting out the IgnorePkg stanza (in pacman.conf), and then running pacman -Syu (to pick up the latest version again).

Hope that helps,

sakaki
Edited to clarify use of pacman -Syu, rather than just pacman -u.

Re: failed to linearize skb with tiny unaligned fragment

Posted: 27 Jun 2016, 03:13
by stasheck
Wish someone would describe it on Arch wiki in such a clear and concise way as you just did :-) Thanks a ton, Sakaki!

Re: failed to linearize skb with tiny unaligned fragment

Posted: 29 Jun 2016, 03:34
by stasheck
I opened a topic on Arch ARM forum, here's the link for reference: https://archlinuxarm.org/forum/viewtopi ... 459#p52459