I do often experiencing deadlock while copying large amounts of data
drom USB camera.
I am not sure what subsystem is guilty, it may be either USB, SCSI, FAT
or something I do not imagine.
Kernel 2.4.20 from ftp.kernel.org compiled with gcc 3.2.1 (as from
ftp.gcc.org). USB, SCSI and FAT compiled as modules.
.config is attached.
Camera is Sony DSC-P9, it supports USB mass storage.
Media in the camera - memory stick 128Mb, FAT; bug appears when copying
some 50+ Mb, usually when CPU is busy with some background process.
Process that copy files get stalled in __lock_page function. Besides
this, everything continue to work. After reboot copy wents well.
I captured situation when 'mc' (midnight commander) get stalled; and got
kernel stack information using Ctl+Alt+SysRq+T. Attached file contains
stack for 'mc' task, plus sorted 'ksyms'.
I am able and will be glad to do kernel modifications and/or provide
additional information if I will know what to look for.
Regards, Vladimir.