summaryrefslogtreecommitdiffstats
path: root/drivers/cdrom
diff options
context:
space:
mode:
authorBen Hutchings <ben@decadent.org.uk>2012-02-12 06:00:41 +0000
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2012-02-24 13:11:56 -0800
commit711c68b3c0f7a924ffbee4aa962d8f62b85188ff (patch)
tree364aa61ad7714ae92264ae06e304fc4fd8171dd0 /drivers/cdrom
parentc192c8e71a2ded01170c1a992cd21aaedc822756 (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