From: David S. Miller Date: Sat, 25 Jun 2005 03:18:35 +0000 (-0700) Subject: [TG3]: Eliminate all hw IRQ handler spinlocks. X-Git-Tag: v2.6.13-rc1~68^2~244 X-Git-Url: http://git.openpandora.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f47c11eeccc8820010992eb32dbe7370a08f8bd3;p=pandora-kernel.git [TG3]: Eliminate all hw IRQ handler spinlocks. Move all driver spinlocks to be taken at sw IRQ context only. This fixes the skb_copy() we were doing with hw IRQs disabled (which is illegal and triggers a BUG() with HIGHMEM enabled). It also simplifies the locking all over the driver tremendously. We accomplish this feat by creating a special sequence to synchronize with the hw IRQ handler using a binary state and synchronize_irq(). This idea is from Herbert Xu. Thanks to Michael Chan for helping to track down all of the race conditions in initial versions of this code. Signed-off-by: David S. Miller --- Reading git-diff-tree failed