summaryrefslogtreecommitdiff
path: root/drivers/scsi
diff options
context:
space:
mode:
authorPeter Hurley <peter@hurleysoftware.com>2015-01-16 23:05:37 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2015-02-02 21:11:26 +0300
commit70aca71f92ca2c111978bf676287fab5580d2598 (patch)
treef9fc767837a07d5381f3c61e791dd02caeb754d4 /drivers/scsi
parent5e28cca1539f3532cb2392710655cd3e562cee8b (diff)
downloadlinux-70aca71f92ca2c111978bf676287fab5580d2598.tar.xz
n_tty: Fix unordered accesses to lockless read buffer
Add commit_head buffer index, which the producer-side publishes after input processing in non-canon mode. This ensures the consumer-side observes correctly-ordered writes in non-canonical mode (ie., the buffer data is written before the buffer index is advanced). Fix consumer-side uses of read_cnt() to use commit_head instead. Add required memory barriers to the tail index to guarantee the consumer-side has completed the loads before the producer-side begins writing new data. Open-code the producer-side receive_room() into the i/o loop. Remove no-longer-referenced receive_room(). Based on work by Christian Riesch <christian.riesch@omicron.at> Cc: Christian Riesch <christian.riesch@omicron.at> Signed-off-by: Peter Hurley <peter@hurleysoftware.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/scsi')
0 files changed, 0 insertions, 0 deletions