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