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@linaro.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@linaro.org
Boot log:
[ 0.000000] Linux version 6.11.0-rc3-next-20240814 (tuxmake@tuxmake) (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