On Wed, Dec 19, 2018 at 10:39:05AM +0100, Geert Uytterhoeven wrote: > Hi Wolfram, > > On Wed, Dec 19, 2018 at 12:34 AM Wolfram Sang <wsa@xxxxxxxxxxxxx> wrote: > > > > + unsigned int is_suspended:1; /* owned by the I2C core */ > > > > > > When more stuff is added to this bit field (which always happens at > > > some point) updates to all members of the bit field will have to use > > > the same root-adapter-locking, or we will suffer from RMW-races. So > > > this feels like an invitation for future disaster. Maybe a comment > > > about that to remind our future selves? Or perhaps the bit field > > > should be avoided altogether? > > > > Changed to bool. Thanks! > > Does that help, given bool is smaller than the CPUs word size? > Is it Alpha that cannot do atomic operations on bytes? Yup, I overestimated bools :( I guess good old unsigned long locked_flags; #define <PREFIX>_IS_SUSPENDED 0 set_bit(), clear_bit(), and test_bit() is it then.
Attachment:
signature.asc
Description: PGP signature