No Alan, Alexey is right. The "hard_start_xmit()" itself is protected
by a "start_bh_atomic()"/"end_bh_atomic()" pair, so it cannot be
interrupted by any other bh (timer or network). This guarantees the
non-re-entrancy of the network drivers (although lots of drivers still
have the cruft from back when this wasn't true).
Of course, the actual device driver often has to protect itself from its
own hardware interrupts (to serialize access to the device registers),
so deep down in the driver it may often need a cli/sti pair. But it
doesn't need to protect itself from being called by the rest of the kernel.
Linus