Re: [PATCH 1/1] scsi: ufs: remove ucd_rsp_dma_addr and ucd_prdt_dma_addr from ufshcd_lrb

From: Bart Van Assche

Date: Mon Apr 27 2026 - 12:10:08 EST


On 4/26/26 8:58 PM, ed.tsai@xxxxxxxxxxxx wrote:
diff --git a/drivers/ufs/core/ufshcd.c b/drivers/ufs/core/ufshcd.c
index 4805e40ed4d7..02fa61322e77 100644
--- a/drivers/ufs/core/ufshcd.c
+++ b/drivers/ufs/core/ufshcd.c
@@ -621,7 +621,8 @@ static void ufshcd_print_tr(struct ufs_hba *hba, struct scsi_cmnd *cmd,
ufshcd_hex_dump("UPIU REQ: ", lrbp->ucd_req_ptr,
sizeof(struct utp_upiu_req));
dev_err(hba->dev, "UPIU[%d] - Response UPIU phys@0x%llx\n", tag,
- (u64)lrbp->ucd_rsp_dma_addr);
+ (u64)(lrbp->ucd_req_dma_addr +
+ offsetof(struct utp_transfer_cmd_desc, response_upiu)));
ufshcd_hex_dump("UPIU RSP: ", lrbp->ucd_rsp_ptr,
sizeof(struct utp_upiu_rsp));
@@ -633,7 +634,8 @@ static void ufshcd_print_tr(struct ufs_hba *hba, struct scsi_cmnd *cmd,
dev_err(hba->dev,
"UPIU[%d] - PRDT - %d entries phys@0x%llx\n",
tag, prdt_length,
- (u64)lrbp->ucd_prdt_dma_addr);
+ (u64)(lrbp->ucd_req_dma_addr +
+ offsetof(struct utp_transfer_cmd_desc, prd_table)));

I don't think that it is useful to log DMA addresses and I prefer that this information would not be logged at all. Logging this information
might even involve a security risk. Here is some information about this
topic that comes from an LLM:
------------------------------------------------------------------------
Why is logging pointer addresses from kernel code considered a security risk?

Exposing kernel pointer addresses—a practice often referred to as pointer leaking—is considered a major security risk because it bypasses a fundamental defense mechanism called KASLR (Kernel Address Space Layout Randomization).
[ ... ]
2. Facilitating Exploit Chains

A pointer leak is rarely an exploit on its own, but it is almost always the first step in a sophisticated attack.

* Return-Oriented Programming (ROP): To hijack execution flow, an attacker needs "gadgets" (small snippets of existing code). Without knowing the exact addresses of these gadgets, their exploit will simply crash the system (a Denial of Service).

* Targeted Corruption: If an attacker wants to overwrite a specific security structure (like a process's UID to gain root access), they need the pointer to that specific object in kernel memory.
[ ... ]
------------------------------------------------------------------------

Thanks,

Bart.