Searched hist:"7456 caae" (Results 1 – 1 of 1) sorted by relevance
/openbmc/linux/drivers/mmc/host/ |
H A D | dw_mmc.c | 7456caae Fri Jun 24 07:55:10 CDT 2011 James Hogan <james.hogan@imgtec.com> 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>
|