FROMLIST: ufs: fix a bug on printing PRDT
In some architectures, an unit of PRDTO and PRDTL
in UFSHCI spec assume bytes, not double word specified
in the spec. W/o this patch, when the driver executes
this, kernel panic occurres because of abnormal accesses.
Bug: 149797634
Link: https://lore.kernel.org/linux-scsi/20200218224307.8017-1-kwmad.kim@samsung.com/
Signed-off-by: Kiwoong Kim <kwmad.kim@samsung.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
(cherry picked from android-mainline
commit 8ec7bddd87)
Change-Id: I58ffa07535df8011b8d357135b80030833e725f9
Signed-off-by: Eric Biggers <ebiggers@google.com>
This commit is contained in:
parent
cb0a2cdd48
commit
2110145a33
1 changed files with 5 additions and 2 deletions
|
|
@ -474,8 +474,11 @@ void ufshcd_print_trs(struct ufs_hba *hba, unsigned long bitmap, bool pr_prdt)
|
|||
ufshcd_hex_dump("UPIU RSP: ", lrbp->ucd_rsp_ptr,
|
||||
sizeof(struct utp_upiu_rsp));
|
||||
|
||||
prdt_length = le16_to_cpu(
|
||||
lrbp->utr_descriptor_ptr->prd_table_length);
|
||||
prdt_length =
|
||||
le16_to_cpu(lrbp->utr_descriptor_ptr->prd_table_length);
|
||||
if (hba->quirks & UFSHCD_QUIRK_PRDT_BYTE_GRAN)
|
||||
prdt_length /= sizeof(struct ufshcd_sg_entry);
|
||||
|
||||
dev_err(hba->dev,
|
||||
"UPIU[%d] - PRDT - %d entries phys@0x%llx\n",
|
||||
tag, prdt_length,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue