linux_dsm_epyc7002/drivers/net
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
..
appletalk
arcnet
bonding bonding: use kobject_put instead of _del after kobject_add 2014-07-31 11:16:09 -07:00
caif
can can: c_can_platform: Fix raminit, use devm_ioremap() instead of devm_ioremap_resource() 2014-07-25 09:23:08 +02:00
cris
dsa
ethernet qlcnic: Initialize dcbnl_ops before register_netdev 2014-08-05 16:23:27 -07:00
fddi defxx: Fix !DYNAMIC_BUFFERS compilation warnings 2014-07-02 18:26:29 -07:00
hamradio
hippi
hyperv hyperv: Fix error return code in netvsc_init_buf() 2014-07-23 14:55:47 -07:00
ieee802154 at86rf230: fix irq setup 2014-06-22 18:04:03 -07:00
irda Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2014-06-12 14:27:40 -07:00
phy Revert "net: phy: Set the driver when registering an MDIO bus device" 2014-08-05 16:41:52 -07:00
plip
ppp net: ppp: fix creating PPP pass and active filters 2014-07-16 23:42:06 -07:00
slip slip: Fix deadlock in write_wakeup 2014-06-16 21:29:12 -07:00
team Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2014-06-03 23:32:12 -07:00
usb cdc_subset: deal with a device that needs reset for timeout 2014-08-02 15:44:18 -07:00
vmxnet3 vmxnet3: adjust ring sizes when interface is down 2014-06-16 21:26:40 -07:00
wan wan/x25_asy: integer overflow in x25_asy_change_mtu() 2014-07-17 16:47:50 -07:00
wimax net: wimax: i2400m: control.c: Cleaning up conjunction always evaluates to false 2014-06-11 00:13:16 -07:00
wireless ath9k: fix aggregation session lockup 2014-07-23 13:03:11 -04:00
xen-netback xen-netback: Fix pointer incrementation to avoid incorrect logging 2014-07-20 20:56:06 -07:00
dummy.c
eql.c
ifb.c
Kconfig
LICENSE.SRC
loopback.c
macvlan.c macvlan: Initialize vlan_features to turn on offload support. 2014-07-31 22:10:01 -07:00
macvtap.c
Makefile r8152: add missing Makefile rule 2014-08-02 20:53:55 -07:00
mdio.c
mii.c
netconsole.c
nlmon.c
ntb_netdev.c net: use ethtool_cmd_speed_set helper to set ethtool speed value 2014-06-06 16:24:07 -07:00
rionet.c
sb1000.c
Space.c
sungem_phy.c
tun.c net-tun: restructure tun_do_read for better sleep/wakeup efficiency 2014-05-21 15:50:28 -04:00
veth.c
virtio_net.c
vxlan.c neighbour : fix ndm_type type error issue 2014-07-28 17:52:17 -07:00
xen-netfront.c xen-netfront: print correct number of queues 2014-07-31 22:23:52 -07:00