ramips: Rework ramips_eth to not require irqsave locking anymore
authorJohn Crispin <john@openwrt.org>
Tue, 17 Jan 2012 11:23:11 +0000 (11:23 +0000)
committerJohn Crispin <john@openwrt.org>
Tue, 17 Jan 2012 11:23:11 +0000 (11:23 +0000)
commita2708d11e88d423279e3a90869c6d5e6405d3f6f
treed59e86b66fe6ea5b3add301748e8dbeaceb2a583
parent2683b5b15de6b1fce7e1e6d84694c7cc441f0e49
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>
SVN-Revision: 29762
target/linux/ramips/files/drivers/net/ramips.c