All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] ufs: fix a bug on printing PRDT
       [not found] <CGME20200218233124epcas2p3888d2788d42af542cde915df4c4baf23@epcas2p3.samsung.com>
@ 2020-02-18 23:31 ` Kiwoong Kim
  2020-02-18 23:38   ` Christoph Hellwig
  0 siblings, 1 reply; 3+ messages in thread
From: Kiwoong Kim @ 2020-02-18 23:31 UTC (permalink / raw)
  To: linux-scsi, jejb, martin.petersen; +Cc: Kiwoong Kim

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.

Signed-off-by: Kiwoong Kim <kwmad.kim@samsung.com>
---
 drivers/scsi/ufs/ufshcd.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
index f4aa10fdbb0c..94c4a0f9fd9b 100644
--- a/drivers/scsi/ufs/ufshcd.c
+++ b/drivers/scsi/ufs/ufshcd.c
@@ -462,8 +462,12 @@ 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);
+		if (hba->quirks & UFSHCD_QUIRK_PRDT_BYTE_GRAN)
+			prdt_length = le16_to_cpu(lrbp->utr_descriptor_ptr->prd_table_length)
+				/ sizeof(struct ufshcd_sg_entry);
+		else
+			prdt_length = le16_to_cpu(lrbp->utr_descriptor_ptr->prd_table_length);
+
 		dev_err(hba->dev,
 			"UPIU[%d] - PRDT - %d entries  phys@0x%llx\n",
 			tag, prdt_length,
-- 
2.14.2


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] ufs: fix a bug on printing PRDT
  2020-02-18 23:31 ` [PATCH] ufs: fix a bug on printing PRDT Kiwoong Kim
@ 2020-02-18 23:38   ` Christoph Hellwig
  2020-02-18 23:55     ` Kiwoong Kim
  0 siblings, 1 reply; 3+ messages in thread
From: Christoph Hellwig @ 2020-02-18 23:38 UTC (permalink / raw)
  To: Kiwoong Kim; +Cc: linux-scsi, jejb, martin.petersen

On Wed, Feb 19, 2020 at 08:31:15AM +0900, Kiwoong Kim wrote:
> 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.

This quirk doesn't have any driver actually setting it, so we need
to remove it.

^ permalink raw reply	[flat|nested] 3+ messages in thread

* RE: [PATCH] ufs: fix a bug on printing PRDT
  2020-02-18 23:38   ` Christoph Hellwig
@ 2020-02-18 23:55     ` Kiwoong Kim
  0 siblings, 0 replies; 3+ messages in thread
From: Kiwoong Kim @ 2020-02-18 23:55 UTC (permalink / raw)
  To: 'Christoph Hellwig'; +Cc: linux-scsi, jejb, martin.petersen

> On Wed, Feb 19, 2020 at 08:31:15AM +0900, Kiwoong Kim wrote:
> > 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.
> 
> This quirk doesn't have any driver actually setting it, so we need to
> remove it.

Exynos specific driver sets and is using it but the driver is not updated
yet. I'll do upstream it in the future.


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2020-02-18 23:55 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <CGME20200218233124epcas2p3888d2788d42af542cde915df4c4baf23@epcas2p3.samsung.com>
2020-02-18 23:31 ` [PATCH] ufs: fix a bug on printing PRDT Kiwoong Kim
2020-02-18 23:38   ` Christoph Hellwig
2020-02-18 23:55     ` Kiwoong Kim

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.