On Mon, Jan 13, 2014 at 02:29:04PM -0700, Stephen Warren wrote: > From: Stephen Warren <swarren@xxxxxxxxxx> > > The body of i2c_parent_is_i2c_adapter() is currently guarded by > CONFIG_I2C_MUX instead. This paragraph sounds strange to me. I'll update it a little. After that I'll go looking for a brown paper bag... > Among potentially other problems, this resulted in i2c_lock_adapter() > only locking I2C mux child adapters, and not the parent adapter. In > turn, this could allow inter-mingling of mux child selection and I2C > transactions, which could result in I2C transactions being directed to > the wrong I2C bus, and possibly even switching between busses in the > middle of a transaction. > > One concrete issue caused by this bug was corrupted HDMI EDID reads > during boot on the NVIDIA Tegra Seaboard system, although this only > became apparent in recent linux-next, when the boot timing was changed > just enough to trigger the race condition. > > Fixes: 3923172b3d70 ("i2c: reduce parent checking to a NOOP in non-I2C_MUX case") > Cc: Phil Carmody <phil.carmody@xxxxxxxxxxxxxxxxxxx> > Cc: <stable@xxxxxxxxxxxxxxx> > Signed-off-by: Stephen Warren <swarren@xxxxxxxxxx> Applied to for-current, thanks for catching this one!
Attachment:
signature.asc
Description: Digital signature