sfc: Allow resets to be upgraded; use atomic ops for safety
authorBen Hutchings <bhutchings@solarflare.com>
Fri, 24 Jun 2011 19:46:31 +0000 (20:46 +0100)
committerBen Hutchings <bhutchings@solarflare.com>
Fri, 24 Jun 2011 23:43:48 +0000 (00:43 +0100)
commita7d529ae2158b5300e4aa16c21f1828bc864449b
tree8a4442da3d52682945579ce76a9c075cf41a110b
parent4017dbdc14af1903dc9fcba4d08b89c02325069d
sfc: Allow resets to be upgraded; use atomic ops for safety

Currently an attempt to schedule any reset is ignored if a reset
is already pending.  This ignores the relative scopes - if the
requested reset is greater in scope then the scheduled reset should
be upgraded accordingly.

There are also some race conditions which could lead to a reset
request being lost.  Deal with them by using atomic operations on a
bitmask.  This also makes tests on reset_pending easier to get right.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
drivers/net/sfc/efx.c
drivers/net/sfc/enum.h
drivers/net/sfc/falcon.c
drivers/net/sfc/net_driver.h