diff options
author | Jarek Poplawski <jarkao2@gmail.com> | 2009-12-23 21:54:29 -0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-12-23 21:54:29 -0800 |
commit | c0d7a0212becebe11ffe6979ee3d6f1c4104568d (patch) | |
tree | c15c91cec8b1d547def8c2381594fef0ae077f98 /net | |
parent | 656ab8172a49d3931e64f866c080260be638c8a9 (diff) | |
download | op-kernel-dev-c0d7a0212becebe11ffe6979ee3d6f1c4104568d.zip op-kernel-dev-c0d7a0212becebe11ffe6979ee3d6f1c4104568d.tar.gz |
net/via-rhine: Fix scheduling while atomic bugs
There are BUGs "scheduling while atomic" triggered by the timer
rhine_tx_timeout(). They are caused by calling napi_disable() (with
msleep()). This patch fixes it by moving most of the timer content to
the workqueue function (similarly to other drivers, like tg3), with
spin_lock() changed to BH version.
Additionally, there is spin_lock_irq() moved in rhine_close() to
exclude napi_disable() etc., also tg3's way.
Reported-by: Andrey Rahmatullin <wrar@altlinux.org>
Tested-by: Andrey Rahmatullin <wrar@altlinux.org>
Signed-off-by: Jarek Poplawski <jarkao2@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net')
0 files changed, 0 insertions, 0 deletions