Re: OOPS in agpgart (2.4.13, 2.4.15pre7)

From: Stephan von Krawczynski (skraw@ithnet.com)
Date: Fri Nov 23 2001 - 12:00:19 EST


On Fri, 23 Nov 2001 18:30:01 +0100
Didier Moens <Didier.Moens@dmb.rug.ac.be> wrote:

>
> Hi all,
>
>
> This is my first oops report on lkml, so please be gentle with me. :)
>
>
> Hardware : IBM A30p (P3-1.2 GHz) with Intel i830 and ATI M6 Radeon
> Mobility LY
>
>
> Symptoms : oops when modprobing agpgart, both in the RedHat 2.4.13-0.6
> kernel and in a vanilla 2.4.15pre7.

Hello,

could be that this code from /drivers/char/agp/agpgart_be.c is bogus:

                case PCI_DEVICE_ID_INTEL_830_M_0:
                        i810_dev = pci_find_device(PCI_VENDOR_ID_INTEL,
                                                                          
PCI_DEVICE_ID_INTEL_830_M_1,
                                                                          
NULL);
===> if(PCI_FUNC(i810_dev->devfn) != 0) {
                                i810_dev = pci_find_device(PCI_VENDOR_ID_INTEL,
                                                                               
   PCI_DEVICE_ID_INTEL_830_M_1,
                                                                               
   i810_dev);
                        }

                        if (i810_dev == NULL) {
                                printk(KERN_ERR PFX "Detected an "
                                           "Intel 830M, but could not find the"
                                           " secondary device.\n");
                                agp_bridge.type = NOT_SUPPORTED;
                                return -ENODEV;
                        }
                        printk(KERN_INFO PFX "Detected an Intel "
                                   "830M Chipset.\n");
                        agp_bridge.type = INTEL_I810;
                        return intel_i830_setup(i810_dev);

Try this patch:

--- agpgart_be.c-orig Fri Nov 23 17:57:24 2001
+++ agpgart_be.c Fri Nov 23 17:55:24 2001
@@ -3879,7 +3879,7 @@
                        i810_dev = pci_find_device(PCI_VENDOR_ID_INTEL,
                                                                          
PCI_DEVICE_ID_INTEL_830_M_1,
                                                                          
NULL);
+ if(i810_dev && ( PCI_FUNC(i810_dev->devfn) != 0) ) {
- if(PCI_FUNC(i810_dev->devfn) != 0) {
                                i810_dev = pci_find_device(PCI_VENDOR_ID_INTEL,
                                                                               
   PCI_DEVICE_ID_INTEL_830_M_1,
                                                                               
   i810_dev);

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



This archive was generated by hypermail 2b29 : Fri Nov 23 2001 - 21:00:34 EST