On Sun, Jan 06, 2013 at 10:48:24AM +0800, Aaron Lu wrote: > @@ -7,6 +9,9 @@ struct zpodd { > bool slot:1; > bool drawer:1; > > + /* The following bits are synchronized by PM core */ > + bool from_notify:1; /* resumed as a result of acpi notification */ > + > struct ata_device *dev; > }; So, you can't put bitfields which belong to different synchronization domains next to each other. They may (and here will) be put into the same word and RMW cycles may race with each other. Please either use unsigned integer flags per sync domain or just put them in separate bools. At any rate, please comment on how RWs are supposed to be synchronized. Thanks. -- tejun -- To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html