Florian Fainelli
ec988ad78e
phy: Don't increment MDIO bus refcount unless it's a different owner
...
Commit 3e3aaf6494 ("phy: fix mdiobus module safety") fixed the way we
dealt with MDIO bus module reference count, but sort of introduced a
regression in that, if an Ethernet driver registers its own MDIO bus
driver, as is common, we will end up with the Ethernet driver's
module->refnct set to 1, thus preventing this driver from any removal.
Fix this by comparing the network device's device driver owner against
the MDIO bus driver owner, and only if they are different, increment the
MDIO bus module refcount.
Fixes: 3e3aaf6494 ("phy: fix mdiobus module safety")
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2016-12-07 13:27:14 -05:00
..
amd.c
phy: Centralize setting driver module owner
2016-01-07 14:31:27 -05:00
aquantia.c
phy: Centralize setting driver module owner
2016-01-07 14:31:27 -05:00
at803x.c
at803x: double check SGMII side autoneg
2016-10-27 16:05:17 -04:00
bcm-cygnus.c
net: phy: Broadcom Cygnus internal Etherent PHY driver
2015-10-08 04:45:52 -07:00
bcm-phy-lib.c
phy: phy_{read|write}_mmd_indirect: get addr from phydev
2016-01-07 14:31:25 -05:00
bcm-phy-lib.h
net: phy: Add Broadcom phy library for common interfaces
2015-10-08 04:45:46 -07:00
bcm7xxx.c
net: phy: bcm7xxx: Add entries for Broadcom BCM7346 and BCM7362
2016-03-25 11:37:57 -04:00
bcm63xx.c
phy: Centralize setting driver module owner
2016-01-07 14:31:27 -05:00
bcm87xx.c
phy: Centralize setting driver module owner
2016-01-07 14:31:27 -05:00
broadcom.c
phy: Centralize setting driver module owner
2016-01-07 14:31:27 -05:00
cicada.c
phy: Centralize setting driver module owner
2016-01-07 14:31:27 -05:00
davicom.c
phy: Centralize setting driver module owner
2016-01-07 14:31:27 -05:00
dp83640.c
net: dp83640: Fix tx timestamp overflow handling.
2016-01-20 18:54:08 -08:00
dp83640_reg.h
dp83848.c
net: phy: dp83848: add dp83822 PHY support
2016-10-29 17:25:17 -04:00
dp83867.c
net: phy: dp83867: Fix initialization of PHYCR register
2016-07-02 14:48:58 -04:00
et1011c.c
phy: Centralize setting driver module owner
2016-01-07 14:31:27 -05:00
fixed_phy.c
net: phy: fixed_phy: fix of_node leak in fixed_phy_unregister
2016-11-17 12:05:05 -05:00
icplus.c
phy: Centralize setting driver module owner
2016-01-07 14:31:27 -05:00
intel-xway.c
NET: PHY: adds driver for Intel XWAY PHY
2016-06-10 22:13:48 -07:00
Kconfig
drivers: net: phy: Correct duplicate MDIO_XGENE entry
2016-10-06 21:15:42 -04:00
lxt.c
lxt: simplify lxt970_config_init()
2016-05-16 13:53:20 -04:00
Makefile
net: phy: Sort Makefile and Kconfig
2016-08-19 17:11:50 -07:00
marvell.c
Marvell phy: add functions to suspend and resume both interfaces: fiber and copper links.
2016-07-19 16:05:56 -07:00
mdio-bcm-iproc.c
net: phy: Broadcom iProc MDIO bus driver
2015-10-08 04:44:46 -07:00
mdio-bcm-unimac.c
mdio: Move allocation of interrupts into core
2016-01-07 14:31:26 -05:00
mdio-bitbang.c
net: phy: mdio-gpio: Handle phy_ignore_ta_mask
2015-05-14 13:40:55 -04:00
mdio-cavium.c
phy: mdio-cavium: Add missing MODULE_* annotations.
2016-03-16 19:55:37 -04:00
mdio-cavium.h
phy: mdio-octeon: Refactor into two files/modules
2016-03-14 15:27:22 -04:00
mdio-gpio.c
mdio: Move allocation of interrupts into core
2016-01-07 14:31:26 -05:00
mdio-hisi-femac.c
net: Add MDIO bus driver for the Hisilicon FEMAC
2016-07-16 21:32:58 -07:00
mdio-moxart.c
mdio: Move allocation of interrupts into core
2016-01-07 14:31:26 -05:00
mdio-mux-bcm-iproc.c
net: mdio-mux: Add MDIO mux driver for iProc SoCs
2016-06-10 23:24:54 -07:00
mdio-mux-gpio.c
mdio: mux: Enhanced MDIO mux framework for integrated multiplexers
2016-06-10 23:24:53 -07:00
mdio-mux-mmioreg.c
mdio: mux: Enhanced MDIO mux framework for integrated multiplexers
2016-06-10 23:24:53 -07:00
mdio-mux.c
mdio: mux: avoid 'maybe-uninitialized' warning
2016-06-15 20:48:52 -07:00
mdio-octeon.c
phy: mdio-octeon: Refactor into two files/modules
2016-03-14 15:27:22 -04:00
mdio-sun4i.c
mdio-sun4i: oops in error handling in probe
2016-03-21 11:30:01 -04:00
mdio-thunder.c
phy: mdio-thunder: Add driver for Cavium Thunder SoC MDIO buses.
2016-03-14 15:27:22 -04:00
mdio-xgene.c
drivers: net: phy: xgene: Fix 'remove' function
2016-09-13 12:04:11 -04:00
mdio-xgene.h
drivers: net: phy: xgene: Add MDIO driver
2016-07-25 21:51:43 -07:00
mdio_bus.c
mdio_bus: don't return NULL from mdiobus_scan()
2016-05-04 16:14:19 -04:00
mdio_device.c
mdio: Abstract device_remove() and device_free()
2016-01-07 14:31:27 -05:00
micrel.c
net: phy: micrel: fix KSZ8041FTL supported value
2016-11-23 20:18:36 -05:00
microchip.c
phy: mark lan88xx_suspend() static
2016-09-19 21:52:10 -04:00
mscc.c
net: phy: Add Wake-on-LAN driver for Microsemi PHYs.
2016-10-06 20:48:04 -04:00
national.c
phy: Centralize setting driver module owner
2016-01-07 14:31:27 -05:00
phy.c
net: phy: Trigger state machine on state change and not polling.
2016-10-13 12:03:47 -04:00
phy_device.c
phy: Don't increment MDIO bus refcount unless it's a different owner
2016-12-07 13:27:14 -05:00
qsemi.c
phy: Centralize setting driver module owner
2016-01-07 14:31:27 -05:00
realtek.c
net: phy: realtek: fix enabling of the TX-delay for RTL8211F
2016-11-28 12:06:54 -05:00
smsc.c
net: phy: smsc: reintroduced unconditional soft reset
2016-06-10 22:14:58 -07:00
spi_ks8995.c
net: phy: spi_ks8895: Don't leak references to SPI devices
2016-04-21 15:00:27 -04:00
ste10Xp.c
phy: Centralize setting driver module owner
2016-01-07 14:31:27 -05:00
swphy.c
phy: generate swphy registers on the fly
2016-06-27 10:40:57 -04:00
swphy.h
phy: generate swphy registers on the fly
2016-06-27 10:40:57 -04:00
teranetics.c
phy: Centralize setting driver module owner
2016-01-07 14:31:27 -05:00
vitesse.c
net/phy/vitesse: Configure RGMII skew on VSC8601, if needed
2016-11-16 17:53:56 -05:00
xilinx_gmii2rgmii.c
net: phy: xgmiitorgmii: Fix non static symbol warning
2016-08-23 17:17:48 -07:00