Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 2110145a authored by Kiwoong Kim's avatar Kiwoong Kim Committed by Eric Biggers
Browse files

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: default avatarKiwoong Kim <kwmad.kim@samsung.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@google.com>

(cherry picked from android-mainline
 commit 8ec7bddd873f393ea94a3bc9dde9781e5e0fbfe1)
Change-Id: I58ffa07535df8011b8d357135b80030833e725f9
Signed-off-by: default avatarEric Biggers <ebiggers@google.com>
parent cb0a2cdd
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -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,