Hi guys, On Fri, Apr 24, 2015 at 6:08 PM, Jean Delvare <jdelvare@xxxxxxx> wrote: > Hi Ellen, > > On Mon, 20 Apr 2015 15:52:47 -0700, Ellen Wang wrote: >> This leads to a related question: If the driver is serialized, then the >> (status = priv->status) inside wait_event_timeout() isn't strictly >> necessary, correct? It can just be priv->status. I'm just want to >> double check that there's no race and I can add a priv->auxsts and not >> have to stick something like this inside the wait_event_timeout(): >> >> (auxsts = priv->auxsts, status = priv->status) > > To be honest I'm not 100% certain. I think this was only a minor > optimization, but I may be wrong. Adding Daniel to Cc, he added that > code to the i2c-i801 driver. Daniel, any comment on this? > > Equally mysterious to me is: > > priv->status |= status; > > in i801_isr() where it would seem that a simple "=" would suffice. Sorry, it has been a long time since i looked at i801 code, I think you guys are correct. You can probably just do: wait_event(priv->waitq, priv->status); status = priv->status; priv->status = 0; return i801_check_post(priv, status); And, I agree with Jean in i801_isr(), priv->status |= status; Could probably just be: priv->status = status; -Dan > > -- > Jean Delvare > SUSE L3 Support -- 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