Source-Changes-D archive

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

Re: CVS commit: src/sys/arch



On 13.04.12 19:58, Nicolas Joly wrote:
> On Fri, Apr 13, 2012 at 01:11:17PM +0000, Christoph Egger wrote:
>> Module Name: src
>> Committed By:        cegger
>> Date:                Fri Apr 13 13:11:17 UTC 2012
>>
>> Modified Files:
>>      src/sys/arch/amd64/conf: GENERIC XEN3_DOM0
>>      src/sys/arch/i386/conf: ALL GENERIC XEN3_DOM0
>>      src/sys/arch/x86/pci: amdtemp.c files.pci
>> Added Files:
>>      src/sys/arch/x86/pci: amdnb_misc.c
>>
>> Log Message:
>> Replace amdtempbus with amdnb_miscbus.
>> This allows us to have independent drivers on the same device (northbridge 
>> f3)
>> each coming with a certain functionality/feature.
>> This way we do not need to mess with amdtemp(4) to utilize other features.
> 
> Hi Christoph,
> 
> This change seems incomplete. You removed the amdtempbus definition
> from files.pci but a few uses remains :
> 
> njoly@lynche [arch/x86]> pwd
> /local/src/NetBSD/src/sys/arch/x86
> njoly@lynche [arch/x86]> grep amdtempbus **/*
> pci/pchb.c:static void  pchb_amdtempbus_configure(struct pchb_softc
> *);
> pci/pchb.c:     pchb_amdtempbus_configure(sc);
> pci/pchb.c:     if (ifattr_match(ifattr,"amdtempbus"))
> pci/pchb.c:             pchb_amdtempbus_configure(sc);
> pci/pchb.c:     if (sc->sc_amdtempbus == child) {
> pci/pchb.c:             sc->sc_amdtempbus = NULL;
> pci/pchb.c:pchb_amdtempbus_configure(struct pchb_softc *sc)
> pci/pchb.c:     if (sc->sc_amdtempbus != NULL)
> pci/pchb.c:     sc->sc_amdtempbus =
> config_found_ia(sc->sc_dev,"amdtempbus",&sc->sc_pa,NULL);
> pci/pchbvar.h:  device_t sc_amdtempbus;

oh, I wasn't aware of that at all. Actually I am tempted
to revert rev 1.32 of pci/pchb.c.
But I want to test that change on monday first before
I commit that then.


> And this makes my kernel panic as soon as it tries to search for
> childs in pchb(4) configuration :
> 
> [...]
> ipmi0 at mainbus0
> pci0 at mainbus0 bus 0: configuration mode 1
> pchb0 at pci0 dev 0 function 0: ATI Technologies RD890 North Bridge Dual Slot 
> 2x16 GFX (rev. 0x02)
> panic: kernel diagnostic assertion "!ifattr || 
> cfdriver_get_iattr(parent->dv_cfdriver,ifattr)"failed: file 
> "/local/src/NetBSD/src/sys/kern/subr_autoconf.c",line 945 
> fatal breakpoint trap in supervisor mode
> trap type 1 code 0 rip ffffffff80254b25 cs 8 rflags 246 cr2  0 cpl 8 rsp 
> ffffffff8133c830
> Stopped in pid 0.1 (system) at  netbsd:breakpoint+0x5:  leave
> db{0}> bt
> breakpoint() at netbsd:breakpoint+0x5
> vpanic() at netbsd:vpanic+0x1f2
> kern_assert() at netbsd:kern_assert+0x48
> config_search_loc() at netbsd:config_search_loc+0x15d
> config_found_sm_loc() at netbsd:config_found_sm_loc+0x2b
> pchbattach() at netbsd:pchbattach+0x248
> config_attach_loc() at netbsd:config_attach_loc+0x182
> pci_probe_device() at netbsd:pci_probe_device+0x4a6
> pci_enumerate_bus() at netbsd:pci_enumerate_bus+0x189
> pcirescan() at netbsd:pcirescan+0x47
> pciattach() at netbsd:pciattach+0x196
> config_attach_loc() at netbsd:config_attach_loc+0x182
> mp_pci_scan() at netbsd:mp_pci_scan+0xa4
> mainbus_attach() at netbsd:mainbus_attach+0x35e
> config_attach_loc() at netbsd:config_attach_loc+0x182
> cpu_configure() at netbsd:cpu_configure+0x26
> main() at netbsd:main+0x2b0

Yes, I got exactly the same panic and was wondering whether
that KASSERT is wrong or not. cfdriver_get_iattr() returns NULL.
Removing the KASSERT makes the machine boot for me and things
continue to work as expected.

Christoph


Home | Main Index | Thread Index | Old Index