]> git.hungrycats.org Git - linux/commit
[PATCH] I2C: fix recently introduced race in IBM PPC4xx I2C driver
authorEugene Surovegin <ebs@ebshome.net>
Fri, 22 Oct 2004 05:52:13 +0000 (22:52 -0700)
committerGreg Kroah-Hartman <greg@kroah.com>
Fri, 22 Oct 2004 05:52:13 +0000 (22:52 -0700)
commit517caa1e843723fe09c3b8fb7a376306b6229047
tree68ca9842889b50eefd60f334d85304539ab580bf
parentf779a838f0cd2ecbc8cabee97ee63512a1caa491
[PATCH] I2C: fix recently introduced race in IBM PPC4xx I2C driver

On Tue, Oct 19, 2004 at 10:21:08PM -0700, Eugene Surovegin wrote:
[snip]
> It looks like this change added race I tried to avoid here.
>
> This code is modeled after __wait_event_interruptible_timeout, where
> "prepare_to_wait" is done _before_ checking completion status. This
> change breaks this, e.g. if IRQ happens right after we check iic->sts,
> but before calling msleep_interruptible(). In this case we'll sleep
> much more than required (seconds instead of microseconds)
>
> Greg, if my analysis is correct, please rollback this change.
>
> Nishanth, I'd be nice if you CC'ed me with this patch, my e-mail is at
> the top of that source file.

Oh, well. I should have used wait_event_interruptible_timeout when I
ported this driver to 2.6.

This patch fixes recently introduced race and also cleans ups some
2.4-ism.

Signed-off-by: Eugene Surovegin <ebs@ebshome.net>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
drivers/i2c/busses/i2c-ibm_iic.c