spi_bitbang: always grab lock with irqs blocked
PATCH 1/1 spi_bitbang: always grab lock with irqs blocked
From: David Brownell <[email protected]>
Fix a glitch reported by lockdep in the spi_bitbang code: it needs to consistently block IRQs when holding that spinlock.
Signed-off-by David Brownell <[email protected]>
drivers/spi/spi_bitbang.c +3 -2
@@ -184,6 +184,7 @@ int spi_bitbang_setup(struct spi_devicestruct spi_bitbang_cs *cs = spi->controller_state;struct spi_bitbang *bitbang;int retval; +unsigned long flags; bitbang =spi_master_get_devdata (spi->master);
@@ -222,12 +223,12 @@ int spi_bitbang_setup(struct spi_device*/ /* deselect chip (low or high) */ -spin_lock (&bitbang->lock); +spin_lock_irqsave (&bitbang->lock, flags);if (!bitbang->busy) { bitbang->chipselect (spi,BITBANG_CS_INACTIVE );ndelay (cs->nsecs); } -spin_unlock (&bitbang->lock); +spin_unlock_irqrestore (&bitbang->lock, flags);return 0 ; }
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/