2001-10-16 09:09:17

by Jan-Benedict Glaw

[permalink] [raw]
Subject: Oops while inserting sym53c8xx.o

Hi!

I received an Oops while inserting the sym53c8xx.o module. Machine is
the famous Tyan Dual-Athlon board, 2x 1G4HZ Athlon, 1GB RAM:

ksymoops 2.4.3 on i686 2.4.13-pre3. Options used
-v /boot/vmlinux-2.4.13-pre3--00 (specified)
-k /proc/ksyms (default)
-l /proc/modules (default)
-o /lib/modules/2.4.13-pre3/ (default)
-m /boot/System.map (specified)

Unable to handle kernel NULL pointer dereference at virtual address 0000000f
f8980d9f
*pde = 00000000
Oops: 0000
CPU: 0
EIP: 0010:[<f8980d9f>] Not tainted
Using defaults from ksymoops -t elf32-i386 -a i386
EFLAGS: 00010246
eax: 00000002 ebx: f8986654 ecx: 00000200 edx: 00000001
esi: 00000000 edi: 00000000 ebp: f793bbac esp: f793bb78
ds: 0018 es: 0018 ss: 0018
Process modprobe (pid: 51, stackpage=f793b000)
Stack: 00000000 f791c000 f7df9800 00000000 e8008800 00000010 f7df9800 00010001
40100200 00070200 00000000 e8008800 00001000 f791c000 f8980a04 f89867a0
f7df9800 f791c000 f89867a0 00000000 00000002 0000e824 f8982fde f793bd58
Call Trace: [<f8980a04>] [<f89867a0>] [<f89867a0>] [<f8982fde>] [<c01145a7>]
[<c01143b0>] [<c012c192>] [<c012c192>] [<c012d450>] [<c012d492>] [<c010765c>]
[<c022392e>] [<c01637bc>] [<c01647f5>] [<c0163eb0>] [<c013974b>] [<c0223bca>]
[<c0223d46>] [<c012b924>] [<c012ba1f>] [<c012bbf1>] [<c013974b>] [<c0223bca>]
[<c0223d46>] [<c012b924>] [<c012ba1f>] [<c01abebe>] [<f89867a0>] [<f89867a0>]
[<f897806a>] [<c013974b>] [<f897806a>] [<c01ac9bd>] [<f89867a0>] [<f8982a86>]
[<f89867a0>] [<c011b05d>] [<f8978060>] [<c010756b>]
Code: f6 47 0f 01 74 27 a1 b8 4a 98 f8 8b 15 bc 4a 98 f8 52 50 8b

>>EIP; f8980d9e <[sym53c8xx]sym53c8xx_pci_init+1ae/520> <=====
Trace; f8980a04 <[sym53c8xx]sym53c8xx_detect+184/370>
Trace; f89867a0 <[sym53c8xx]driver_template+0/7e>
Trace; f89867a0 <[sym53c8xx]driver_template+0/7e>
Trace; f8982fde <[sym53c8xx].rodata.start+45e/223e>
Trace; c01145a6 <do_page_fault+1f6/550>
Trace; c01143b0 <do_page_fault+0/550>
Trace; c012c192 <__vma_link+62/b0>
Trace; c012c192 <__vma_link+62/b0>
Trace; c012d450 <do_brk+1e0/260>
Trace; c012d492 <do_brk+222/260>
Trace; c010765c <error_code+34/3c>
Trace; c022392e <clear_user+2e/40>
Trace; c01637bc <padzero+1c/20>
Trace; c01647f4 <load_elf_binary+944/aa0>
Trace; c0163eb0 <load_elf_binary+0/aa0>
Trace; c013974a <__alloc_pages+4a/1c0>
Trace; c0223bca <fast_clear_page+a/50>
Trace; c0223d46 <mmx_clear_page+36/40>
Trace; c012b924 <do_anonymous_page+d4/1a0>
Trace; c012ba1e <do_no_page+2e/160>
Trace; c012bbf0 <handle_mm_fault+a0/150>
Trace; c013974a <__alloc_pages+4a/1c0>
Trace; c0223bca <fast_clear_page+a/50>
Trace; c0223d46 <mmx_clear_page+36/40>
Trace; c012b924 <do_anonymous_page+d4/1a0>
Trace; c012ba1e <do_no_page+2e/160>
Trace; c01abebe <scsi_register_host+fe/380>
Trace; f89867a0 <[sym53c8xx]driver_template+0/7e>
Trace; f89867a0 <[sym53c8xx]driver_template+0/7e>
Trace; f897806a <[sym53c8xx]pci_get_base_cookie+a/20>
Trace; c013974a <__alloc_pages+4a/1c0>
Trace; f897806a <[sym53c8xx]pci_get_base_cookie+a/20>
Trace; c01ac9bc <scsi_register_module+2c/60>
Trace; f89867a0 <[sym53c8xx]driver_template+0/7e>
Trace; f8982a86 <[sym53c8xx]init_this_scsi_driver+16/40>
Trace; f89867a0 <[sym53c8xx]driver_template+0/7e>
Trace; c011b05c <sys_init_module+55c/670>
Trace; f8978060 <[sym53c8xx]pci_get_base_cookie+0/20>
Trace; c010756a <system_call+32/38>
Code; f8980d9e <[sym53c8xx]sym53c8xx_pci_init+1ae/520>
00000000 <_EIP>:
Code; f8980d9e <[sym53c8xx]sym53c8xx_pci_init+1ae/520> <=====
0: f6 47 0f 01 testb $0x1,0xf(%edi) <=====
Code; f8980da2 <[sym53c8xx]sym53c8xx_pci_init+1b2/520>
4: 74 27 je 2d <_EIP+0x2d> f8980dca <[sym53c8xx]sym53c8xx_pci_init+1da/520>
Code; f8980da4 <[sym53c8xx]sym53c8xx_pci_init+1b4/520>
6: a1 b8 4a 98 f8 mov 0xf8984ab8,%eax
Code; f8980da8 <[sym53c8xx]sym53c8xx_pci_init+1b8/520>
b: 8b 15 bc 4a 98 f8 mov 0xf8984abc,%edx
Code; f8980dae <[sym53c8xx]sym53c8xx_pci_init+1be/520>
11: 52 push %edx
Code; f8980db0 <[sym53c8xx]sym53c8xx_pci_init+1c0/520>
12: 50 push %eax
Code; f8980db0 <[sym53c8xx]sym53c8xx_pci_init+1c0/520>
13: 8b 00 mov (%eax),%eax


