This patch set comprises some one-liners to fix issues with repeated loading and unloading of a modular mv643xx_eth driver.
First two patches take care of the periodic port statistic timer, that updates statistics by reading port registers using add_timer/mod_timer. Patch 1 moves timer re-schedule from mib_counters_update to the timer callback. As mib_counters_update is also called from non-timer context, this ensures the timer is reactivated from timer context only. Patch 2 moves initial timer schedule from _probe() time to right before the port is actually started as the corresponding del_timer_sync is at _stop() time. This fixes a regression, where unloading the driver from a non-started eth device can cause the timer to access deallocated mem. Patch 3 adds an assignment of the ports device_node to the corresponding self-created platform_device. This is required to allow fixups based on the device_node's compatible string later. Actually, it is also a potential regression because we already check compatible string for Kirkwood, but does not (yet) rely on the fixup. All patches are based on v3.12-rc3 and have been tested on Kirkwood-based Seagate Dockstar. Patches 1 and 2 can also possibly queued up for -stable. Sebastian Hesselbarth (3): net: mv643xx_eth: update statistics timer from timer context only net: mv643xx_eth: fix orphaned statistics timer crash net: mv643xx_eth: fix missing device_node for port devices drivers/net/ethernet/marvell/mv643xx_eth.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) --- Cc: David Miller <da...@davemloft.net> Cc: Lennert Buytenhek <buyt...@wantstofly.org> Cc: Jason Cooper <ja...@lakedaemon.net> Cc: net...@vger.kernel.org Cc: linux-arm-ker...@lists.infradead.org Cc: linux-kernel@vger.kernel.org -- 1.7.10.4 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/