public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Jan Dittmer <jdittmer@ppp0.net>
To: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Cc: linux1394-devel@lists.sourceforge.net, bcollins@debian.org
Subject: Oops in dv1394_remove_host (inkl. fix)
Date: Thu, 23 Sep 2004 17:15:28 +0200	[thread overview]
Message-ID: <4152E890.5030500@ppp0.net> (raw)

I was playing around with dummyphp. When removing the pci device
of ohci1394 I got an oops due to the missing initialization
of the .name attribute of the dummy driver (I think).
The code in question is this (in dv1394.c, dv1394_remove_host):

        /* We only work with the OHCI-1394 driver */
        if (strcmp(host->driver->name, OHCI1394_DRIVER_NAME))
                return;

Additionally I think this check will never be true, because
host->driver is set to &dummy before calling the
remove_hosts functions of the sublevel drivers
(hosts.c, remove_host):

        host->driver = &dummy_driver;

        highlevel_remove_host(host);

highlevel_remove_host calls dv1394_remove_host.

The following should fix the oops:

--- 2.6/drivers/ieee1394/hosts.c.orig   2004-09-23 16:57:58.000000000 +0200
+++ 2.6/drivers/ieee1394/hosts.c        2004-09-23 16:58:00.000000000 +0200
@@ -76,7 +76,8 @@
 static struct hpsb_host_driver dummy_driver = {
         .transmit_packet = dummy_transmit_packet,
         .devctl =          dummy_devctl,
-       .isoctl =          dummy_isoctl
+       .isoctl =          dummy_isoctl,
+       .name = "dummy"
 };

 static int alloc_hostnum_cb(struct hpsb_host *host, void *__data)


Thanks,

Jan

ieee1394: Node removed: ID:BUS[0-00:1023]  GUID[0800460301101508]
Unable to handle kernel NULL pointer dereference at virtual address 00000000
 printing eip:
c02d2aa8
*pde = 097eb001
*pte = 00000000
Oops: 0000 [#1]
PREEMPT SMP
Modules linked in: dummyphp pci_hotplug orinoco_cs orinoco hermes ds ipv6 ppp_generic slhc ipt_state iptable_filter iptable_mangle ipt_MASQUERADE iptable_nat ip_conntrack iptable_raw ip_tables hci_usb yenta_socket pcmcia_core eeprom i2c_sensor i2c_isa i2c_i810 i2c_algo_bit i2c_i801 i2c_core pl2303 usbserial
CPU:    0
EIP:    0060:[<c02d2aa8>]    Not tainted VLI
EFLAGS: 00010286   (2.6.9-rc2-bk8-numa)
EIP is at dv1394_remove_host+0x18/0xc0
eax: c04895fc   ebx: 00000000   ecx: 00000000   edx: c02d2a90
esi: 00000000   edi: c03faa6e   ebp: c048a920   esp: cd842e54
ds: 007b   es: 007b   ss: 0068
Process bash (pid: 2764, threadinfo=cd842000 task=ceea7aa0)
Stack: c048a920 cf470000 cf470000 c048a920 c02b970b cd842e68 c02b9258 c048a640
       cf470000 00000000 c048a920 cf470000 c0489634 cf47209c c02ba10b cf470000
       c048a084 cae1eb40 c02b9139 cfe67000 c02c65c3 cf454140 cf433098 cf471f38
Call Trace:
 [<c02b970b>] __unregister_host+0xbb/0xc0
 [<c02b9258>] hl_get_hostinfo+0x48/0x60
 [<c02ba10b>] highlevel_remove_host+0x3b/0x70
 [<c02b9139>] hpsb_remove_host+0x39/0x60
 [<c02c65c3>] ohci1394_pci_remove+0x53/0x220
 [<c021e8f8>] pci_device_remove+0x28/0x30
 [<c02812b6>] device_release_driver+0x56/0x60
 [<c02814f5>] bus_remove_device+0x55/0xa0
 [<c028046c>] device_del+0x5c/0xa0
 [<c02804b8>] device_unregister+0x8/0x10
 [<c021ca30>] pci_destroy_dev+0x10/0x70
 [<d4f194b6>] disable_slot+0x76/0x100 [dummyphp]
 [<d4f14798>] power_write_file+0x118/0x170 [pci_hotplug]
 [<d4f14680>] power_write_file+0x0/0x170 [pci_hotplug]
 [<d4f14066>] hotplug_slot_attr_store+0x36/0x40 [pci_hotplug]
 [<c018efab>] flush_write_buffer+0x2b/0x40
 [<c018f001>] sysfs_write_file+0x41/0x50
 [<c015dda0>] vfs_write+0xb0/0x110
 [<c015dec7>] sys_write+0x47/0x80
 [<c010614b>] syscall_call+0x7/0xb
Code: 89 d8 e8 dc 42 e7 ff 8b 5c 24 38 83 c4 3c c3 8d 74 26 00 55 57 bf 6e aa 3f c0 56 53 8b 98 34 1f 00 00 8b 80 2c 1f 00 00 8b 70 04 <ac> ae 75 08 84 c0 75 f8 31 c0 eb 04 19 c0 0c 01 85 c0 74 05 5b

             reply	other threads:[~2004-09-23 15:15 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-09-23 15:15 Jan Dittmer [this message]
2004-09-23 15:26 ` Oops in dv1394_remove_host (inkl. fix) Jan Dittmer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4152E890.5030500@ppp0.net \
    --to=jdittmer@ppp0.net \
    --cc=bcollins@debian.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux1394-devel@lists.sourceforge.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox