Hi,

triggered by the SET_MODULE_OWNER thread on lkml I've tried to rmmod the 
hcd (ohci_hcd in this case) while there was a fs mounted from usb-storage.
This is possible because the hcd's use count remains zero regardless.

I was expecting fs damage so the fs (FAT on usbstick) was mouted RO.
Unfortunatedly it's even worse: the box starts BUGging and OOPSing!
Tried with 2.6.0-test1 - log see below.

Besides it should not oops I'm just wondering what might happen without 
the oops. As said, I'd expect fs corruption. Sure, one could unplug the 
storage device as well but people doing so are aware of the possible 
consequences - at least if they've done before ;-)

OTOH I tend to agree with people saying module use count==0 indicates the 
module is unused and thus can be safely removed. Personally I'd expect the 
hcd's use count to increase with every interface claimed by client driver.

Thoughts?

Martin

------------------------------

$ modprobe ohci_hcd

ohci-hcd: 2003 Feb 24 USB 1.1 'Open' Host Controller (OHCI) Driver (PCI)
ohci-hcd: block sizes: ed 64 td 64
PCI: Found IRQ 9 for device 0000:00:01.2
ohci-hcd 0000:00:01.2: Silicon Integrated S 7001
ohci-hcd 0000:00:01.2: irq 9, pci mem cd050000
ohci-hcd 0000:00:01.2: new USB bus registered, assigned bus number 1
hub 1-0:0: USB hub found
hub 1-0:0: 2 ports detected
hub 1-0:0: debounce: port 1: delay 100ms stable 4 status 0x101
hub 1-0:0: new USB device on port 1, assigned address 2

$ mount -o ro -t vfat /dev/sda1 /mnt/usbstick

SCSI subsystem initialized
Initializing USB Mass Storage driver...
scsi0 : SCSI emulation for USB Mass Storage devices
  Vendor: TwinMOS   Model: Mobile Disk       Rev: 1.11
  Type:   Direct-Access                      ANSI SCSI revision: 02
WARNING: USB Mass Storage data integrity not assured
USB Mass Storage device found at 2
drivers/usb/core/usb.c: registered new driver usb-storage
USB Mass Storage support registered.
SCSI device sda: 258048 512-byte hdwr sectors (132 MB)
sda: test WP failed, assume Write Enabled
sda: asking for cache data failed
sda: assuming drive cache: write through
 /dev/scsi/host0/bus0/target0/lun0: p1
Attached scsi removable disk sda at scsi0, channel 0, id 0, lun 0

$ rmmod ohci_hcd

ohci-hcd 0000:00:01.2: remove, state 3
usb usb1: USB disconnect, address 1
usb 1-1: USB disconnect, address 2
ohci-hcd 0000:00:01.2: USB bus 1 deregistered

$ ls /mnt/usbstick

