Message ID | 20250506124038.4071609-1-peter.wang@mediatek.com |
---|---|
State | New |
Headers | show |
Series | [v1] ufs: core: fix hwq_id type and value | expand |
On Tue, 2025-05-06 at 09:15 -0700, Bart Van Assche wrote: > > Is this change really necessary? I like the current behavior because > it > makes it easy to figure out whether or not MCQ has been enabled. Even > if > others would agree with this change, I think that the "Fixes:" and > "Cc: > stable" tags are overkill because I don't see this as a bug fix but > rather as a behavior change that is not a bug fix. > > Thanks, > > Bart. Hi Bart, Whether it is necessary or not depends on how we define 'necessary.' If the criterion is simply to avoid errors, then indeed, this patch is not necessary. However, if we are addressing the warning caused by incorrect behavior (assigning int to u32), then it is necessary to fix it. After all, we shouldn't just be satisfied with avoiding errors, we should strive to make the Linux kernel as perfect as possible, shouldn't we? Additionally, there are many ways to determine whether MCQ is enabled, including reading the host capability or checking hba->mcq_enabled, etc. Moreover, MCQ is not a feature that trun on and off at runtime. It is at the end of the UFS initialization that the status of MCQ is determined, so it shouldn't be necessary to rely on this to determine whether MCQ is enabled, right? Thanks Peter
On 5/6/25 9:03 PM, Peter Wang (王信友) wrote: > Whether it is necessary or not depends on how we define 'necessary.' > If the criterion is simply to avoid errors, then indeed, this patch > is not necessary. However, if we are addressing the warning caused > by incorrect behavior (assigning int to u32), then it is necessary > to fix it. After all, we shouldn't just be satisfied with avoiding > errors, we should strive to make the Linux kernel as perfect as > possible, shouldn't we? Errors? Which errors? Using -1 instead of UINT_MAX is common in C code. Assigning variables of signed integer type to unsigned variables is also widespread. Using %d to format a negative number, although dubious, is also common in C code. Several years ago gcc warned about using %d to format unsigned integers. That warning was disabled again because there is too much existing code that follows this practice. > Additionally, there are many ways to determine whether MCQ is enabled, > including reading the host capability or checking hba->mcq_enabled, > etc. > Moreover, MCQ is not a feature that trun on and off at runtime. > It is at the end of the UFS initialization that the status of MCQ > is determined, so it shouldn't be necessary to rely on this to > determine whether MCQ is enabled, right? If you want to proceed with this patch, please make it clear in the patch description that this patch is a behavior change and not a bug fix. Thanks, Bart.
On Wed, 2025-05-07 at 12:26 -0700, Bart Van Assche wrote: > > If you want to proceed with this patch, please make it clear in the > patch description that this patch is a behavior change and not a bug > fix. > > Thanks, > > Bart. Hi Bart, Okay, the commit message for the bug fix will be corrected in the next version. Thanks Peter
diff --git a/drivers/ufs/core/ufshcd.c b/drivers/ufs/core/ufshcd.c index 7735421e3991..14e4cfbcb9eb 100644 --- a/drivers/ufs/core/ufshcd.c +++ b/drivers/ufs/core/ufshcd.c @@ -432,7 +432,7 @@ static void ufshcd_add_command_trace(struct ufs_hba *hba, unsigned int tag, u8 opcode = 0, group_id = 0; u32 doorbell = 0; u32 intr; - int hwq_id = -1; + u32 hwq_id = 0; struct ufshcd_lrb *lrbp = &hba->lrb[tag]; struct scsi_cmnd *cmd = lrbp->cmd; struct request *rq = scsi_cmd_to_rq(cmd);