Skip to content

Network not working after updating to 5.15.61 #5145

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
jaketri opened this issue Aug 24, 2022 · 19 comments
Closed

Network not working after updating to 5.15.61 #5145

jaketri opened this issue Aug 24, 2022 · 19 comments

Comments

@jaketri
Copy link

jaketri commented Aug 24, 2022

Describe the bug

Network does not work on Raspberry Pi 2 and 3 after updating kernel from 5.15.56 to 5.15.61

I notice kernel patch for 5.15.61 have changes to smsc95xx driver ... Not sure if that is the root cause but look suspicious coincidence.

Steps to reproduce the behaviour

Install 5.15.61 kernel on RPi2 or RPi3 and notice LAN not working.

Device (s)

Raspberry Pi 2 Mod. B, Raspberry Pi 3 Mod. B

System

Using Arch Linux ARM

rpi2b ~ # vcgencmd version
Aug 23 2022 14:24:57
Copyright (c) 2012 Broadcom
version bf881c824bac214626a9f78094d614f7db462c34 (clean) (release) (start)
rpi2b ~ # uname -a
Linux rpi2b 5.15.61-1-rpi-ARCH #1 SMP Tue Aug 23 13:21:13 MDT 2022 armv7l GNU/Linux

Logs

No response

Additional context

No response

@jaketri jaketri changed the title Network issue with after updating to 5.15.61 Network not working after updating to 5.15.61 Aug 24, 2022
@bittin
Copy link

bittin commented Aug 24, 2022

i have the same problem with Raspberry Pi OS on a Pi 3

@stevegk
Copy link

stevegk commented Aug 24, 2022

Just built 5.15.60 using tag a309898 on Arch and it works OK for me on a Pi 2 rev 1.1. 5.15.61 based on tag e1f6a09 doesn't.

@rien333
Copy link

rien333 commented Aug 24, 2022

For the record: this only affects networking through eth0, not through wlan0.

Relevant forum issue: https://archlinuxarm.org/forum/viewtopic.php?f=65&t=16149

@jlabundy
Copy link
Contributor

Hi there—just chiming in to report the same issue after moving from 5.15.56 to 5.15.61 as well.

@semeion
Copy link

semeion commented Aug 25, 2022

Yeah, i can confirm this issue.

I had same issue after update my RPI3 Archlinux-ARM from 5.15.56 to 5.15.61

@JackMauro
Copy link

Same issue with Raspbian GNU/Linux 11 (bullseye), upgrading from 5.15.32-v7+ to 5.15.61 on raspberry 3b.

@jaketri
Copy link
Author

jaketri commented Aug 25, 2022

Just built 5.15.60 using tag a309898 on Arch and it works OK for me on a Pi 2 rev 1.1. 5.15.61 based on tag e1f6a09 doesn't.

To check if my original suspicion was correct, I build 5.15.61 kernel from tag e1f6a09 but patch in the old drivers/net/usb/smsc95xx.c file from 5.15.60 tag a309898 ...

Sorry for my delayed update but It took me almost a full day to finish the build ....

Anyway, surprise surprise !!! ... LAN is working fine with the Frankenstein kernel build using 5.15.61 with old drivers/net/usb/smsc95xx.c file!

@pelwell
Copy link
Contributor

pelwell commented Aug 26, 2022

I can confirm that the onboard Ethernet is non-functional on a 3B with 5.15.61 - the link is shown as being down. Reverting the two most recent commits to drivers/net/usb/smsc95xx.c (b574d1e and eaf3a09 ) restores the connectivity. ( Full disclosure - I'm testing on the downstream branch rpi-5.16.y, but I don't think there are significant differences in this area. )

Any suggestions, @l1k?

@pelwell
Copy link
Contributor

pelwell commented Aug 26, 2022

Unsurprisingly the PHY is still detecting link changes, but the 95xx driver is unaware of them because it is no longer polling and apparently not receiving an interrupt of any kind.

Unplugged:

$ sudo mii-tool -v eth0
eth0: no link
  product info: vendor 00:80:0f or 00:01:f0, model 12 rev 3
  basic mode:   autonegotiation enabled
  basic status: no link
  capabilities: 1000baseT-HD 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
  advertising:  1000baseT-HD 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
  link partner: 1000baseT-HD 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD flow-control

Connected:

$ sudo mii-tool -v eth0
eth0: negotiated 1000baseT-HD flow-control, link ok
  product info: vendor 00:80:0f or 00:01:f0, model 12 rev 3
  basic mode:   autonegotiation enabled
  basic status: autonegotiation complete, link ok
  capabilities: 1000baseT-HD 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
  advertising:  1000baseT-HD 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD
  link partner: 1000baseT-HD 1000baseT-FD 100baseTx-FD 100baseTx-HD 10baseT-FD 10baseT-HD flow-control
