ANDROID: usb: f_accessory: Avoid bitfields for shared variables

Using bitfields for shared variables is a "bad idea", as they require
a non-atomic read-modify-write to be generated by the compiler, which can
cause updates to unrelated bits in the same word to disappear.

Ensure the 'online' and 'disconnected' members of 'struct acc_dev' are
placed in separate variables by declaring them each as 'int'.

Bug: 173789633
Signed-off-by: Will Deacon <willdeacon@google.com>
Change-Id: Ia6031d82a764e83b2cc3502fbe5fb273511da752
Signed-off-by: Giuliano Procida <gprocida@google.com>
This commit is contained in:
Will Deacon
2020-12-15 17:15:38 +00:00
committed by Giuliano Procida
parent ff729a0610
commit 429fec28c8

View File

@@ -82,13 +82,13 @@ struct acc_dev {
/* online indicates state of function_set_alt & function_unbind
* set to 1 when we connect
*/
int online:1;
int online;
/* disconnected indicates state of open & release
* Set to 1 when we disconnect.
* Not cleared until our file is closed.
*/
int disconnected:1;
int disconnected;
/* strings sent by the host */
char manufacturer[ACC_STRING_SIZE];