NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

kern/37824: unaligned PCI write in agp_intel.c



>Number:         37824
>Category:       kern
>Synopsis:       unaligned PCI write in agp_intel.c
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sun Jan 20 19:05:00 +0000 2008
>Originator:     bouyer%antioche.lip6.fr@localhost
>Release:        NetBSD 4.99.49
>Organization:
>Environment:
NetBSD 4.99.49 (XEN3_DOM0) #1: Sun Jan 20 19:44:18 CET 2008
        
bouyer@rock:/dsk/l1/misc/bouyer/current/src/sys-xeni386/arch/i386/compile/XEN3_DOM0
Architecture: i386
Machine: i386
>Description:
        When booting a recent current kernel on an old dual-CPU PII system
        which an i440 chipset, I get:
        pchb0: Intel 82443BX Host Bridge/Controller (rev. 0x02)
        agp0 at pchb0panic: kernel diagnostic assertion "(reg & 0x3) == 0" 
failed: file "../../../../arch/x86/pci/pci_machdep.c", line 432
        Stopped in pid 0.1 (system) at  netbsd:breakpoint+0x4:  popl    %ebp
        db> tr
        breakpoint(c08da4ee,c0aa76b4,c0c823cc,1,c) at netbsd:breakpoint+0x4
        panic(c08ef7bc,c084e9f9,c08ecfe6,c08ecea8,1b0) at netbsd:panic+0x155
        __kernassert(c084e9f9,c08ecea8,1b0,c08ecfe6,c0c7e400) at 
netbsd:__kernassert+0x39
        pci_conf_write(c0aa7b88,80000000,91,70,c0c7e400) at 
netbsd:pci_conf_write+0x15b
        agp_intel_init(c0c05000,c0c7e400,c0aa78f8,c044bde6,0) at 
netbsd:agp_intel_init+0x13f
        agpattach(c0c05000,c0c7e400,c0aa78f4,0,c0aa78f4) at 
netbsd:agpattach+0xda
        config_attach_loc(c0c05000,c08f5710,0,c0aa78f4,c06097f0) at 
netbsd:config_attach_loc+0x156
        config_found_ia(c0c05000,c084e1f1,c0aa78f4,c06097f0,0) at 
netbsd:config_found_ia+0x32
        pchbattach(c0c8d800,c0c05000,c0aa79dc,c0aa7a18,c0aa79dc) at 
netbsd:pchbattach+0x1e5
        config_attach_loc(c0c8d800,c08f5d28,c0aa7a18,c0aa79dc,c052fa10) at 
netbsd:config_attach_loc+0x156
        pci_probe_device(c0c8d800,80000000,0,0,0) at 
netbsd:pci_probe_device+0x243
        pci_enumerate_bus(c0c8d800,c072580c,0,0,c0c50d00) at 
netbsd:pci_enumerate_bus+0x18f
        pcirescan(c0c8d800,c084e106,c072580c,c044bde6,c0c8d81c) at 
netbsd:pcirescan+0x49

        pciattach(c0c50d00,c0c8d800,c0aa7b54,0,c0aa7b54) at 
netbsd:pciattach+0x192
        [...]


        (gdb) l *(agp_intel_init+0x13f)
        0xc060bd7f is in agp_intel_init (../../../../dev/pci/agp_intel.c:271).
        266                     pci_conf_write(sc->as_pc, sc->as_tag,
        267                             AGP_INTEL_ERRSTS, 0x70);
        268             }

        indeed, AGP_INTEL_ERRSTS is 0x91


>How-To-Repeat:
        Boot a current kernel with DIAGNOSTIC on an i440-based machine
>Fix:
        workaround: disable agp at boot -c.




Home | Main Index | Thread Index | Old Index