diff options
author | Ben Hutchings <ben@decadent.org.uk> | 2012-02-12 06:00:41 +0000 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2012-02-24 13:11:56 -0800 |
commit | 711c68b3c0f7a924ffbee4aa962d8f62b85188ff (patch) | |
tree | 364aa61ad7714ae92264ae06e304fc4fd8171dd0 /drivers/cdrom | |
parent | c192c8e71a2ded01170c1a992cd21aaedc822756 (diff) |
cdc-wdm: Fix more races on the read path
We must not allow the input buffer length to change while we're
shuffling the buffer contents. We also mustn't clear the WDM_READ
flag after more data might have arrived. Therefore move both of these
into the spinlocked region at the bottom of wdm_read().
When reading desc->length without holding the iuspin lock, use
ACCESS_ONCE() to ensure the compiler doesn't re-read it with
inconsistent results.
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Tested-by: Bjørn Mork <bjorn@mork.no>
Cc: Oliver Neukum <oliver@neukum.org>
Cc: stable <stable@vger.kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/cdrom')
0 files changed, 0 insertions, 0 deletions