On Tue, Jun 11, 2013 at 08:40:37PM +0200, Wolfram Sang wrote: > On Fri, Jun 07, 2013 at 03:01:34PM +0200, Christian Ruppert wrote: > > Hi Andy, > > > > I like your patch and I just did some testing on it. Unluckily, it > > doesn't solve the lock-up problem. > > > > I haven't investigated any further but I suspect that on top of the > > cases I observed when debugging this (interrupts after initialisation of > > dev, easy to prove) there are more obscure cases in which interrupts are > > generated in an unexpected manner after errors. The interrupt-driven > > transfer state machine of the driver implicitly relies on the fact that > > all updates of dev which are related to the same transfer are performed > > between the mutex_lock and mutex_unlock calls in i2c_dw_xfer. Thus, I > > decided it was safer to disable the block before releasing the mutex > > when I wrote my patch. > > > > That said, I think the sequencing at transfer initialisation is more > > logical with your patch and I wonder if it is still worth applying. Any > > other opinions on this? > > Ping. There are: > > [V2] i2c: designware: fix race between subsequent xfers > [RFC] i2c-designware-core: disable adapter before fill dev structure > > What is the consensus of those two patches? Although I almost like Andy's code better than my own it doesn't seem to fix the issue we're aiming at (system lock ups due to undesired interrupts) in all cases. The "[V2] i2c: designware: fix race between subsequent xfers" is currently the only patch preventing those lock ups in our tests. That said, IMHO Andy's patch seems to be a valuable code clean up nevertheless and could be applied in addition to the other. I suggest I give the combination of both patches some additional testing on the occasion and tag Andy's RFC with tested-by me in case it's stable. Greetings, Christian -- Christian Ruppert , <christian.ruppert@xxxxxxxxxx> /| Tel: +41/(0)22 816 19-42 //| 3, Chemin du Pré-Fleuri _// | bilis Systems CH-1228 Plan-les-Ouates -- To unsubscribe from this list: send the line "unsubscribe linux-i2c" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html