From: Troy Kisky Subject: i2c-davinci: Initialize cmd_complete sooner If an interrupt happens before an I2c master read/write, complete is called on uninitialized structure. Signed-off-by: Troy Kisky Signed-off-by: Kevin Hilman Signed-off-by: Jean Delvare --- drivers/i2c/busses/i2c-davinci.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) --- linux-2.6.26-rc0.orig/drivers/i2c/busses/i2c-davinci.c 2008-05-02 15:50:37.000000000 +0200 +++ linux-2.6.26-rc0/drivers/i2c/busses/i2c-davinci.c 2008-05-02 16:06:04.000000000 +0200 @@ -262,7 +262,7 @@ i2c_davinci_xfer_msg(struct i2c_adapter davinci_i2c_write_reg(dev, DAVINCI_I2C_CNT_REG, dev->buf_len); - init_completion(&dev->cmd_complete); + INIT_COMPLETION(dev->cmd_complete); dev->cmd_err = 0; /* Take I2C out of reset, configure it as master and set the @@ -519,6 +519,7 @@ static int davinci_i2c_probe(struct plat goto err_release_region; } + init_completion(&dev->cmd_complete); dev->dev = get_device(&pdev->dev); dev->irq = irq->start; platform_set_drvdata(pdev, dev);