[PATCH v3] MAX1111: Fix Race condition causing NULL pointer exception

Pavel Herrmann morpheus.ibis at gmail.com
Tue Jul 12 04:04:55 EDT 2011


On Tuesday 12 of July 2011 09:36:06 Jean Delvare wrote:
> On Mon, 11 Jul 2011 23:50:38 +0200, Pavel Herrmann wrote:
> > spi_sync call uses its spi_message parameter to keep completion
> > information, using a drvdata structure is not thread-safe, potentially
> > causing one thread having pointers to memory on or above other threads
> > stack. use mutex to prevent multiple access
> 
> Honestly, I have no idea what "causing one thread having pointers to
> memory on or above other threads stack" means (nor why this would be
> bad.)

the long-winded story is that thread A writes a pointer onto its stack into 
the drvdata as part of spi_sync call, then thread B comes in and puts a 
pointer onto its stack into the drvdata, at the end of spi_sync thread A uses 
this pointer (assuming it is unchanged), which is pointing either onto valid 
stack of thread B or somewhere above it (if thread B already returned)

> Patch applied nevertheless, as it fixes an actual bug which should be
> fixed ASAP. Thanks for your contribution.

thanks



More information about the linux-arm-kernel mailing list