------------[ cut here ]------------
kernel BUG at fs/buffer.c:1165!
invalid operand: 0000 [#1]
CPU:    0
EIP:    0060:[<c015ca8a>]    Not tainted
EFLAGS: 00010206
EIP is at __getblk_slow+0x4a/0xf0
eax: 00006b6a   ebx: 000001f7   ecx: 0000003e   edx: c88e2688
esi: 00000200   edi: cbd2aa24   ebp: 000001f7   esp: c77c7c74
ds: 007b   es: 007b   ss: 0068
Process bash (pid: 1560, threadinfo=c77c6000 task=c8a2e080)
Stack: 00000200 000001f7 cbd2aa24 00000000 c015cef6 cbd2aa24 000001f7 00000200 
       c774d49c 00000000 00000000 c015cf51 cbd2aa24 000001f7 00000200 cd0dd54f 
       cbd2aa24 000001f7 00000200 c77c7cc8 c7a03104 000001f7 c0364bc0 cbfb83e0 
Call Trace:
 [<c015cef6>] __getblk+0x26/0x30
 [<c015cf51>] __bread+0x11/0x30
 [<cd0dd54f>] fat__get_entry+0x9f/0x160 [fat]
 [<cd0d8841>] fat_readdirx+0x2d1/0x10a0 [fat]
 [<c02154ea>] soft_cursor+0x22a/0x260
 [<c01e07a5>] do_con_write+0x645/0x6b0
 [<c01dd3a5>] set_cursor+0x65/0x80
 [<c020e8a3>] fbcon_cursor+0x353/0x370
 [<c011ce16>] default_wake_function+0x16/0x20
 [<c017203c>] dput+0x1c/0x280
 [<c017203c>] dput+0x1c/0x280
 [<c0168f13>] link_path_walk+0x843/0xa00
 [<c0164696>] cp_new_stat64+0xe6/0x110
 [<c015ae79>] get_empty_filp+0x49/0xf0
 [<cd0d962c>] fat_readdir+0x1c/0x20 [fat]
 [<c016d590>] filldir64+0x0/0x130
 [<c016d2ba>] vfs_readdir+0x5a/0x70
 [<c016d590>] filldir64+0x0/0x130
 [<c016d724>] sys_getdents64+0x64/0xa1
 [<c016d590>] filldir64+0x0/0x130
 [<c0109417>] syscall_call+0x7/0xb

Code: 0f 0b 8d 04 1f f1 28 c0 8d 86 00 fe ff ff 3d 00 0e 00 00 76 
 
$ sync

$ modprobe ohci_hcd     # same oops if directly following the rmmod

ohci-hcd: 2003 Feb 24 USB 1.1 'Open' Host Controller (OHCI) Driver (PCI)
ohci-hcd: block sizes: ed 64 td 64
PCI: Found IRQ 9 for device 0000:00:01.2
ohci-hcd 0000:00:01.2: Silicon Integrated S 7001
ohci-hcd 0000:00:01.2: irq 9, pci mem cd050000
ohci-hcd 0000:00:01.2: new USB bus registered, assigned bus number 1
hub 1-0:0: USB hub found
hub 1-0:0: 2 ports detected
hub 1-0:0: debounce: port 1: delay 100ms stable 4 status 0x101
hub 1-0:0: new USB device on port 1, assigned address 2
scsi1 : SCSI emulation for USB Mass Storage devices
  Vendor: TwinMOS   Model: Mobile Disk       Rev: 1.11
  Type:   Direct-Access                      ANSI SCSI revision: 02
SCSI device sda: 258048 512-byte hdwr sectors (132 MB)
sda: test WP failed, assume Write Enabled
sda: asking for cache data failed
sda: assuming drive cache: write through
Unable to handle kernel paging request at virtual address 6b6b6bd3
 printing eip:
cd0a7c9a
*pde = 00000000
Oops: 0000 [#1]
CPU:    0
EIP:    0060:[<cd0a7c9a>]    Not tainted
EFLAGS: 00010286
EIP is at scsi_device_get+0xa/0x50 [scsi_mod]
eax: c92bcc48   ebx: 00000001   ecx: 6b6b6b6b   edx: c92bc358
esi: 6b6b6b6b   edi: c928d5a4   ebp: c930829c   esp: cb417adc
ds: 007b   es: 007b   ss: 0068
Process khubd (pid: 481, threadinfo=cb416000 task=cb7a39a0)
Stack: cd06ad60 cd0682dd 6b6b6b6b cd06ad60 cbd2a9c0 cbd2a9c0 c92bc358 c0162ade 
       c930829c cb417bdc cd06ad60 00000000 00000246 cb417b68 00000001 cb417ba4 
       00000001 00000000 cb417bdc 00000000 c0162ceb cbd2a9c0 c930829c cb417bdc 
Call Trace:
 [<cd0682dd>] sd_open+0x1d/0xd0 [sd_mod]
 [<c0162ade>] do_open+0x2de/0x480
 [<c0162ceb>] blkdev_get+0x6b/0x80
 [<c0190fc2>] register_disk+0xb2/0x140
 [<c01f0975>] blk_register_region+0x25/0x30
 [<c01f0a02>] add_disk+0x32/0x40
 [<c01f09a0>] exact_match+0x0/0x10
 [<c01f09b0>] exact_lock+0x0/0x20
 [<cd06961c>] sd_probe+0x26c/0x2e0 [sd_mod]
 [<c01ea5f4>] bus_match+0x34/0x60
 [<c01ea66b>] device_attach+0x4b/0x70
 [<c01ea7ea>] bus_add_device+0x6a/0xb0
 [<c01e91b0>] device_add+0xc0/0xf0
 [<cd0ae1b3>] scsi_device_register+0xa3/0x140 [scsi_mod]
 [<cd0ad906>] scsi_add_lun+0x386/0x3a0 [scsi_mod]
 [<cd0ad9c1>] scsi_probe_and_add_lun+0xa1/0x120 [scsi_mod]
 [<c018d73f>] proc_register+0xf/0xa0
 [<cd0adc04>] scsi_scan_target+0x34/0x70 [scsi_mod]
 [<cd0adc8b>] scsi_scan_host+0x4b/0x70 [scsi_mod]
 [<cd0a7f90>] scsi_add_host+0x70/0x80 [scsi_mod]
 [<cd0951ee>] storage_probe+0x13e/0x190 [usb_storage]
 [<cd06d08a>] usb_device_probe+0x6a/0xa0 [usbcore]
 [<c01ea5f4>] bus_match+0x34/0x60
 [<c01ea66b>] device_attach+0x4b/0x70
 [<c01ea7ea>] bus_add_device+0x6a/0xb0
 [<c01e91b0>] device_add+0xc0/0xf0
 [<cd06e3e8>] usb_new_device+0x468/0x4b0 [usbcore]
 [<cd070395>] hub_port_connect_change+0x225/0x2b0 [usbcore]
 [<cd070586>] hub_events+0x166/0x370 [usbcore]
 [<cd0707b5>] hub_thread+0x25/0xe0 [usbcore]
 [<c011ce00>] default_wake_function+0x0/0x20
 [<cd070790>] hub_thread+0x0/0xe0 [usbcore]
 [<c010712d>] kernel_thread_helper+0x5/0x18

Code: 8b 41 68 8b 40 5c 8b 10 85 d2 74 22 b8 00 e0 ff ff 21 e0 83 
 



-------------------------------------------------------
This SF.net email is sponsored by: VM Ware
With VMware you can run multiple operating systems on a single machine.
WITHOUT REBOOTING! Mix Linux / Windows / Novell virtual machines at the
same time. Free trial click here: http://www.vmware.com/wl/offer/345/0
_______________________________________________
[EMAIL PROTECTED]
To unsubscribe, use the last form field at:
https://lists.sourceforge.net/lists/listinfo/linux-usb-devel

Reply via email to