sparc64 panic in rman_set_start
M. Warner Losh
imp at bsdimp.com
Tue Sep 27 22:56:55 PDT 2005
In message: <20050928041341.GA29527 at xor.obsecurity.org>
Kris Kennaway <kris at obsecurity.org> writes:
: Since updating this e4500 from a few days ago it panics at boot with:
:
: -- fast data access mmu miss tar=0 %o7=0xc00ffdbc --
: rman_set_start() at rman_set_start+0x8
: puc_sbus_attach() at puc_sbus_attach+0x74
: device_attach() at device_attach+0x60
: device_probe_and_attach() at device_probe_and_attach+0x118
: bus_generic_attach() at bus_generic_attach+0x10
: fhc_attach() at fhc_attach+0x45c
: fhc_central_attach() at fhc_central_attach+0x134
: device_attach() at device_attach+0x60
: device_probe_and_attach() at device_probe_and_attach+0x118
: bus_generic_attach() at bus_generic_attach+0x10
: central_attach() at central_attach+0x234
: device_attach() at device_attach+0x60
: device_probe_and_attach() at device_probe_and_attach+0x118
: bus_generic_attach() at bus_generic_attach+0x10
: nexus_attach() at nexus_attach+0x23c
: device_attach() at device_attach+0x60
: device_probe_and_attach() at device_probe_and_attach+0x118
: root_bus_configure() at root_bus_configure+0x18
: configure() at configure+0x4
: mi_startup() at mi_startup+0x12c
: btext() at btext+0x34
:
: Can someone please fix this?
I think it is phk's changes. puc allocates a struct resource, but not
the private part, so the rman_set_* won't work:
rle->res = malloc(sizeof(struct resource), M_DEVBUF,
M_WAITOK | M_ZERO);
if (rle->res == NULL) {
free(pdev, M_DEVBUF);
return (ENOMEM);
}
rman_set_start(rle->res, rman_get_start(res) +
sc->sc_desc.ports[i].offset);
rman_set_end(rle->res, rman_get_start(rle->res) +
ressz - 1);
Warner
More information about the freebsd-sparc64
mailing list