On Monday 06 August 2012, qiang.liu@freescale.com wrote:
From: Qiang Liu <redacted>
The use of spin_lock_irqsave() is a stronger locking mechanism than is
required throughout the driver. The minimum locking required should be
used instead. Interrupts will be turned off and context will be saved,
there is needless to use irqsave.
Change all instances of spin_lock_irqsave() to spin_lock_bh().
All manipulation of protected fields is done using tasklet context or
weaker, which makes spin_lock_bh() the correct choice.
Cc: Dan Williams <redacted>
Cc: Dan Williams <redacted>
Cc: Vinod Koul <redacted>
Cc: Li Yang <redacted>
Cc: Timur Tabi <redacted>
Signed-off-by: Qiang Liu <redacted>
Acked-by: Ira W. Snyder <redacted>
Acked-by: Arnd Bergmann <arnd@arndb.de>
You could actually change the use of spin_lock_bh inside of the tasklet
function (dma_do_tasklet) do just spin_lock(), because softirqs are
already disabled there, but your version is also ok.