Message ID | 20230601225048.12228-1-stanley.chu@mediatek.com |
---|---|
State | New |
Headers | show |
Series | [v2] ufs: core: Combine ufshcd_mq_poll_cqe functions | expand |
On 02.06.23 12:50 AM, Stanley Chu wrote: > Currently, ufshcd_mcq_poll_cqe_nolock() is only called by > ufshcd_mcq_poll_cqe_lock() with the addition of a spinlock wrapper > for ufshcd_mcq_poll_cqe_nolock(). Combining these two functions > into one would result in cleaner code. > > Reviewed-by: Bao D. Nguyen<quic_nguyenb@quicinc.com> > Signed-off-by: Stanley Chu<stanley.chu@mediatek.com> Acked-by: Bean Huo <beanhuo@micron.com>
Stanley, > Currently, ufshcd_mcq_poll_cqe_nolock() is only called by > ufshcd_mcq_poll_cqe_lock() with the addition of a spinlock wrapper > for ufshcd_mcq_poll_cqe_nolock(). Combining these two functions > into one would result in cleaner code. Applied to 6.5/scsi-staging, thanks!
diff --git a/drivers/ufs/core/ufs-mcq.c b/drivers/ufs/core/ufs-mcq.c index 920eb954f594..785fc9762cad 100644 --- a/drivers/ufs/core/ufs-mcq.c +++ b/drivers/ufs/core/ufs-mcq.c @@ -307,11 +307,13 @@ void ufshcd_mcq_compl_all_cqes_lock(struct ufs_hba *hba, spin_unlock_irqrestore(&hwq->cq_lock, flags); } -static unsigned long ufshcd_mcq_poll_cqe_nolock(struct ufs_hba *hba, - struct ufs_hw_queue *hwq) +unsigned long ufshcd_mcq_poll_cqe_lock(struct ufs_hba *hba, + struct ufs_hw_queue *hwq) { unsigned long completed_reqs = 0; + unsigned long flags; + spin_lock_irqsave(&hwq->cq_lock, flags); ufshcd_mcq_update_cq_tail_slot(hwq); while (!ufshcd_mcq_is_cq_empty(hwq)) { ufshcd_mcq_process_cqe(hba, hwq); @@ -321,17 +323,6 @@ static unsigned long ufshcd_mcq_poll_cqe_nolock(struct ufs_hba *hba, if (completed_reqs) ufshcd_mcq_update_cq_head(hwq); - - return completed_reqs; -} - -unsigned long ufshcd_mcq_poll_cqe_lock(struct ufs_hba *hba, - struct ufs_hw_queue *hwq) -{ - unsigned long completed_reqs, flags; - - spin_lock_irqsave(&hwq->cq_lock, flags); - completed_reqs = ufshcd_mcq_poll_cqe_nolock(hba, hwq); spin_unlock_irqrestore(&hwq->cq_lock, flags); return completed_reqs;