Re: [linux-usb-devel] 2.6.23-rc1-mm2 + cpufreq patch + hot-fixes -- [<f8ea528f>] usb_stor_scan_thread+0xbd/0x15a [usb_storage]

From: Akinobu Mita
Date: Mon Aug 06 2007 - 11:26:48 EST


2007/8/6, Alan Stern <stern@xxxxxxxxxxxxxxxxxxx>:
> On Sat, 4 Aug 2007, Miles Lane wrote:
>
> > Initializing USB Mass Storage driver...
> > usb-storage 4-3:1.0: usb_probe_interface
> > usb-storage 4-3:1.0: usb_probe_interface - got id
> > scsi2 : SCSI emulation for USB Mass Storage devices
> > usbcore: registered new interface driver usb-storage
> > usb-storage: device found at 2
> > usb-storage: waiting for device to settle before scanning
> > schedule_timeout: wrong timeout value f8ea51d2
> > [<c01080ab>] show_trace_log_lvl+0x12/0x25
> > [<c0108a9e>] show_trace+0xd/0x10
> > [<c0108bac>] dump_stack+0x16/0x18
> > [<c031e31e>] schedule_timeout+0x2c/0x8b
> > [<f8ea528f>] usb_stor_scan_thread+0xbd/0x15a [usb_storage]
> > [<c0139d64>] kthread+0x3b/0x63
> > [<c0107c63>] kernel_thread_helper+0x7/0x10
> > =======================
>
> Does this happen repeatably?
>
> Did you set usb-storage's delay_use parameter to something peculiar?

I also have same problem. It is caused by
http://kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.23-rc1/2.6.23-rc1-mm2/broken-out/freezer-introduce-freezer-firendly-waiting-macros.patch

The patch below may not be good fix. But it shows what is problem.

Index: 2.6-mm/include/linux/freezer.h
===================================================================
--- 2.6-mm.orig/include/linux/freezer.h
+++ 2.6-mm/include/linux/freezer.h
@@ -149,13 +149,13 @@ static inline void set_freezable(void)

#define wait_event_freezable_timeout(wq, condition, timeout) \
({ \
- long __ret = timeout; \
+ long ____ret = timeout; \
do { \
- __ret = wait_event_interruptible_timeout(wq, \
+ ____ret = wait_event_interruptible_timeout(wq, \
(condition) || freezing(current), \
- __ret); \
+ ____ret); \
} while (try_to_freeze()); \
- __ret; \
+ ____ret; \
})
#else /* !CONFIG_PM_SLEEP */
static inline int frozen(struct task_struct *p) { return 0; }
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/