mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-27 14:43:58 +08:00
b394745df2
After the call to phy_init_hw failed in phy_attach_direct, phy_detach is called to detach the phy device from its network device. If the attached driver is a generic phy driver, this also detaches the driver. Subsequently phy_resume is called, which assumes without checking that a driver is attached to the device. This will result in a crash such as Unable to handle kernel paging request for data at address 0xffffffffffffff90 Faulting instruction address: 0xc0000000003a0e18 Oops: Kernel access of bad area, sig: 11 [#1] ... NIP [c0000000003a0e18] .phy_attach_direct+0x68/0x17c LR [c0000000003a0e6c] .phy_attach_direct+0xbc/0x17c Call Trace: [c0000003fc0475d0] [c0000000003a0e6c] .phy_attach_direct+0xbc/0x17c (unreliable) [c0000003fc047670] [c0000000003a0ff8] .phy_connect_direct+0x28/0x98 [c0000003fc047700] [c0000000003f0074] .of_phy_connect+0x4c/0xa4 Only call phy_resume if phy_init_hw was successful. Signed-off-by: Guenter Roeck <linux@roeck-us.net> Acked-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net> |
||
---|---|---|
.. | ||
amd.c | ||
at803x.c | ||
bcm7xxx.c | ||
bcm63xx.c | ||
bcm87xx.c | ||
broadcom.c | ||
cicada.c | ||
davicom.c | ||
dp83640_reg.h | ||
dp83640.c | ||
et1011c.c | ||
fixed.c | ||
icplus.c | ||
Kconfig | ||
lxt.c | ||
Makefile | ||
marvell.c | ||
mdio_bus.c | ||
mdio-bitbang.c | ||
mdio-gpio.c | ||
mdio-moxart.c | ||
mdio-mux-gpio.c | ||
mdio-mux-mmioreg.c | ||
mdio-mux.c | ||
mdio-octeon.c | ||
mdio-sun4i.c | ||
micrel.c | ||
national.c | ||
phy_device.c | ||
phy.c | ||
qsemi.c | ||
realtek.c | ||
smsc.c | ||
spi_ks8995.c | ||
ste10Xp.c | ||
vitesse.c |