sfc: Remove dependence on NAPI polling in efx_test_eventq_irq()
authorBen Hutchings <bhutchings@solarflare.com>
Fri, 4 Nov 2011 23:06:04 +0000 (23:06 +0000)
committerBen Hutchings <bhutchings@solarflare.com>
Fri, 27 Jan 2012 00:10:51 +0000 (00:10 +0000)
commit0fb53faa2e6fe67a76b8cfc6eb70a88d9d623648
tree7e764db050defe7bec474e4266c5d3dd45a45766
parentcc180b69c009ec52f67a56d96b9073b9f774b323
sfc: Remove dependence on NAPI polling in efx_test_eventq_irq()

We cannot safely assume that the NAPI handler will complete within the
20 ms that we allow for the event self-test.  The handler may be
deferred for longer than this, particularly on realtime kernels.

Instead, check whether either an event has been handled or (as in the
old failure path) whether an interrupt has been received and an event
has been delivered but not yet handled.  Use napi_disable() to
synchronize with the NAPI handler before checking, since it will
clear events before updating eventq_read_ptr.

Remove the test result chan.N.eventq.poll, since it is not an error
if the NAPI handler does not run during the test.

Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
drivers/net/ethernet/sfc/ethtool.c
drivers/net/ethernet/sfc/selftest.c
drivers/net/ethernet/sfc/selftest.h