~$ ifconfig eth0
eth0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether b8:27:ec:23:45:67  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

@l1k
Copy link
Contributor

l1k commented Aug 26, 2022

This was also reported by Mark Brown the other day:
https://lore.kernel.org/all/[email protected]/

TL;DR: The feature shouldn't have been backported to stable kernels. Way too risky. Stable maintainers backported it even though it wasn't tagged for stable. I'd suggest reverting it in the downstream tree until stable maintainers revert it. The feature is working fine in v5.19, but I'd advise against using it on older kernels for now. There have been a lot of changes in the various drivers involved and it's difficult to figure out what's missing.

@pelwell
Copy link
Contributor

pelwell commented Aug 26, 2022

Understood - thanks for the quick response.

pelwell added a commit that referenced this issue Aug 26, 2022
This reverts commit b574d1e.

See: #5145

Signed-off-by: Phil Elwell <[email protected]>
pelwell added a commit that referenced this issue Aug 26, 2022
…id polling"

This reverts commit eaf3a09.

See: #5145

Signed-off-by: Phil Elwell <[email protected]>
pelwell added a commit that referenced this issue Aug 26, 2022
pelwell added a commit that referenced this issue Aug 26, 2022
pelwell added a commit that referenced this issue Aug 26, 2022
This reverts commit b574d1e.

See: #5145

Signed-off-by: Phil Elwell <[email protected]>
pelwell added a commit that referenced this issue Aug 26, 2022
…id polling"

This reverts commit eaf3a09.

See: #5145

Signed-off-by: Phil Elwell <[email protected]>
pelwell added a commit that referenced this issue Aug 26, 2022
pelwell added a commit that referenced this issue Aug 26, 2022
@pelwell
Copy link
Contributor

pelwell commented Aug 26, 2022

The back-ports to 5.15 and 5.18 have been reverted.

@bittin
Copy link

bittin commented Aug 26, 2022

Great, downgrading my Pi3 :)

popcornmix added a commit to raspberrypi/firmware that referenced this issue Aug 26, 2022
kernel: Revert usbnet: smsc95xx: Avoid link settings race on interrupt reception
kernel: Revert usbnet: smsc95xx: Forward PHY interrupts to PHY driver to avoid polling
kernel: Revert usbnet: smsc95xx: Fix deadlock on runtime resume
See: raspberrypi/linux#5145

kernel: defconfigs: Add CONFIG_MUX_GPIO
See: raspberrypi/linux#5147

kernel: media: i2c: arducam-pivariety: Add custom controls
See: raspberrypi/linux#5148

firmware: Fix USB boot
See: #1744

firmware: video decode/MJPEG fixes
See: http://git/vc4/vc4/-/merge_requests/1548

firmware: power: Restore VEC and PIXEL clocks after HDMI domain power cycle
See: raspberrypi/linux#4962
popcornmix added a commit to raspberrypi/rpi-firmware that referenced this issue Aug 26, 2022
kernel: Revert usbnet: smsc95xx: Avoid link settings race on interrupt reception
kernel: Revert usbnet: smsc95xx: Forward PHY interrupts to PHY driver to avoid polling
kernel: Revert usbnet: smsc95xx: Fix deadlock on runtime resume
See: raspberrypi/linux#5145

kernel: defconfigs: Add CONFIG_MUX_GPIO
See: raspberrypi/linux#5147

kernel: media: i2c: arducam-pivariety: Add custom controls
See: raspberrypi/linux#5148

firmware: Fix USB boot
See: raspberrypi/firmware#1744

firmware: video decode/MJPEG fixes
See: http://git/vc4/vc4/-/merge_requests/1548

firmware: power: Restore VEC and PIXEL clocks after HDMI domain power cycle
See: raspberrypi/linux#4962
@popcornmix
Copy link
Collaborator

rpi-update kernel has been updated with reverted kernel commits.

@bittin
Copy link

bittin commented Aug 26, 2022

perfect, thx @popcornmix

@l1k
Copy link
Contributor

l1k commented Aug 26, 2022

I've asked Sasha and Greg for a revert in 5.15-stable and 5.18-stable:

https://lore.kernel.org/netdev/[email protected]/

@pelwell
Copy link
Contributor

pelwell commented Aug 26, 2022

They can hardly say no...

@bittin
Copy link

bittin commented Aug 26, 2022

thanks for fixing it downstream and working on fixing it upstream too

@jaketri
Copy link
Author

jaketri commented Aug 27, 2022

Thank you for the quick fix!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

10 participants