[PATCH RFT v2] driver/scsi/mpi3mr: Fix build warning for mpi3mr_start_watchdog

Bartlomiej Kubik posted 1 patch 3 months, 1 week ago
drivers/scsi/mpi3mr/mpi3mr.h    | 3 ++-
drivers/scsi/mpi3mr/mpi3mr_fw.c | 3 +--
2 files changed, 3 insertions(+), 3 deletions(-)
[PATCH RFT v2] driver/scsi/mpi3mr: Fix build warning for mpi3mr_start_watchdog
Posted by Bartlomiej Kubik 3 months, 1 week ago
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

Re: [PATCH RFT v2] driver/scsi/mpi3mr: Fix build warning for mpi3mr_start_watchdog
Posted by Bart Van Assche 2 months, 3 weeks ago
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.
Re: [PATCH RFT v2] driver/scsi/mpi3mr: Fix build warning for mpi3mr_start_watchdog
Posted by Bartłomiej Kubik 2 months, 3 weeks ago
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.
Re: [PATCH RFT v2] driver/scsi/mpi3mr: Fix build warning for mpi3mr_start_watchdog
Posted by Bartłomiej Kubik 2 months, 3 weeks ago
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
Re: [PATCH RFT v2] driver/scsi/mpi3mr: Fix build warning for mpi3mr_start_watchdog
Posted by Bart Van Assche 2 months, 3 weeks ago
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.
Re: [PATCH RFT v2] driver/scsi/mpi3mr: Fix build warning for mpi3mr_start_watchdog
Posted by Bartłomiej Kubik 2 months, 3 weeks ago
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