summaryrefslogtreecommitdiffstats
path: root/drivers/spi/spi_topcliff_pch.c
diff options
context:
space:
mode:
authorJames Hogan <james.hogan@imgtec.com>2011-06-24 14:55:10 +0200
committerChris Ball <cjb@laptop.org>2011-07-20 23:20:58 +0200
commit7456caae37396fc1bc6f8e9461d07664b8c2f280 (patch)
tree972f231756e8e766aa367689085a2834c7f6fcb4 /drivers/spi/spi_topcliff_pch.c
parentmmc: dw_mmc: clear TXDR/RXDR ints before enabling (diff)
downloadlinux-7456caae37396fc1bc6f8e9461d07664b8c2f280.tar.xz
linux-7456caae37396fc1bc6f8e9461d07664b8c2f280.zip
mmc: dw_mmc: fix race with request and removal
When a request is made, the card presence is checked and the request is queued. These two parts must be atomic with respect to card removal, or a card removal could be handled in between, and the new request wouldn't get cancelled until another card was inserted. Therefore move the spinlock protection from dw_mci_queue_request() up into dw_mci_request() to cover the presence check. Note that the test_bit() used for the presence check isn't atomic itself, so should have been protected by a spinlock anyway. Signed-off-by: James Hogan <james.hogan@imgtec.com> Acked-by: Will Newton <will.newton@imgtec.com> Signed-off-by: Chris Ball <cjb@laptop.org>
Diffstat (limited to 'drivers/spi/spi_topcliff_pch.c')
0 files changed, 0 insertions, 0 deletions