From: "S. Anderson" <sa@xmission.com>
To: Pavel Rabel <pavel@xal.co.uk>
Cc: linux-kernel@vger.kernel.org
Subject: Re: OOPS 2.6.0-test2, modprobe i810fb
Date: Mon, 28 Jul 2003 20:19:54 -0600 [thread overview]
Message-ID: <20030728201954.A16103@xmission.xmission.com> (raw)
In-Reply-To: <20030728171806.GA1860@xal.co.uk>; from pavel@xal.co.uk on Mon, Jul 28, 2003 at 06:18:07PM +0100
On Mon, Jul 28, 2003 at 06:18:07PM +0100, Pavel Rabel wrote:
> Got this OOPS when trying "modprobe i810fb",
> kernel 2.6.0-test2
>
I am also getting this oops, or somthing very simmillar.
I am new to kernel hacking, but I will try to explain what why I
think this is happening, and then hopefully someone will know how to fix
it :-).
basicly, in pci_bus_match(), when *ids is assigned pci_drv->id_table
from a driver, (intel-agp, i810_audio and i810fb mabey others) the value
of ids->vendor is located at place where it cant be handled. Then further
up the line, the oops occurs at the pci_match_device() function when it
tries to access ids->vendor. hopefully that makes sense.
I have added some debugging printks to pci_bus_match():
--- pci-driver.0.c 2003-07-27 15:40:56.000000000 -0600
+++ pci-driver.c 2003-07-28 19:51:47.000000000 -0600
@@ -48,6 +48,7 @@
const struct pci_device_id *
pci_match_device(const struct pci_device_id *ids, const struct pci_dev *dev)
{
+ printk("pci_match_device: &ids->vendor = %p\n", &ids->vendor);
while (ids->vendor || ids->subvendor || ids->class_mask) {
if (pci_match_one_device(ids, dev))
return ids;
@@ -430,6 +431,12 @@
if (!ids)
return 0;
+ printk("pci_bus_match: bus=%d, devfn=%d %x %x\n",
+ pci_dev->bus->number, pci_dev->devfn,
+ pci_dev->vendor, pci_dev->device);
+ printk(" ^ matching? ^ (%s) ((( &ids->vendor = %p )))\n",
+ pci_drv->name, &ids->vendor);
+
found_id = pci_match_device(ids, pci_dev);
if (found_id)
return 1;
here is the output I get right before the oops + the oops run
through ksymoops
...
Adding 524280k swap on /swapfile. Priority:-1 extents:209
mtrr: 0xe8000000,0x8000000 overlaps existing 0xe8000000,0x80000
(pci_bus_add_devices) bus 3 devfn 0 1260 3890
pci_bus_match: bus=3, devfn=0 1260 3890
^ matching? ^ (agpgart-intel) ((( &ids->vendor = c03f8e98 )))
pci_match_device: &ids->vendor = c03f8e98
Unable to handle kernel paging request at virtual address c03f8e98
printing eip:
c01f7da3
...
Error (regular_file): read_ksyms stat /proc/ksyms failed
No modules in ksyms, skipping objects
No ksyms, skipping lsmod
Unable to handle kernel paging request at virtual address c03f8e98
c01f7da3
*pde = 00102027
Oops: 0000 [#1]
CPU: 0
EIP: 0060:[<c01f7da3>] Not tainted
Using defaults from ksymoops -t elf32-i386 -a i386
EFLAGS: 00010286
eax: 0000002a ebx: c03f8e98 ecx: 00000001 edx: c036f238
esi: c748b004 edi: c748b004 ebp: cf5fde94 esp: cf5fde84
ds: 007b es: 007b ss: 0068
Stack: c0327020 c03f8e98 c03a65a0 c03f8e98 cf5fdeb4 c01f84fb c03f8e98 c748b004
ffffffed c03a65c8 c748b058 c8f12004 cf5fded0 c022b599 c748b058 c03a65c8
c03a6610 c03a10f4 c748b058 cf5fdeec c022b62a c748b058 c03a65c8 c03a1080
Call Trace:
[<c01f84fb>] pci_bus_match+0x5f/0x2b0
[<c022b599>] bus_match+0x21/0x64
[<c022b62a>] device_attach+0x4e/0x70
[<c022b7a2>] bus_add_device+0x72/0xb4
[<c022a0e0>] device_add+0xd0/0x108
[<c01f4864>] pci_bus_add_devices+0x50/0x300
[<c026186d>] cb_alloc+0xad/0xc8
[<c025e802>] socket_insert+0x56/0xa4
[<c025ea11>] socket_detect_change+0x69/0x70
[<c025ec07>] pccardd+0x1ef/0x2a0
[<c025ea18>] pccardd+0x0/0x2a0
[<c011ae7c>] default_wake_function+0x0/0x20
[<c011ae7c>] default_wake_function+0x0/0x20
[<c01070c5>] kernel_thread_helper+0x5/0xc
Code: 83 3b 00 75 a0 83 7b 08 00 75 9a 83 7b 14 00 75 94 31 c0 8d
>>EIP; c01f7da3 <pci_match_device+73/90> <=====
>>ebx; c03f8e98 <agp_intel_pci_table+0/38>
>>edx; c036f238 <log_wait+18/20>
>>esi; c748b004 <_end+7066900/3fbd98fc>
>>edi; c748b004 <_end+7066900/3fbd98fc>
>>ebp; cf5fde94 <_end+f1d9790/3fbd98fc>
>>esp; cf5fde84 <_end+f1d9780/3fbd98fc>
Trace; c01f84fb <pci_bus_match+5f/2b0>
Trace; c022b599 <bus_match+21/64>
Trace; c022b62a <device_attach+4e/70>
Trace; c022b7a2 <bus_add_device+72/b4>
Trace; c022a0e0 <device_add+d0/108>
Trace; c01f4864 <pci_bus_add_devices+50/300>
Trace; c026186d <cb_alloc+ad/c8>
Trace; c025e802 <socket_insert+56/a4>
Trace; c025ea11 <socket_detect_change+69/70>
Trace; c025ec07 <pccardd+1ef/2a0>
Trace; c025ea18 <pccardd+0/2a0>
Trace; c011ae7c <default_wake_function+0/20>
Trace; c011ae7c <default_wake_function+0/20>
Trace; c01070c5 <kernel_thread_helper+5/c>
Code; c01f7da3 <pci_match_device+73/90>
00000000 <_EIP>:
Code; c01f7da3 <pci_match_device+73/90> <=====
0: 83 3b 00 cmpl $0x0,(%ebx) <=====
Code; c01f7da6 <pci_match_device+76/90>
3: 75 a0 jne ffffffa5 <_EIP+0xffffffa5> c01f7d48 <pci_match_device+18/90>
Code; c01f7da8 <pci_match_device+78/90>
5: 83 7b 08 00 cmpl $0x0,0x8(%ebx)
Code; c01f7dac <pci_match_device+7c/90>
9: 75 9a jne ffffffa5 <_EIP+0xffffffa5> c01f7d48 <pci_match_device+18/90>
Code; c01f7dae <pci_match_device+7e/90>
b: 83 7b 14 00 cmpl $0x0,0x14(%ebx)
Code; c01f7db2 <pci_match_device+82/90>
f: 75 94 jne ffffffa5 <_EIP+0xffffffa5> c01f7d48 <pci_match_device+18/90>
Code; c01f7db4 <pci_match_device+84/90>
11: 31 c0 xor %eax,%eax
Code; c01f7db6 <pci_match_device+86/90>
13: 8d 00 lea (%eax),%eax
1 warning and 1 error issued. Results may not be reliable.
next prev parent reply other threads:[~2003-07-29 2:20 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-07-28 17:18 OOPS 2.6.0-test2, modprobe i810fb Pavel Rabel
2003-07-29 2:19 ` S. Anderson [this message]
2003-07-29 3:26 ` Andrew Morton
2003-07-29 5:18 ` S. Anderson
2003-07-29 5:32 ` Andrew Morton
2003-07-30 2:56 ` Bill Davidsen
2003-07-30 20:56 ` Michael Driscoll
2003-07-29 5:59 ` Andrew Morton
2003-07-29 7:24 ` S. Anderson
2003-07-29 7:54 ` Andrew Morton
2003-07-29 8:18 ` S. Anderson
2003-07-29 12:00 ` Alan Cox
2003-07-29 19:59 ` Andrew Morton
2003-07-29 23:04 ` S. Anderson
2003-07-29 9:34 ` Pavel Rabel
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=20030728201954.A16103@xmission.xmission.com \
--to=sa@xmission.com \
--cc=linux-kernel@vger.kernel.org \
--cc=pavel@xal.co.uk \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.