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

From: Byron Stanoszek (gandalf@winds.org)
Date: Thu Aug 03 2000 - 23:09:54 EST


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


- 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