]> git.baikalelectronics.ru Git - kernel.git/commit
Merge branch 'gianfar'
authorDavid S. Miller <davem@davemloft.net>
Tue, 25 Feb 2014 00:38:53 +0000 (19:38 -0500)
committerDavid S. Miller <davem@davemloft.net>
Tue, 25 Feb 2014 00:38:53 +0000 (19:38 -0500)
commit24c3f2fcdf750a8bf5a9ee0bdc3b256794b9d9a5
treeaa785ebd0bafdcc86316e0a19e944ce77f1bac21
parentf7eae115dd5799bc8b41d7205aecdca109c0ae9f
parentffd3b82a8a98473d94cd57382814b0bc3d809c9a
Merge branch 'gianfar'

Claudiu Manoil says:

====================
gianfar: Device reset and reconfig fixes

These patches end up fixing some notable device reset & reconfig
related problems.  One issue is on-the-fly (Rx/Tx on) programming
of interrupt coalescing (IC) registers on the processing path,
against HW recommendation.  This is an old issue that became visible
after BQL introduction, as under certain conditions (low traffic)
one TX interrupt gets lost and BQL fires Tx timeout as a result.
Another notable issue is a race on the Tx path (xmit, clean_tx)
during device reset (i.e. during Tx timeout watchdog firing)
that leads to NULL access.
Fixing the problematic on-thy-fly register writes (i.e. the IC regs)
required the implementation of a MAC soft reset procedure.
The race leading to NULL access was addressed by fixing the
stop_gfar()/startup_gfar() pair (disable/enable napi a.s.o.)
and adding the device state DOWN to sync with the TX path.

v2: Refactored if() clauses from gfar_set_features(), PATCH 2.
====================

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