]> git.kernelconcepts.de Git - karo-tx-linux.git/commit
staging:iio:adis16260: Fix drvdata inconsistency
authorLars-Peter Clausen <lars@metafoo.de>
Fri, 13 Jul 2012 12:04:00 +0000 (13:04 +0100)
committerJonathan Cameron <jic23@kernel.org>
Sat, 14 Jul 2012 08:42:56 +0000 (09:42 +0100)
commit97271c3bcb83babe81cab0b79b374c7d732eff41
tree468bcd6e12252c637bcc8906dd37415865c1579f
parent2b6e6b8042a9f783170b0a15e0550a075381726e
staging:iio:adis16260: Fix drvdata inconsistency

The SPI drvdata is set to adis16260_state struct in probe(), but assumed to be
the iio_dev struct in remove(). Fix this by setting it to the iio_dev in
probe().

The issue has been discovered using the following coccinelle patch:

// <smpl>
@r1@
type T;
T data;
expression dev;
@@
(
spi_set_drvdata(dev, (void *)data)
|
spi_set_drvdata(dev, data)
)

@r2@
type r1.T;
T data;
position p;
expression dev;
@@
data = spi_get_drvdata@p(dev)

@depends on r1@
position p != r2.p;
expression dev;
identifier data;
@@
*data = spi_get_drvdata@p(dev)
// </smpl>

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
Signed-off-by: Jonathan Cameron <jic23@kernel.org>
drivers/staging/iio/gyro/adis16260_core.c