Hi,

Summary
=======

 I've been trying to get the smartmedia part of a DPCM
device to work for some time. I've had confirmation from the
manifacturer that the Cameramate driver is the one to use ;
however, almost any operation on the card will trigger a
oops. So at last today I decided to put up a complete bug report. 

[Warning, I did try to clean up the logs, but the USB debug
mode is still very verbose, so some attachements will be
compressed]

Setup
======

 The kernel version used was a clean 2.4.2-ac17, except that
DPCM and SDDR09 options where added to the usb Config.in,
and the following entry to the unusual devices list :

#ifdef CONFIG_USB_STORAGE_DPCM
UNUSUAL_DEV(  0x04e6, 0x0005, 0x0100, 0x0208,
                "SCM Microsystems Inc",
                "eUSB SmartMedia / CompactFlash Adapter",
                US_SC_SCSI, US_PR_DPCM_USB, NULL,
                US_FL_START_STOP ),
#endif

[I'm pretty sure of this one : options are copied frome the
CameraMate entry, my reader is version 2.08 and the text
identification is how it reports itself on an unmodified
kernel. So please, someone complete the usb storage unusual
devices list with this]

 I use a monolithic kernel compiled with RedHat's
gcc-2.96-77.1, but I got the same oopses with lots of other
kernels, some modular and others even compiled with kgcc, so
I do think the problem is in the usb code.

 The kernel was compiled for an athlon processor.

 The oops was triggered by a cp -r of the full contents of a
mounted 32 MB smartmedia card, just after a reboot.

Log files
=========

* ksymoops output :

ksymoops 2.4.0 on i686 2.4.2-ac17-rous1.  Options used
     -v /usr/src/linux-2.4.2-ac17/vmlinux (specified)
     -k /proc/ksyms (specified)
     -l /proc/modules (default)
     -o /lib/modules/2.4.2-ac17-rous1/ (specified)
     -m /boot/System.map-2.4.2-ac17-rous1 (specified)

Warning (compare_maps): ksyms_base symbol __VERSIONED_SYMBOL(shmem_file_setup) not 
found in vmlinux.
  Ignoring ksyms_base entry
invalid operand: 0000
CPU:    0
EIP:    0010:[<c01280be>]
Using defaults from ksymoops -t elf32-i386 -a i386
EFLAGS: 00010246
eax: 00000000   ebx: 00558000   ecx: 00035000   edx: c0287ee0
esi: 00000007   edi: 00000000   ebp: c14acfc0   esp: cfe99dd4
ds: 0018   es: 0018   ss: 0018
Process usb-storage-0 (pid: 10, stackpage=cfe99000)
Stack: 0000001b 00000002 c0114c15 cfe99e00 00558000 c14acfc0 c01e                      
             
 d877 00035000 
       00000007 ffffffff 00035000 cfe99e74 c02cc000 c023e047 0000                      
             
 0000 000001a8 
       01a80000 0000000a ffffffff 00062d6d c0114a76 000020e8 0000                      
             
 0000 00000000 
Call Trace: [<c0114c15>] [<c01ed877>] [<c023e047>] [<c0114a76>] [                      
             
 <c01ee4fb>] [<c023e047>] [<c0114a76>] 
       [<c01ee6eb>] [<c01e9d57>] [<c0114c15>] [<c01ec59b>] [<c01e                      
             
 9504>] [<c01eb0ab>] [<c0108e8e>] [<c01ead70>] 
       [<c01074d6>] [<c01ead70>] 
Code: 0f 0b 31 c0 83 c4 10 5b 5e c3 90 8d b4 26 00 00 00 00 55 57 

>>EIP; c01280be <kmalloc+7e/90>   <=====
Trace; c0114c15 <printk+125/130>
Trace; c01ed877 <sddr09_read_data+77/2c0>
Trace; c023e047 <vsprintf+327/360>
Trace; c0114a76 <call_console_drivers+c6/d0>
Trace; c01ee6eb <dpcm_transport+5b/90>
Trace; c01e9d57 <usb_stor_invoke_transport+17/2b0>
Trace; c0114c15 <printk+125/130>
Trace; c01ec59b <usb_stor_show_command+56b/570>
Trace; c01074d6 <kernel_thread+26/30>
Trace; c01ead70 <usb_stor_control_thread+0/400>
Code;  c01280be <kmalloc+7e/90>
00000000 <_EIP>:
Code;  c01280be <kmalloc+7e/90>   <=====
   0:   0f 0b                     ud2a      <=====
Code;  c01280c0 <kmalloc+80/90>
   2:   31 c0                     xor    %eax,%eax
Code;  c01280c2 <kmalloc+82/90>
   4:   83 c4 10                  add    $0x10,%esp
Code;  c01280c5 <kmalloc+85/90>
   7:   5b                        pop    %ebx
Code;  c01280c6 <kmalloc+86/90>
   8:   5e                        pop    %esi
Code;  c01280c7 <kmalloc+87/90> 
   9:   c3                        ret    
Code;  c01280c8 <kmalloc+88/90>
   a:   90                        nop    
Code;  c01280c9 <kmalloc+89/90>
   b:   8d b4 26 00 00 00 00      lea    0x0(%esi,1),%esi
Code;  c01280d0 <kmem_cache_free+0/b0>
  12:   55                        push   %ebp
Code;  c01280d1 <kmem_cache_free+1/b0>
  13:   57                        push   %edi


1 warning issued.  Results may not be reliable.


* /var/log/messages output : from system boot-up to usb
oops, cleaned-up a little : see attached file
smartmedia.txt.bz2

 Other logs are available on demand. I hope some bright mind
will see where the problem is, this have been plaging me for
months.

        Best regards,

-- 
Nicolas Mailhot

smartmedia.txt.bz2

Reply via email to