MfG, JBG

--
Jan-Benedict Glaw . [email protected] . +49-172-7608481


2001-10-16 09:28:51

by David Miller

[permalink] [raw]
Subject: Re: Oops while inserting sym53c8xx.o


This should fix it, Linux please apply.

--- drivers/scsi/sym53c8xx.c.~1~ Mon Oct 8 21:04:56 2001
+++ drivers/scsi/sym53c8xx.c Tue Oct 16 02:27:44 2001
@@ -13168,14 +13168,14 @@
** in the size field. We use normal 32-bit PCI addresses for
** descriptors.
*/
- if (chip->features & FE_DAC) {
+ if (chip && (chip->features & FE_DAC)) {
if (pci_set_dma_mask(pdev, (u64) 0xffffffffff))
chip->features &= ~FE_DAC_IN_USE;
else
chip->features |= FE_DAC_IN_USE;
}

- if (!(chip->features & FE_DAC_IN_USE)) {
+ if (chip && !(chip->features & FE_DAC_IN_USE)) {
if (pci_set_dma_mask(pdev, (u64) 0xffffffff)) {
printk(KERN_WARNING NAME53C8XX
"32 BIT PCI BUS DMA ADDRESSING NOT SUPPORTED\n");

2001-10-16 13:33:05

by Jan-Benedict Glaw

[permalink] [raw]
Subject: Re: Oops while inserting sym53c8xx.o

On Tue, 2001-10-16 02:29:02 -0700, David S. Miller <[email protected]>
wrote in message <[email protected]>:
>
> This should fix it, Linux please apply.

[...]

It does, thanks a lot!

MfG, JBG

--
Jan-Benedict Glaw . [email protected] . +49-172-7608481

2001-10-16 19:27:40

by Jan-Benedict Glaw

[permalink] [raw]
Subject: Re: Oops while inserting sym53c8xx.o

On Tue, 2001-10-16 21:16:30 +0200, G?rard Roudier <[email protected]>
wrote in message <20011016205934.M356-100000@gerard>:
> sym-2.1.15 is available for download from ftp.tux.org. If you have time
> for giving it a try on some large memory machine, you may let me know
> the results.

I could test it on my dual Athlon, currently 1GB mem. However, I'll
upgrade these days to 1G6B... Unfortunately, my SYM53c8xx based
board is 32bit PCI, not 64bit... That will matter, won't it?

MfG, JBG

--
Jan-Benedict Glaw . [email protected] . +49-172-7608481

2001-10-16 19:22:00

by Gérard Roudier

[permalink] [raw]
Subject: Re: Oops while inserting sym53c8xx.o


Hi David,

I missed this one, but, btw, it wasn't from me as you know. :-)
OTOH, I use sym-2 instead since months. :)

Btw, sym-2 has a new PCI 64 bit DMA addressing mode using 16 segment
registers. 4GB * 16 = 64 GB. The change is simple and can be back-ported
to sym-1. It also support 40 bit addressing, but not both at the same
time (compilation optionnable).

Note that I would rather prefer to push sym-2 to kernel main-stream. This
is planned, but condition was to prove sym-2 in kernel 2.5 first, but
kernel 2.5 is very long to come.

The new 'up to 64 GB addressing DMA support' has no limitation regarding
64 bit addressing and should better fit existing 64 bit machines. It is
obviously untested since, for some obscure reasons, both SUN and COMPAQ
missed to offer me a machine suitable for the testings. :-)

sym-2.1.15 is available for download from ftp.tux.org. If you have time
for giving it a try on some large memory machine, you may let me know
the results.

Bye for now,
G?rard.

PS: The enabling of the new 64 GB DMA support requires a simple define
changes in the source. You cannot miss it.

On Tue, 16 Oct 2001, David S. Miller wrote:

>
> This should fix it, Linux please apply.
>
> --- drivers/scsi/sym53c8xx.c.~1~ Mon Oct 8 21:04:56 2001
> +++ drivers/scsi/sym53c8xx.c Tue Oct 16 02:27:44 2001
> @@ -13168,14 +13168,14 @@
> ** in the size field. We use normal 32-bit PCI addresses for
> ** descriptors.
> */
> - if (chip->features & FE_DAC) {
> + if (chip && (chip->features & FE_DAC)) {
> if (pci_set_dma_mask(pdev, (u64) 0xffffffffff))
> chip->features &= ~FE_DAC_IN_USE;
> else
> chip->features |= FE_DAC_IN_USE;
> }
>
> - if (!(chip->features & FE_DAC_IN_USE)) {
> + if (chip && !(chip->features & FE_DAC_IN_USE)) {
> if (pci_set_dma_mask(pdev, (u64) 0xffffffff)) {
> printk(KERN_WARNING NAME53C8XX
> "32 BIT PCI BUS DMA ADDRESSING NOT SUPPORTED\n");
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>
>