Merge branch 'mv643xx'
authorDavid S. Miller <davem@davemloft.net>
Wed, 2 Oct 2013 21:11:50 +0000 (17:11 -0400)
committerDavid S. Miller <davem@davemloft.net>
Wed, 2 Oct 2013 21:11:50 +0000 (17:11 -0400)
commit569943d0639c85a451ea853087cbd5f738247dd9
treeb2b7ab74e1ca5257523412a7f37a9e9967a341bb
parente18503f41f9b12132c95d7c31ca6ee5155e44e5c
parentb5d82db83c1d0b327b599508a0830d25cc1f15db
Merge branch 'mv643xx'

Sebastian Hesselbarth says:

====================
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.
====================

Signed-off-by: David S. Miller <davem@davemloft.net>