Re: [PATCH] agpgart oops & chipset support, patch against 2.4.0-test6-pre2

From: Jeff Hartmann (jhartmann@valinux.com)
Date: Fri Aug 04 2000 - 07:02:27 EST


Byron Stanoszek wrote:
>
> Hi guys. I have compiled in AGP + VIA chipset support into the kernel (not as
> a module). Well, it seems like a nasty oops appears if the agp backend code
> does not detect your card from its default list of chipsets.
>
> I have the output of the Oops in the following text, and I can determine the
> cause is most likely the variable agp_bridge.current_size is NULL on line 306
> of agpgart_be.c. However, I believe the problem is more than a quick one-liner
> fix; rather the code should not go beyond the point of detecting the card and
> returning anything significant for AGP support if the card is not valid.
>
> Of course, there's another possibility too: Default the Via chipset to the
> generic card if it can't find it, and take out the module parameter. Anyways,
> I'll leave that up to the agpgart developer(s) to decide.
>
> However, please apply the attached patch to the latest kernel that allows
> support for my Via chipset (86C686 / 8371). You'll find this in any Epox
> EP-7KXA motherboard (rev. 0.4).
>
> ---ksymoops report follows:---
>
> Unable to handle kernel NULL pointer dereference at virtual address 00000000
> c01ade02
> *pde = 00000000
> Oops: 0000
> CPU: 0
> EIP: 0010:[<c01ade02>]
> Using defaults from ksymoops -t elf32-i386 -a i386
> EFLAGS: 00010297
> eax: 00000000 ebx: c12bb400 ecx: 00000000 edx: 00000000
> esi: c028ae80 edi: c12bb420 ebp: c12bb400 esp: c1259f9c
> ds: 0018 es: 0018 ss: 0018
> Stack: c01ade5e c028ae3c c12bb43c c01b6cfb c12bb400 00000000 c028a800 c02e0388
> c02dfc60 00000001 c0faff35 c02c7788 c0295fd8 00000000 0008e000 c0296bfa
> 00000f00 c0296c3a c0107007 00000f00 c0295fd8 c0108aa8 00000000 00000078
> Call Trace: [<c01ade5e>] [<c01b6efb>] [<c01aff35>] [<c0107007>] [<c0108aa8>]
> Code: 8b 00 c3 31 c0 c3 90 8d b4 26 00 00 00 00 57 53 8b 5c 24 0c
>
> >>EIP; c01ade02 <agp_return_size+12/20> <=====
> Trace; c01ade5e <agp_copy_info+4e/70>
> Trace; c01b6efb <drm_agp_init+bb/1f0>
> Trace; c01aff35 <mga_init+115/1f0>
> Trace; c0107007 <init+7/110>
> Trace; c0108aa8 <kernel_thread+28/40>
> Code; c01ade02 <agp_return_size+12/20>
> 00000000 <_EIP>:
> Code; c01ade02 <agp_return_size+12/20> <=====
> 0: 8b 00 mov (%eax),%eax <=====
> Code; c01ade04 <agp_return_size+14/20>
> 2: c3 ret
> Code; c01ade05 <agp_return_size+15/20>
> 3: 31 c0 xor %eax,%eax
> Code; c01ade07 <agp_return_size+17/20>
> 5: c3 ret
> Code; c01ade08 <agp_return_size+18/20>
> 6: 90 nop
> Code; c01ade09 <agp_return_size+19/20>
> 7: 8d b4 26 00 00 00 00 lea 0x0(%esi,1),%esi
> Code; c01ade10 <agp_copy_info+0/70>
> e: 57 push %edi
> Code; c01ade11 <agp_copy_info+1/70>
> f: 53 push %ebx
> Code; c01ade12 <agp_copy_info+2/70>
> 10: 8b 5c 24 0c mov 0xc(%esp,1),%ebx
>
> Kernel panic: Attempted to kill init!
>
> --
> Byron Stanoszek Ph: (330) 644-3059
> Systems Programmer Fax: (330) 644-8110
> Commercial Timesharing Inc. Email: bstanoszek@comtime.com
>
> ------------------------------------------------------------------------
> Name: agp-via.patch
> agp-via.patch Type: Plain Text (TEXT/PLAIN)
> Encoding: BASE64

I'll look at this, it looks like we need to setup a check for null in
agp_copy_info when built into the kernel.

-Jeff

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Mon Aug 07 2000 - 21:00:12 EST