Sometimes a tasklet or timer might want to share data with another tasklet or timer.
Since a tasklet is never run on two CPUs at once, you don't need to worry about your tasklet being reentrant (running twice at once), even on SMP.
If another tasklet/timer wants
to share data with your tasklet or timer , you will both need to use
spin_lock()
and
spin_unlock()
calls.
spin_lock_bh()
is
unnecessary here, as you are already in a tasklet, and
none will be run on the same CPU.