ramips: Rework ramips_eth to not require irqsave locking anymore
authorJohn Crispin <blogic@openwrt.org>
Tue, 17 Jan 2012 11:23:11 +0000 (11:23 +0000)
committerJohn Crispin <blogic@openwrt.org>
Tue, 17 Jan 2012 11:23:11 +0000 (11:23 +0000)
commitb58ab60fff285237ba7aa49ffd6900abeabdab4c
treef4364900a198534942330354141f0de06ad47261
parentbfe81f3c87728dfaac51c8a7a3fc983cf0120f62
ramips: Rework ramips_eth to not require irqsave locking anymore

Previously the tx housekeeping was done in a spin_lock_irqsave critical
section which causes irqs to be disabled during that time. Since the
housekeeping is already prepared to be scheduled as a tasklet process
the housekeeping only in softirq context and revise the locking between
the tx path and the housekeeping tasklet by using a normal spin_lock
which in most situations will be a NOP anyway.

This makes sure that interrupts are only disabled for a short time
since in the worst case the housekeeping might have to free up to 256
skbs.

Signed-off-by: Helmut Schaa <helmut.schaa@googlemail.com>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@29762 3c298f89-4303-0410-b956-a3cf2f4a3e73
target/linux/ramips/files/drivers/net/ramips.c