* [PATCH RFT v2] driver/scsi/mpi3mr: Fix build warning for mpi3mr_start_watchdog @ 2025-10-28 14:55 Bartlomiej Kubik 2025-11-12 20:29 ` Bartłomiej Kubik 2025-11-12 20:55 ` Bart Van Assche 0 siblings, 2 replies; 6+ messages in thread From: Bartlomiej Kubik @ 2025-10-28 14:55 UTC (permalink / raw) To: sathya.prakash, kashyap.desai, sumit.saxena, sreekanth.reddy Cc: martin.petersen, mpi3mr-linuxdrv.pdl, linux-scsi, skhan, khalid, david.hunter.linux, linux-kernel-mentees, linux-kernel, Bartlomiej Kubik GCC warning: drivers/scsi/mpi3mr/mpi3mr_fw.c:2872:60: warning: ‘%s’ directive output may be truncated writing up to 63 bytes into a region of size 41 [-Wformat-truncation=] Change MPI3MR_WATCHDOG_NAME_LENGTH define to properly clarify the required buffer size. The mrioc->watchdog_work_q_name buffer in the mpi3mr_start_watchdog() function no longer requires adding mrioc->id, since mrioc->name already includes it. mrioc->name is built using: sprintf(mrioc->name, "%s%d", mrioc->driver_name, mrioc->id) Signed-off-by: Bartlomiej Kubik <kubik.bartlomiej@gmail.com> --- I do not have the hardware to full tests it. Tests only built kernel without warning and run kernel. Changelog: Changes since v1: - Add define MPI3MR_WATCHDOG_NAME_LENGTH (MPI3MR_NAME_LENGTH + 15) - Change watchdog_work_q_name buffer from size 50 to MPI3MR_WATCHDOG_NAME_LENGTH Link to v1 https://lore.kernel.org/all/20251002063038.552399-1-kubik.bartlomiej@gmail.com/ drivers/scsi/mpi3mr/mpi3mr.h | 3 ++- drivers/scsi/mpi3mr/mpi3mr_fw.c | 3 +-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/drivers/scsi/mpi3mr/mpi3mr.h b/drivers/scsi/mpi3mr/mpi3mr.h index 6742684e2990..be15d5ec8b58 100644 --- a/drivers/scsi/mpi3mr/mpi3mr.h +++ b/drivers/scsi/mpi3mr/mpi3mr.h @@ -66,6 +66,7 @@ extern atomic64_t event_counter; #define MPI3MR_NAME_LENGTH 64 #define IOCNAME "%s: " +#define MPI3MR_WATCHDOG_NAME_LENGTH (sizeof("watchdog_") + MPI3MR_NAME_LENGTH + 1) #define MPI3MR_DEFAULT_MAX_IO_SIZE (1 * 1024 * 1024) @@ -1265,7 +1266,7 @@ struct mpi3mr_ioc { spinlock_t fwevt_lock; struct list_head fwevt_list; - char watchdog_work_q_name[50]; + char watchdog_work_q_name[MPI3MR_WATCHDOG_NAME_LENGTH]; struct workqueue_struct *watchdog_work_q; struct delayed_work watchdog_work; spinlock_t watchdog_lock; diff --git a/drivers/scsi/mpi3mr/mpi3mr_fw.c b/drivers/scsi/mpi3mr/mpi3mr_fw.c index 8fe6e0bf342e..18b176e358c5 100644 --- a/drivers/scsi/mpi3mr/mpi3mr_fw.c +++ b/drivers/scsi/mpi3mr/mpi3mr_fw.c @@ -2879,8 +2879,7 @@ void mpi3mr_start_watchdog(struct mpi3mr_ioc *mrioc) INIT_DELAYED_WORK(&mrioc->watchdog_work, mpi3mr_watchdog_work); snprintf(mrioc->watchdog_work_q_name, - sizeof(mrioc->watchdog_work_q_name), "watchdog_%s%d", mrioc->name, - mrioc->id); + sizeof(mrioc->watchdog_work_q_name), "watchdog_%s", mrioc->name); mrioc->watchdog_work_q = alloc_ordered_workqueue( "%s", WQ_MEM_RECLAIM, mrioc->watchdog_work_q_name); if (!mrioc->watchdog_work_q) { -- 2.39.5 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH RFT v2] driver/scsi/mpi3mr: Fix build warning for mpi3mr_start_watchdog 2025-10-28 14:55 [PATCH RFT v2] driver/scsi/mpi3mr: Fix build warning for mpi3mr_start_watchdog Bartlomiej Kubik @ 2025-11-12 20:29 ` Bartłomiej Kubik 2025-11-12 20:55 ` Bart Van Assche 1 sibling, 0 replies; 6+ messages in thread From: Bartłomiej Kubik @ 2025-11-12 20:29 UTC (permalink / raw) To: sathya.prakash, kashyap.desai, sumit.saxena, sreekanth.reddy Cc: martin.petersen, mpi3mr-linuxdrv.pdl, linux-scsi, skhan, khalid, david.hunter.linux, linux-kernel-mentees, linux-kernel On Tue, 28 Oct 2025 at 15:55, Bartlomiej Kubik <kubik.bartlomiej@gmail.com> wrote: > > GCC warning: > drivers/scsi/mpi3mr/mpi3mr_fw.c:2872:60: warning: ‘%s’ directive > output may be truncated writing up to 63 bytes into a region of size > 41 [-Wformat-truncation=] > > Change MPI3MR_WATCHDOG_NAME_LENGTH define to properly clarify > the required buffer size. > > The mrioc->watchdog_work_q_name buffer in > the mpi3mr_start_watchdog() function no longer requires adding mrioc->id, > since mrioc->name already includes it. > > mrioc->name is built using: > sprintf(mrioc->name, "%s%d", mrioc->driver_name, mrioc->id) > > Signed-off-by: Bartlomiej Kubik <kubik.bartlomiej@gmail.com> > --- > > I do not have the hardware to full tests it. > Tests only built kernel without warning and run kernel. > > Changelog: > Changes since v1: > - Add define MPI3MR_WATCHDOG_NAME_LENGTH (MPI3MR_NAME_LENGTH + 15) > - Change watchdog_work_q_name buffer from size 50 to MPI3MR_WATCHDOG_NAME_LENGTH > > Link to v1 > https://lore.kernel.org/all/20251002063038.552399-1-kubik.bartlomiej@gmail.com/ > > drivers/scsi/mpi3mr/mpi3mr.h | 3 ++- > drivers/scsi/mpi3mr/mpi3mr_fw.c | 3 +-- > 2 files changed, 3 insertions(+), 3 deletions(-) > > diff --git a/drivers/scsi/mpi3mr/mpi3mr.h b/drivers/scsi/mpi3mr/mpi3mr.h > index 6742684e2990..be15d5ec8b58 100644 > --- a/drivers/scsi/mpi3mr/mpi3mr.h > +++ b/drivers/scsi/mpi3mr/mpi3mr.h > @@ -66,6 +66,7 @@ extern atomic64_t event_counter; > > #define MPI3MR_NAME_LENGTH 64 > #define IOCNAME "%s: " > +#define MPI3MR_WATCHDOG_NAME_LENGTH (sizeof("watchdog_") + MPI3MR_NAME_LENGTH + 1) > > #define MPI3MR_DEFAULT_MAX_IO_SIZE (1 * 1024 * 1024) > > @@ -1265,7 +1266,7 @@ struct mpi3mr_ioc { > spinlock_t fwevt_lock; > struct list_head fwevt_list; > > - char watchdog_work_q_name[50]; > + char watchdog_work_q_name[MPI3MR_WATCHDOG_NAME_LENGTH]; > struct workqueue_struct *watchdog_work_q; > struct delayed_work watchdog_work; > spinlock_t watchdog_lock; > diff --git a/drivers/scsi/mpi3mr/mpi3mr_fw.c b/drivers/scsi/mpi3mr/mpi3mr_fw.c > index 8fe6e0bf342e..18b176e358c5 100644 > --- a/drivers/scsi/mpi3mr/mpi3mr_fw.c > +++ b/drivers/scsi/mpi3mr/mpi3mr_fw.c > @@ -2879,8 +2879,7 @@ void mpi3mr_start_watchdog(struct mpi3mr_ioc *mrioc) > > INIT_DELAYED_WORK(&mrioc->watchdog_work, mpi3mr_watchdog_work); > snprintf(mrioc->watchdog_work_q_name, > - sizeof(mrioc->watchdog_work_q_name), "watchdog_%s%d", mrioc->name, > - mrioc->id); > + sizeof(mrioc->watchdog_work_q_name), "watchdog_%s", mrioc->name); > mrioc->watchdog_work_q = alloc_ordered_workqueue( > "%s", WQ_MEM_RECLAIM, mrioc->watchdog_work_q_name); > if (!mrioc->watchdog_work_q) { > -- > 2.39.5 > Hi, I submitted this patch about two weeks ago but haven't received any feedback yet. I wanted to check if there are any concerns with the patch or if any changes are needed. Please let me know if you need any additional information. Best regards Bartłomiej Kubik ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH RFT v2] driver/scsi/mpi3mr: Fix build warning for mpi3mr_start_watchdog 2025-10-28 14:55 [PATCH RFT v2] driver/scsi/mpi3mr: Fix build warning for mpi3mr_start_watchdog Bartlomiej Kubik 2025-11-12 20:29 ` Bartłomiej Kubik @ 2025-11-12 20:55 ` Bart Van Assche 2025-11-15 13:47 ` Bartłomiej Kubik 1 sibling, 1 reply; 6+ messages in thread From: Bart Van Assche @ 2025-11-12 20:55 UTC (permalink / raw) To: Bartlomiej Kubik, sathya.prakash, kashyap.desai, sumit.saxena, sreekanth.reddy Cc: martin.petersen, mpi3mr-linuxdrv.pdl, linux-scsi, skhan, khalid, david.hunter.linux, linux-kernel-mentees, linux-kernel On 10/28/25 7:55 AM, Bartlomiej Kubik wrote: > - char watchdog_work_q_name[50]; > + char watchdog_work_q_name[MPI3MR_WATCHDOG_NAME_LENGTH]; From include/linux/workqueue.h: WQ_NAME_LEN = 32, char name[WQ_NAME_LEN]; /* I: workqueue name */ In other words, increasing the workqueue name length beyond 32 characters is not useful because it will get truncated to 32 characters anyway. The workqueue implementation complains about longer names as one can see in kernel/workqueue.c: if (name_len >= WQ_NAME_LEN) pr_warn_once("workqueue: name exceeds WQ_NAME_LEN. Truncating to: %s\n", wq->name); > diff --git a/drivers/scsi/mpi3mr/mpi3mr_fw.c b/drivers/scsi/mpi3mr/mpi3mr_fw.c > index 8fe6e0bf342e..18b176e358c5 100644 > --- a/drivers/scsi/mpi3mr/mpi3mr_fw.c > +++ b/drivers/scsi/mpi3mr/mpi3mr_fw.c > @@ -2879,8 +2879,7 @@ void mpi3mr_start_watchdog(struct mpi3mr_ioc *mrioc) > > INIT_DELAYED_WORK(&mrioc->watchdog_work, mpi3mr_watchdog_work); > snprintf(mrioc->watchdog_work_q_name, > - sizeof(mrioc->watchdog_work_q_name), "watchdog_%s%d", mrioc->name, > - mrioc->id); > + sizeof(mrioc->watchdog_work_q_name), "watchdog_%s", mrioc->name); > mrioc->watchdog_work_q = alloc_ordered_workqueue( > "%s", WQ_MEM_RECLAIM, mrioc->watchdog_work_q_name); > if (!mrioc->watchdog_work_q) { Leaving out mrioc->id from the workqueue name seems like an unacceptable behavior change to me. Please consider replacing the proposed changed with this untested patch: diff --git a/drivers/scsi/mpi3mr/mpi3mr.h b/drivers/scsi/mpi3mr/mpi3mr.h index 6742684e2990..050dcf111a4c 100644 --- a/drivers/scsi/mpi3mr/mpi3mr.h +++ b/drivers/scsi/mpi3mr/mpi3mr.h @@ -1076,7 +1076,6 @@ struct scmd_priv { * @fwevt_worker_thread: Firmware event worker thread * @fwevt_lock: Firmware event lock * @fwevt_list: Firmware event list - * @watchdog_work_q_name: Fault watchdog worker thread name * @watchdog_work_q: Fault watchdog worker thread * @watchdog_work: Fault watchdog work * @watchdog_lock: Fault watchdog lock @@ -1265,7 +1264,6 @@ struct mpi3mr_ioc { spinlock_t fwevt_lock; struct list_head fwevt_list; - char watchdog_work_q_name[50]; struct workqueue_struct *watchdog_work_q; struct delayed_work watchdog_work; spinlock_t watchdog_lock; diff --git a/drivers/scsi/mpi3mr/mpi3mr_fw.c b/drivers/scsi/mpi3mr/mpi3mr_fw.c index 8fe6e0bf342e..b564fe5980a6 100644 --- a/drivers/scsi/mpi3mr/mpi3mr_fw.c +++ b/drivers/scsi/mpi3mr/mpi3mr_fw.c @@ -2878,11 +2878,8 @@ void mpi3mr_start_watchdog(struct mpi3mr_ioc *mrioc) return; INIT_DELAYED_WORK(&mrioc->watchdog_work, mpi3mr_watchdog_work); - snprintf(mrioc->watchdog_work_q_name, - sizeof(mrioc->watchdog_work_q_name), "watchdog_%s%d", mrioc->name, - mrioc->id); mrioc->watchdog_work_q = alloc_ordered_workqueue( - "%s", WQ_MEM_RECLAIM, mrioc->watchdog_work_q_name); + "watchdog_%s%d", WQ_MEM_RECLAIM, mrioc->name, mrioc->id); if (!mrioc->watchdog_work_q) { ioc_err(mrioc, "%s: failed (line=%d)\n", __func__, __LINE__); return; Thanks, Bart. ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH RFT v2] driver/scsi/mpi3mr: Fix build warning for mpi3mr_start_watchdog 2025-11-12 20:55 ` Bart Van Assche @ 2025-11-15 13:47 ` Bartłomiej Kubik 2025-11-15 14:31 ` Bartłomiej Kubik 0 siblings, 1 reply; 6+ messages in thread From: Bartłomiej Kubik @ 2025-11-15 13:47 UTC (permalink / raw) To: Bart Van Assche Cc: sathya.prakash, kashyap.desai, sumit.saxena, sreekanth.reddy, martin.petersen, mpi3mr-linuxdrv.pdl, linux-scsi, skhan, khalid, david.hunter.linux, linux-kernel-mentees, linux-kernel Hi, Thanks for your time and review. On Wed, 12 Nov 2025 at 21:55, Bart Van Assche <bvanassche@acm.org> wrote: > > On 10/28/25 7:55 AM, Bartlomiej Kubik wrote: > > - char watchdog_work_q_name[50]; > > + char watchdog_work_q_name[MPI3MR_WATCHDOG_NAME_LENGTH]; > > From include/linux/workqueue.h: > > WQ_NAME_LEN = 32, > > char name[WQ_NAME_LEN]; /* I: workqueue name */ > > In other words, increasing the workqueue name length beyond 32 > characters is not useful because it will get truncated to 32 characters > anyway. The workqueue implementation complains about longer names as one > can see in kernel/workqueue.c: > > if (name_len >= WQ_NAME_LEN) > pr_warn_once("workqueue: name exceeds WQ_NAME_LEN. Truncating to: %s\n", > wq->name); > Yes. My mistake: I did not see this before. I walked through the path where watchdog_work_q_name is used, but I did not go too deep. I found this when building the kernel and GCC returned a warning. I saw a couple of months ago that the watchdog_work_q_name size was increased from 20 to 50, and MPI3MR_NAME_LENGTH was also changed from 32 to 64. > > diff --git a/drivers/scsi/mpi3mr/mpi3mr_fw.c b/drivers/scsi/mpi3mr/mpi3mr_fw.c > > index 8fe6e0bf342e..18b176e358c5 100644 > > --- a/drivers/scsi/mpi3mr/mpi3mr_fw.c > > +++ b/drivers/scsi/mpi3mr/mpi3mr_fw.c > > @@ -2879,8 +2879,7 @@ void mpi3mr_start_watchdog(struct mpi3mr_ioc *mrioc) > > > > INIT_DELAYED_WORK(&mrioc->watchdog_work, mpi3mr_watchdog_work); > > snprintf(mrioc->watchdog_work_q_name, > > - sizeof(mrioc->watchdog_work_q_name), "watchdog_%s%d", mrioc->name, > > - mrioc->id); > > + sizeof(mrioc->watchdog_work_q_name), "watchdog_%s", mrioc->name); > > mrioc->watchdog_work_q = alloc_ordered_workqueue( > > "%s", WQ_MEM_RECLAIM, mrioc->watchdog_work_q_name); > > if (!mrioc->watchdog_work_q) { > Leaving out mrioc->id from the workqueue name seems like an unacceptable > behavior change to me. Add twice the same ID one after one. Is it not a mistake ?? If mrioc->name has that same ID and the end. sprintf(mrioc->name, "%s%d", mrioc->driver_name, mrioc->id) We build watchdog_work_q_name from that and add twice the same ID. At the end If I correct see watchdog_work_q_name will looks like watchdog_mpi3mr11 > Please consider replacing the proposed changed with this untested patch: > > diff --git a/drivers/scsi/mpi3mr/mpi3mr.h b/drivers/scsi/mpi3mr/mpi3mr.h > index 6742684e2990..050dcf111a4c 100644 > --- a/drivers/scsi/mpi3mr/mpi3mr.h > +++ b/drivers/scsi/mpi3mr/mpi3mr.h > @@ -1076,7 +1076,6 @@ struct scmd_priv { > * @fwevt_worker_thread: Firmware event worker thread > * @fwevt_lock: Firmware event lock > * @fwevt_list: Firmware event list > - * @watchdog_work_q_name: Fault watchdog worker thread name > * @watchdog_work_q: Fault watchdog worker thread > * @watchdog_work: Fault watchdog work > * @watchdog_lock: Fault watchdog lock > @@ -1265,7 +1264,6 @@ struct mpi3mr_ioc { > spinlock_t fwevt_lock; > struct list_head fwevt_list; > > - char watchdog_work_q_name[50]; > struct workqueue_struct *watchdog_work_q; > struct delayed_work watchdog_work; > spinlock_t watchdog_lock; > diff --git a/drivers/scsi/mpi3mr/mpi3mr_fw.c > b/drivers/scsi/mpi3mr/mpi3mr_fw.c > index 8fe6e0bf342e..b564fe5980a6 100644 > --- a/drivers/scsi/mpi3mr/mpi3mr_fw.c > +++ b/drivers/scsi/mpi3mr/mpi3mr_fw.c > @@ -2878,11 +2878,8 @@ void mpi3mr_start_watchdog(struct mpi3mr_ioc *mrioc) > return; > > INIT_DELAYED_WORK(&mrioc->watchdog_work, mpi3mr_watchdog_work); > - snprintf(mrioc->watchdog_work_q_name, > - sizeof(mrioc->watchdog_work_q_name), "watchdog_%s%d", mrioc->name, > - mrioc->id); > mrioc->watchdog_work_q = alloc_ordered_workqueue( > - "%s", WQ_MEM_RECLAIM, mrioc->watchdog_work_q_name); > + "watchdog_%s%d", WQ_MEM_RECLAIM, mrioc->name, mrioc->id); > if (!mrioc->watchdog_work_q) { > ioc_err(mrioc, "%s: failed (line=%d)\n", __func__, __LINE__); > return; > > Thanks, > > Bart. ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH RFT v2] driver/scsi/mpi3mr: Fix build warning for mpi3mr_start_watchdog 2025-11-15 13:47 ` Bartłomiej Kubik @ 2025-11-15 14:31 ` Bartłomiej Kubik 2025-11-15 14:47 ` Bart Van Assche 0 siblings, 1 reply; 6+ messages in thread From: Bartłomiej Kubik @ 2025-11-15 14:31 UTC (permalink / raw) To: Bart Van Assche Cc: sathya.prakash, kashyap.desai, sumit.saxena, sreekanth.reddy, martin.petersen, mpi3mr-linuxdrv.pdl, linux-scsi, skhan, khalid, david.hunter.linux, linux-kernel-mentees, linux-kernel Hi, Apologies for my previous email - I mistakenly hit send before completing my full response. Thanks for your time and review. On Wed, 12 Nov 2025 at 21:55, Bart Van Assche <bvanassche@acm.org> wrote: > > On 10/28/25 7:55 AM, Bartlomiej Kubik wrote: > > - char watchdog_work_q_name[50]; > > + char watchdog_work_q_name[MPI3MR_WATCHDOG_NAME_LENGTH]; > > From include/linux/workqueue.h: > > WQ_NAME_LEN = 32, > > char name[WQ_NAME_LEN]; /* I: workqueue name */ > > In other words, increasing the workqueue name length beyond 32 > characters is not useful because it will get truncated to 32 characters > anyway. The workqueue implementation complains about longer names as one > can see in kernel/workqueue.c: > > if (name_len >= WQ_NAME_LEN) > pr_warn_once("workqueue: name exceeds WQ_NAME_LEN. Truncating to: %s\n", > wq->name); Yes. My mistake: I did not see this before. I walked through the path where watchdog_work_q_name is used, but I did not go too deep. I found this when building the kernel and GCC returned a warning. I saw a couple of months ago that the watchdog_work_q_name size was increased from 20 to 50, and MPI3MR_NAME_LENGTH was also changed from 32 to 64. > > diff --git a/drivers/scsi/mpi3mr/mpi3mr_fw.c b/drivers/scsi/mpi3mr/mpi3mr_fw.c > > index 8fe6e0bf342e..18b176e358c5 100644 > > --- a/drivers/scsi/mpi3mr/mpi3mr_fw.c > > +++ b/drivers/scsi/mpi3mr/mpi3mr_fw.c > > @@ -2879,8 +2879,7 @@ void mpi3mr_start_watchdog(struct mpi3mr_ioc *mrioc) > > > > INIT_DELAYED_WORK(&mrioc->watchdog_work, mpi3mr_watchdog_work); > > snprintf(mrioc->watchdog_work_q_name, > > - sizeof(mrioc->watchdog_work_q_name), "watchdog_%s%d", mrioc->name, > > - mrioc->id); > > + sizeof(mrioc->watchdog_work_q_name), "watchdog_%s", mrioc->name); > > mrioc->watchdog_work_q = alloc_ordered_workqueue( > > "%s", WQ_MEM_RECLAIM, mrioc->watchdog_work_q_name); > > if (!mrioc->watchdog_work_q) { > Leaving out mrioc->id from the workqueue name seems like an unacceptable > behavior change to me. Add twice the same ID one after one. Is it not a mistake ?? If mrioc->name has that same ID at the end. sprintf(mrioc->name, "%s%d", mrioc->driver_name, mrioc->id) watchdog_work_q_name is built from mrioc->name which has this ID at the end. If I see correctly, if mrioc->id will be 1 then watchdog_work_q_name will look like watchdog_mpi3mr11, but I think it should be watchdog_mpi3mr1, or am I missing something?? > Please consider replacing the proposed changed with this untested patch: You are correct. I've sent this patch as an RFT because I don't have the hardware to test this. I would appreciate it if someone could test the proposed patch for me. > diff --git a/drivers/scsi/mpi3mr/mpi3mr.h b/drivers/scsi/mpi3mr/mpi3mr.h > index 6742684e2990..050dcf111a4c 100644 > --- a/drivers/scsi/mpi3mr/mpi3mr.h > +++ b/drivers/scsi/mpi3mr/mpi3mr.h > @@ -1076,7 +1076,6 @@ struct scmd_priv { > * @fwevt_worker_thread: Firmware event worker thread > * @fwevt_lock: Firmware event lock > * @fwevt_list: Firmware event list > - * @watchdog_work_q_name: Fault watchdog worker thread name > * @watchdog_work_q: Fault watchdog worker thread > * @watchdog_work: Fault watchdog work > * @watchdog_lock: Fault watchdog lock > @@ -1265,7 +1264,6 @@ struct mpi3mr_ioc { > spinlock_t fwevt_lock; > struct list_head fwevt_list; > > - char watchdog_work_q_name[50]; > struct workqueue_struct *watchdog_work_q; > struct delayed_work watchdog_work; > spinlock_t watchdog_lock; > diff --git a/drivers/scsi/mpi3mr/mpi3mr_fw.c > b/drivers/scsi/mpi3mr/mpi3mr_fw.c > index 8fe6e0bf342e..b564fe5980a6 100644 > --- a/drivers/scsi/mpi3mr/mpi3mr_fw.c > +++ b/drivers/scsi/mpi3mr/mpi3mr_fw.c > @@ -2878,11 +2878,8 @@ void mpi3mr_start_watchdog(struct mpi3mr_ioc *mrioc) > return; > > INIT_DELAYED_WORK(&mrioc->watchdog_work, mpi3mr_watchdog_work); > - snprintf(mrioc->watchdog_work_q_name, > - sizeof(mrioc->watchdog_work_q_name), "watchdog_%s%d", mrioc->name, > - mrioc->id); > mrioc->watchdog_work_q = alloc_ordered_workqueue( > - "%s", WQ_MEM_RECLAIM, mrioc->watchdog_work_q_name); > + "watchdog_%s%d", WQ_MEM_RECLAIM, mrioc->name, mrioc->id); > if (!mrioc->watchdog_work_q) { > ioc_err(mrioc, "%s: failed (line=%d)\n", __func__, __LINE__); > return; > > Thanks, > > Bart. Best regards Bartłomiej Kubik ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH RFT v2] driver/scsi/mpi3mr: Fix build warning for mpi3mr_start_watchdog 2025-11-15 14:31 ` Bartłomiej Kubik @ 2025-11-15 14:47 ` Bart Van Assche 0 siblings, 0 replies; 6+ messages in thread From: Bart Van Assche @ 2025-11-15 14:47 UTC (permalink / raw) To: Bartłomiej Kubik Cc: sathya.prakash, kashyap.desai, sumit.saxena, sreekanth.reddy, martin.petersen, mpi3mr-linuxdrv.pdl, linux-scsi, skhan, khalid, david.hunter.linux, linux-kernel-mentees, linux-kernel On 11/15/25 6:31 AM, Bartłomiej Kubik wrote: >>> diff --git a/drivers/scsi/mpi3mr/mpi3mr_fw.c b/drivers/scsi/mpi3mr/mpi3mr_fw.c >>> index 8fe6e0bf342e..18b176e358c5 100644 >>> --- a/drivers/scsi/mpi3mr/mpi3mr_fw.c >>> +++ b/drivers/scsi/mpi3mr/mpi3mr_fw.c >>> @@ -2879,8 +2879,7 @@ void mpi3mr_start_watchdog(struct mpi3mr_ioc *mrioc) >>> >>> INIT_DELAYED_WORK(&mrioc->watchdog_work, mpi3mr_watchdog_work); >>> snprintf(mrioc->watchdog_work_q_name, >>> - sizeof(mrioc->watchdog_work_q_name), "watchdog_%s%d", mrioc->name, >>> - mrioc->id); >>> + sizeof(mrioc->watchdog_work_q_name), "watchdog_%s", mrioc->name); >>> mrioc->watchdog_work_q = alloc_ordered_workqueue( >>> "%s", WQ_MEM_RECLAIM, mrioc->watchdog_work_q_name); >>> if (!mrioc->watchdog_work_q) { >> Leaving out mrioc->id from the workqueue name seems like an unacceptable >> behavior change to me. > > Add twice the same ID one after one. Is it not a mistake ?? > If mrioc->name has that same ID at the end. > > sprintf(mrioc->name, "%s%d", mrioc->driver_name, mrioc->id) > > watchdog_work_q_name is built from mrioc->name which has this ID at the end. > If I see correctly, if mrioc->id will be 1 then watchdog_work_q_name > will look like > watchdog_mpi3mr11, but I think it should be watchdog_mpi3mr1, or am I missing > something?? I'm not sure - I'm not familiar myself with the mpi3mr driver. I will let someone who is familiar with this driver comment on this. Thanks, Bart. ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2025-11-15 14:47 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2025-10-28 14:55 [PATCH RFT v2] driver/scsi/mpi3mr: Fix build warning for mpi3mr_start_watchdog Bartlomiej Kubik 2025-11-12 20:29 ` Bartłomiej Kubik 2025-11-12 20:55 ` Bart Van Assche 2025-11-15 13:47 ` Bartłomiej Kubik 2025-11-15 14:31 ` Bartłomiej Kubik 2025-11-15 14:47 ` Bart Van Assche
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox