On 6/3/21 6:11 PM, Daejun Park wrote:
quoted
quoted
+/*
+ * This function will set up HPB read command using host-side L2P map data.
+ * In HPB v1.0, maximum size of HPB read command is 4KB.
+ */
+void ufshpb_prep(struct ufs_hba *hba, struct ufshcd_lrb *lrbp)
+{
[ ... ]
quoted
+
+ ufshpb_set_hpb_read_to_upiu(hpb, lrbp, lpn, ppn, transfer_len);
'transfer_len' has type int and is truncated to type 'u8' when passed as
an argument to ufshpb_set_hpb_read_to_upiu(). Please handle transfer_len
values >= 256 properly.
Before entering the function, ufshpb_is_supported_chunk() checks whether
transfer_len <= hpb->pre_req_max_tr_len which is set to
HPB_MULTI_CHUNK_HIGH (128) on initalization.
How about adding a WARN_ON_ONCE() in ufshpb_prep() that verifies that
transfer_len is <= HPB_MULTI_CHUNK_HIGH?
Thanks,
Bart.