From: Jarek Poplawski Date: Thu, 24 Dec 2009 05:54:29 +0000 (-0800) Subject: net/via-rhine: Fix scheduling while atomic bugs X-Git-Tag: v2.6.33-rc3~44^2~13 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c0d7a0212becebe11ffe6979ee3d6f1c4104568d;p=pandora-kernel.git 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 Tested-by: Andrey Rahmatullin Signed-off-by: Jarek Poplawski Signed-off-by: David S. Miller --- Reading git-diff-tree failed