Re: sparc64 panic in rman_set_start

From: M. Warner Losh <imp_at_bsdimp.com>
Date: Tue, 27 Sep 2005 23:56:45 -0600 (MDT)
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
Received on Wed Sep 28 2005 - 03:56:55 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:44 UTC