]> git.hungrycats.org Git - linux/commit
usb: gadget: f_mass_storage: add missing memory barrier for thread_wakeup_needed
authorUCHINO Satoshi <satoshi.uchino@toshiba.co.jp>
Thu, 23 May 2013 02:10:11 +0000 (11:10 +0900)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 22 Jul 2013 01:19:01 +0000 (18:19 -0700)
commitee093f6edc6ade788cb55a325dc42728c8b7f4d0
tree42b80f90afc2b3e6aab3d4c4a31ea85f46057eec
parent4cd7c81bf4cf4297d478fd144e1e2c17f9eb5d20
usb: gadget: f_mass_storage: add missing memory barrier for thread_wakeup_needed

commit d68c277b501889b3a50c179d1c3d704db7947b83 upstream.

Without this memory barrier, the file-storage thread may fail to
escape from the following while loop, because it may observe new
common->thread_wakeup_needed and old bh->state which are updated by
the callback functions.

/* Wait for the CBW to arrive */
while (bh->state != BUF_STATE_FULL) {
rc = sleep_thread(common);
if (rc)
return rc;
}

Signed-off-by: UCHINO Satoshi <satoshi.uchino@toshiba.co.jp>
Acked-by: Michal Nazarewicz <mina86@mina86.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/gadget/f_mass_storage.c