Hi, On Fri, 17 Jul 2026 11:30:07 +0200, Jorge Ramirez-Ortiz wrote: > ufshcd_get_req_rsp() invalidates only sizeof(struct utp_upiu_rsp) of the > DMA'd response, but a READ DESCRIPTOR response's data segment follows the > UPIU header at GENERAL_UPIU_REQUEST_SIZE and can extend past that window. > The tail of a longer descriptor was therefore read from stale cache (the > pre-transfer memset had zeroed it), so its last bytes came back as 0. > > This corrupted the last UTF-16 code unit of longer string descriptors: > e.g. a 34-byte product-name descriptor "THGJFGT0T25BAZZA" was read as > "THGJFGT0T25BAZZ\0", dropping the final 'A'. Shorter descriptors that fit > within the invalidated cache line (serial numbers, etc.) were unaffected. > > [...]
Thanks, Applied to https://git.u-boot-project.org/u-boot/custodians/neil.armstrong/u-boot-ufs (u-boot-ufs-fixes) [1/1] ufs: invalidate the whole descriptor data segment after a query read https://git.u-boot-project.org/u-boot/custodians/neil.armstrong/u-boot-ufs/-/commit/38bfdf0a770219e2f753023998bc9d0b45254785 -- Neil
