[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <43be498f-5a25-4ee2-8c5d-1ef75c4d1ff3@stanley.mountain>
Date: Wed, 21 Aug 2024 14:46:22 +0300
From: Dan Carpenter <dan.carpenter@...aro.org>
To: Naresh Kamboju <naresh.kamboju@...aro.org>,
Matthew Brost <matthew.brost@...el.com>, Tejun Heo <tj@...nel.org>
Cc: open list <linux-kernel@...r.kernel.org>, lkft-triage@...ts.linaro.org,
Linux Regressions <regressions@...ts.linux.dev>,
linux-block <linux-block@...r.kernel.org>,
Jens Axboe <axboe@...nel.dk>,
Christian Brauner <brauner@...nel.org>,
Alexey Dobriyan <adobriyan@...il.com>,
Christoph Hellwig <hch@....de>, Arnd Bergmann <arnd@...db.de>,
Anders Roxell <anders.roxell@...aro.org>,
Lai Jiangshan <jiangshanlai@...il.com>
Subject: Re: next: x86_64: ahci 0000:00:1f.2: probe with driver ahci failed
with error -12
On Wed, Aug 14, 2024 at 03:56:56PM +0530, Naresh Kamboju wrote:
> On Wed, 14 Aug 2024 at 15:15, Naresh Kamboju <naresh.kamboju@...aro.org> wrote:
> >
> > The qemu-x86_64 boot failed with today's Linux next-20240814 tag due to
> > following crash.
> >
> > The catch here is the crash seen on both x86_64 device and qemu-x86_64
> > but x86_64 device is able to boot successfully.
> >
> > Reported-by: Linux Kernel Functional Testing <lkft@...aro.org>
> >
> > Boot log:
> > ---
> > [ 0.000000] Linux version 6.11.0-rc3-next-20240814
> > (tuxmake@...make) (x86_64-linux-gnu-gcc (Debian 13.3.0-1) 13.3.0, GNU
> > ld (GNU Binutils for Debian) 2.42.50.20240625) #1 SMP PREEMPT_DYNAMIC
> > @1723614704
> > ...
> > <6>[ 2.479915] scsi host0: ahci
> > <4>[ 2.484371] sysfs: cannot create duplicate filename
> > '/devices/virtual/workqueue/scsi_tmf_-1073661392'
^^^^^^^^^^^
Negative number. This comes from:
shost->tmf_work_q = alloc_workqueue("scsi_tmf_%d",
WQ_UNBOUND | WQ_MEM_RECLAIM | WQ_SYSFS,
1, shost->host_no);
shost->host_no comes from ida_alloc() and we have checked to ensure it's not
negative. The problem is the va_args changes in workqueue.c as Anders's bisect
shows.
kernel/workqueue.c
5627 static struct workqueue_struct *__alloc_workqueue(const char *fmt,
5628 unsigned int flags,
5629 int max_active, ...)
^^^
This should be a "va_list args" now.
5750 struct workqueue_struct *alloc_workqueue(const char *fmt,
5751 unsigned int flags,
5752 int max_active, ...)
5753 {
5754 struct workqueue_struct *wq;
5755 va_list args;
5756
5757 va_start(args, max_active);
5758 wq = __alloc_workqueue(fmt, flags, max_active, args);
^^^^
We're passing a va_list.
5759 va_end(args);
Any workqueue that has a format string is going to be broken now.
regards,
dan carpenter
Powered by blists - more mailing lists