On Thu, Sep 20, 2012 at 08:20:46PM -0700, Guenter Roeck wrote: > From: Thomas Kavanagh <tkavanagh@xxxxxxxxxxx> > > The parameter passed to pca9665_reset is adap->data (which is bus driver > specific), not i2c_algp_pca_data *adap. pca9665_reset expects it to be > i2c_algp_pca_data *adap. All other wrappers from the algo call back to > the bus driver, which knows to handle its custom data. Only pca9665_reset > resides inside the algorithm code and does not know how to handle a custom > data structure. This can result in a kernel crash. > > Fix by re-factoring pca_reset() from a macro to a function handling chip > specific code, and only call adap->reset_chip() if the chip is not PCA9665. > > Cc: Wolfram Sang <w.sang@xxxxxxxxxxxxxx> > Signed-off-by: Thomas Kavanagh <tkavanagh@xxxxxxxxxxx> > Signed-off-by: Guenter Roeck <groeck@xxxxxxxxxxx> Applied to next, thanks! -- Pengutronix e.K. | Wolfram Sang | Industrial Linux Solutions | http://www.pengutronix.de/ |
Attachment:
signature.asc
Description: Digital signature