-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
And now this. The computer doesn't hang all the time, but it does register the
device incorrectly:
When I put the drive back it, sometimes I get the right message (the first
message), but after a while I almost certainly get the second (wrong)
Instead of: input: Maxtor OneTouch on usb-0000:00:02.2-1
I get: input: <NULL> on usb-0000:00:02.2-1
Other times when unpluging the device I get this:
This is just a warning. Your computer is OK
function=0x00000000, data=0x0
[<c011add2>] check_timer_failed+0x3e/0x4a
[<c011afa2>] del_timer+0x15/0x60
[<c020e361>] input_unregister_device+0x1c/0xc1
[<e0c3c6ca>] onetouch_release_input+0x1c/0x4e [usb_storage]
[<e0c3be2a>] usb_stor_release_resources+0x4d/0x75 [usb_storage]
[<e0c3c1d5>] storage_disconnect+0x74/0x80 [usb_storage]
[<c02011b6>] usb_unbind_interface+0x36/0x65
[<c01dd070>] device_release_driver+0x50/0x5c
[<c01dd25d>] bus_remove_device+0x58/0x94
[<c01dc4b6>] device_del+0x56/0x7a
[<c0206a6e>] usb_disable_device+0x7a/0xec
[<c0202c48>] usb_disconnect+0x93/0xec
[<c02038a1>] hub_port_connect_change+0x56/0x2bf
[<c0203d1f>] hub_events+0x215/0x2c1
[<c0203dcb>] hub_thread+0x0/0xe4
[<c0203de8>] hub_thread+0x1d/0xe4
[<c0123c1d>] autoremove_wake_function+0x0/0x3a
[<c01029a2>] ret_from_fork+0x6/0x14
[<c0203dcb>] hub_thread+0x0/0xe4
[<c0123c1d>] autoremove_wake_function+0x0/0x3a
[<c010126d>] kernel_thread_helper+0x5/0xb
Unable to handle kernel NULL pointer dereference at virtual address 00000000
printing eip:
c020e370
*pde = 00000000
Oops: 0000 [#1]
Modules linked in: usb_storage isofs udf binfmt_misc pcmcia firmware_class video
hotkey button battery container ac nvidia ipv6 yenta_socket rsrc_nonstatic
pcmcia_core 8139cp 8139too mii crc32 shpchp pci_hotplug sata_nv libata usbhid
snd_intel8x0 snd_ac97_codec snd_pcm_oss snd_mixer_oss snd_pcm snd_timer snd
soundcore snd_page_alloc ehci_hcd ohci_hcd dm_mod eeprom i2c_sensor i2c_nforce2
i2c_core parport_pc lp parport ide_cd psmouse ext3 jbd ide_disk ide_generic
via82cxxx trm290 triflex slc90e66 sis5513 siimage serverworks sc1200 rz1000 piix
pdc202xx_old opti621 ns87415 hpt366 hpt34x generic cy82c693 cs5530 cs5520 cmd64x
atiixp amd74xx alim15x3 aec62xx pdc202xx_new ide_core unix thermal processor fan
CPU: 0
EIP: 0060:[<c020e370>] Tainted: P VLI
EFLAGS: 00010213 (2.6.12-rc1-mm1.22032005)
EIP is at input_unregister_device+0x2b/0xc1
eax: cd49bf08 ebx: cd49b800 ecx: c02d2fd8 edx: 00000000
esi: 00000000 edi: cd49b8c0 ebp: de09a5e4 esp: dfef3e90
ds: 007b es: 007b ss: 0068
Process khubd (pid: 129, threadinfo=dfef2000 task=df99a540)
Stack: cd49b800 e0c41b00 e0c41b20 de09a5e4 e0c3c6ca cd49b8c0 c97f6340 ce3acec0
e0c3be2a cd49b800 ce3acec0 e0c3c1d5 ce3acec0 cdc36cb8 cdc36c80 c02011b6
cdc36c80 cdc36cb8 cdc36c94 c01dd070 cdc36c94 cdc36c94 c9f00c64 c9f00c00
Call Trace:
[<e0c3c6ca>] onetouch_release_input+0x1c/0x4e [usb_storage]
[<e0c3be2a>] usb_stor_release_resources+0x4d/0x75 [usb_storage]
[<e0c3c1d5>] storage_disconnect+0x74/0x80 [usb_storage]
[<c02011b6>] usb_unbind_interface+0x36/0x65
[<c01dd070>] device_release_driver+0x50/0x5c
[<c01dd25d>] bus_remove_device+0x58/0x94
[<c01dc4b6>] device_del+0x56/0x7a
[<c0206a6e>] usb_disable_device+0x7a/0xec
[<c0202c48>] usb_disconnect+0x93/0xec
[<c02038a1>] hub_port_connect_change+0x56/0x2bf
[<c0203d1f>] hub_events+0x215/0x2c1
[<c0203dcb>] hub_thread+0x0/0xe4
[<c0203de8>] hub_thread+0x1d/0xe4
[<c0123c1d>] autoremove_wake_function+0x0/0x3a
[<c01029a2>] ret_from_fork+0x6/0x14
[<c0203dcb>] hub_thread+0x0/0xe4
[<c0123c1d>] autoremove_wake_function+0x0/0x3a
[<c010126d>] kernel_thread_helper+0x5/0xb
Code: 55 57 56 53 8b 7c 24 14 85 ff 0f 84 ac 00 00 00 8d 87 98 00 00 00 50 e8 2c
cc f0 ff 8b b7 48 06 00 00 58 8d 87 48 06 00 00 39 c6 <8b> 2e 74 3d 8b 56 04 8b
06 8d 5e ec 89 50 04 89 02 89 76 04 8d
I'm a little lost... Any help?
Nick Sillik
[EMAIL PROTECTED]
Nick Sillik wrote:
> Well, I have a problem. This patch hangs the computer when the drive is
> plugged
> in then unplugged.
>
> Any Ideas where this is coming from?
>
> Nick Sillik
> [EMAIL PROTECTED]
>
> Nick Sillik wrote:
>
>>>Here's the patch with those two changes, as well as the change to the min and
>>>max in unusual_devs.h that Sergey suggested. I also eliminated the encoding
>>>problem from the patch.
>>>
>>>Signed-off-by: Nick Sillik <[EMAIL PROTECTED]>
>>>
>>>Alan Stern wrote:
>>>
>>>
>>>>>On Tue, 22 Mar 2005, Nick Sillik wrote:
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>>Well, I have attached the diff for linux-2.6.12-rc1-mm1 to this message.
>>>>>>This
>>>>>>patch does cleanly compile. Take a look at it, if you like it apply it.
>>>>>>If not,
>>>>>>I'll keep hacking. (I'll keep this bottle of champagne - which has been
>>>>>>waiting
>>>>>>for a while - on ice.)
>>>>>
>>>>>
>>>>>This is looking pretty good. There are still a few small items to clean
>>>>>up:
>>>>>
>>>>>
>>>>>+int onetouch_connect_input(struct us_data *ss)
>>>>>+{
>>>>>+ struct usb_device *udev = ss->pusb_dev;
>>>>>+ struct usb_onetouch *onetouch;
>>>>>+ char path[64];
>>>>>+
>>>>>+ if (udev->descriptor.idVendor != VENDOR_MAXTOR
>>>>>+ || udev->descriptor.idProduct != PRODUCT_ONETOUCH) {
>>>>>+ /* Not a onetouch device, nothing to see here */
>>>>>+ return 1;
>>>>>+ }
>>>>>
>>>>>This check isn't needed any more. The function won't get called at all
>>>>>unless the descriptors match as specified in the unusual_devs entry.
>>>>>
>>>>>
>>>>>+void onetouch_release_input(void *onetouch_)
>>>>>+{
>>>>>+ struct usb_onetouch *onetouch = (struct usb_onetouch *) onetouch_;
>>>>>+
>>>>>+ US_DEBUGP("device found: %s. Releasing\n", onetouch->phys);
>>>>>+ usb_unlink_urb(onetouch->irq);
>>>>>
>>>>>For the sake of thoroughness this call should be usb_kill_urb.
>>>>>
>>>>>
>>>>>--- linux-2.6.12-rc1-mm1/drivers/usb/storage/onetouch.h 1969-12-31
>>>>>19:00:00.000000000 -0500
>>>>>+++ linux-2.6.12-rc1-mm1-onetouch/drivers/usb/storage/onetouch.h
>>>>>2005-03-22 20:00:03.000000000 -0500
>>>>>@@ -0,0 +1,12 @@
>>>>>+#ifndef _ONETOUCH_H_
>>>>>+#define _ONETOUCH_H_
>>>>>+
>>>>>+#define ONETOUCH_PKT_LEN 0x02
>>>>>+#define ONETOUCH_BUTTON KEY_PROG1
>>>>>+#define VENDOR_MAXTOR 0x0d49
>>>>>+#define PRODUCT_ONETOUCH 0x7010
>>>>>name, 128, "Maxtor OneTouch");
> +
> + set_bit(EV_KEY, onetouch->dev.evbit);
> + set_bit(ONETOUCH_BUTTON, onetouch->dev.keybit);
> + clear_bit(0, onetouch->dev.keybit);
> +
> + input_register_device(&onetouch->dev);
> +
> + printk(KERN_INFO "input: %s on %s\n", onetouch->dev.name, path);
> +
> + return 0;
> +}
> +
> +void onetouch_release_input(void *onetouch_)
> +{
> + struct usb_onetouch *onetouch = (struct usb_onetouch *) onetouch_;
�� �k� � �k� �k� � � �k� � �k� Mk� �k� � �)�
� �� �k� � �k� �k� � � �k� � �k� Pk� �k� �
�0� � ) �h� �k� � �k� �k� �
� �k� � �k� Sk� �k� � h� � � �k� �
�k� �k� � � �k� � � � � �
� �k� � � � � ����8�
�k� � � �k� � � �/� � ��&