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.