mirror of
https://github.com/torvalds/linux.git
synced 2026-03-07 23:04:33 +01:00
scsi: ufs: core: Fix shift out of bounds when MAXQ=32
According to JESD223F, the maximum number of queues (MAXQ) is 32. When MCQ is enabled and ESI is disabled, nr_hw_queues=32 causes a shift overflow problem. Fix this by using 64-bit intermediate values to handle the nr_hw_queues=32 case safely. Signed-off-by: wangshuaiwei <wangshuaiwei1@xiaomi.com> Reviewed-by: Bart Van Assche <bvanassche@acm.org> Link: https://patch.msgid.link/20260224063228.50112-1-wangshuaiwei1@xiaomi.com Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
62c015373e
commit
2f38fd99c0
1 changed files with 1 additions and 1 deletions
|
|
@ -7110,7 +7110,7 @@ static irqreturn_t ufshcd_handle_mcq_cq_events(struct ufs_hba *hba)
|
|||
|
||||
ret = ufshcd_vops_get_outstanding_cqs(hba, &outstanding_cqs);
|
||||
if (ret)
|
||||
outstanding_cqs = (1U << hba->nr_hw_queues) - 1;
|
||||
outstanding_cqs = (1ULL << hba->nr_hw_queues) - 1;
|
||||
|
||||
/* Exclude the poll queues */
|
||||
nr_queues = hba->nr_hw_queues - hba->nr_queues[HCTX_TYPE_POLL];
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue