diff options
author | Yaniv Gardi <ygardi@codeaurora.org> | 2015-10-28 15:14:04 +0200 |
---|---|---|
committer | Rajendra Nayak <rnayak@codeaurora.org> | 2016-02-17 14:41:45 +0530 |
commit | 49a9f1cd65965697527d7ddc82b30cb7bb9c53c4 (patch) | |
tree | 1ea822baa4a7af6278dfb6cf6925676f166ab285 | |
parent | ed12e89afbfa93417aea04d707570e2cf3bcff67 (diff) |
scsi: ufs: commit descriptors before setting the doorbell
Add a write memory barrier to make sure descriptors prepared are actually
written to memory before ringing the doorbell. We have also added the
write memory barrier after ringing the doorbell register so that
controller sees the new request immediately.
Reviewed-by: Dolev Raviv <draviv@codeaurora.org>
Signed-off-by: Gilad Broner <gbroner@codeaurora.org>
Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org>
Signed-off-by: Yaniv Gardi <ygardi@codeaurora.org>
-rw-r--r-- | drivers/scsi/ufs/ufshcd.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c index 8b4ab864fff76..f9b36596b1cc3 100644 --- a/drivers/scsi/ufs/ufshcd.c +++ b/drivers/scsi/ufs/ufshcd.c @@ -1628,6 +1628,8 @@ static int ufshcd_exec_dev_cmd(struct ufs_hba *hba, hba->dev_cmd.complete = &wait; + /* Make sure descriptors are ready before ringing the doorbell */ + wmb(); spin_lock_irqsave(hba->host->host_lock, flags); ufshcd_send_command(hba, tag); spin_unlock_irqrestore(hba->host->host_lock, flags); |