linux/drivers/net/phy
Fabio Estevam ce7991e819 Revert "net: phy: Set the driver when registering an MDIO bus device"
Commit a71e3c3796 ("net: phy: Set the driver when registering an MDIO bus
device") caused the following regression on the fec driver:

root@imx6qsabresd:~# echo mem > /sys/power/state
PM: Syncing filesystems ... done.
Freezing user space processes ... (elapsed 0.003 seconds) done.
Freezing remaining freezable tasks ... (elapsed 0.002 seconds) done.
Unable to handle kernel NULL pointer dereference at virtual address 0000002c
pgd = bcd14000
[0000002c] *pgd=4d9e0831, *pte=00000000, *ppte=00000000
Internal error: Oops: 17 [#1] SMP ARM
Modules linked in:
CPU: 0 PID: 617 Comm: sh Not tainted 3.16.0 #17
task: bc0c4e00 ti: bceb6000 task.ti: bceb6000
PC is at fec_suspend+0x10/0x70
LR is at dpm_run_callback.isra.7+0x34/0x6c
pc : [<803f8a98>]    lr : [<80361f44>]    psr: 600f0013
sp : bceb7d70  ip : bceb7d88  fp : bceb7d84
r10: 8091523c  r9 : 00000000  r8 : bd88f478
r7 : 803f8a88  r6 : 81165988  r5 : 00000000  r4 : 00000000
r3 : 00000000  r2 : 00000000  r1 : bd88f478  r0 : bd88f478
Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
Control: 10c5387d  Table: 4cd1404a  DAC: 00000015
Process sh (pid: 617, stack limit = 0xbceb6240)
Stack: (0xbceb7d70 to 0xbceb8000)
....

The problem with the original commit is explained by Russell King:

"It has the effect (as can be seen from the oops) of attaching the MDIO bus
device (itself is a bus-less device) to the platform driver, which means
that if the platform driver supports power management, it will be called
to power manage the MDIO bus device.

Moreover, drivers do not expect to be called for power management
operations for devices which they haven't probed, and certainly not for
devices which aren't part of the same bus that the driver is registered
against."

This reverts commit a71e3c3796.

Cc: <stable@vger.kernel.org> #3.16
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2014-08-05 16:41:52 -07:00
..
amd-xgbe-phy.c amd-xgbe: fix unused variable compilation warning in phylib driver 2014-06-11 00:13:16 -07:00
amd.c
at803x.c net: phy: at803x: fix coccinelle warnings 2014-06-22 17:16:02 -07:00
bcm7xxx.c net: phy: bcm7xxx: properly clear AFE_RX_LP_COUNTER 2014-03-26 16:19:24 -04:00
bcm63xx.c phy: bcm63xx: report Broadcom BCM63xx PHYs as internal 2013-05-27 22:42:50 -07:00
bcm87xx.c net/phy/bcm87xx: Add MODULE_LICENSE("GPL") to GPL driver 2012-09-22 15:33:46 -04:00
broadcom.c net: phy: broadcom: extract register definitions 2014-02-14 00:27:58 -05:00
cicada.c net: phy: cicada: fix checkpath errors 2013-12-18 00:49:01 -05:00
davicom.c net: phy: davicom: fix checkpath errors 2013-12-18 00:49:01 -05:00
dp83640_reg.h
dp83640.c dp83640: Always decode received status frames 2014-07-09 17:00:34 -07:00
et1011c.c
fixed.c net: phy: extend fixed driver with fixed_phy_register() 2014-05-16 17:18:49 -04:00
icplus.c net: phy: icplus: fix checkpath error 2013-12-18 00:49:02 -05:00
Kconfig amd-xgbe: Configuration and build support 2014-06-05 15:26:51 -07:00
lxt.c net: phy: lxt: fix checkpath errors 2013-12-18 00:49:02 -05:00
Makefile amd-xgbe: Configuration and build support 2014-06-05 15:26:51 -07:00
marvell.c net: phy: marvell: provide genphy suspend/resume 2013-12-17 14:42:44 -05:00
mdio_bus.c Revert "net: phy: Set the driver when registering an MDIO bus device" 2014-08-05 16:41:52 -07:00
mdio-bitbang.c Revert "drivers/net/phy/mdio-bitbang.c: Call mdiobus_unregister before mdiobus_free" 2012-11-14 22:32:15 -05:00
mdio-gpio.c net: mdio-gpio: warn about missing bus alias id 2014-05-09 15:51:19 -04:00
mdio-moxart.c drivers/net: delete non-required instances of include <linux/init.h> 2014-01-16 11:53:26 -08:00
mdio-mux-gpio.c drivers/net: delete non-required instances of include <linux/init.h> 2014-01-16 11:53:26 -08:00
mdio-mux-mmioreg.c drivers/net: delete non-required instances of include <linux/init.h> 2014-01-16 11:53:26 -08:00
mdio-mux.c
mdio-octeon.c drivers/net: delete non-required instances of include <linux/init.h> 2014-01-16 11:53:26 -08:00
mdio-sun4i.c net: sun4i: remove empty MDIO bus reset function 2014-03-28 01:38:02 -04:00
micrel.c ARM: i.MX6: Add OF configuration support for ksz9031 2014-05-07 16:51:09 -04:00
national.c
phy_device.c net: phy: re-apply PHY fixups during phy_register_device 2014-07-29 12:25:57 -07:00
phy.c net: phylib: add link_change_notify callback to phy device 2014-06-21 15:50:00 -07:00
qsemi.c
realtek.c net: phy: realtek: register/unregister multiple drivers properly 2014-06-11 15:17:27 -07:00
smsc.c net/phy: Remove return value for void function 2014-04-23 15:28:05 -04:00
spi_ks8995.c net: Micrel KSZ8864RMN 4-port managed switch support 2014-04-03 16:15:29 -04:00
ste10Xp.c
vitesse.c net/phy: Remove return value for void function 2014-04-23 15:28:05 -04:00