Port-vax archive

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

KA46/48 vsbus DMA fallthrough (was: Re: VAX 4000/200 panic with 6.1.5)



Am 08.05.2015 um 23:59 schrieb Christos Zoulas:
But still it should not jump to NULL...

While plowing through the code regarding this, I saw something else that could be a missing break in a case statement in vsbus.c, vsbus_attach().

At least there is no /* FALLTHROUGH */ (anymore) as would be required by KNF. Change vsbus.c r1.23 -> r1.24 looks strange... If this turns out to be an issue, VAXstations 4000 VLC and m60 (KA48 and KA46) would be affected.
Are there any known problems with those machines?

I have a VS 4000/60, too, and could test this, but wouldn't know how to trigger a possible problem.


	switch (vax_boardtype) {
#if VAX49 || VAX53
	case VAX_BTYP_53:
	case VAX_BTYP_49:
		sc->sc_vsregs = vax_map_physmem(VS_REGS_KA49, 1);
		sc->sc_intreq = (char *)sc->sc_vsregs + 12;
		sc->sc_intclr = (char *)sc->sc_vsregs + 12;
		sc->sc_intmsk = (char *)sc->sc_vsregs + 8;
		vsbus_dma_init(sc, 8192);
		break;
#endif

#if VAX46 || VAX48
	case VAX_BTYP_48:
	case VAX_BTYP_46:
		sc->sc_vsregs = vax_map_physmem(VS_REGS, 1);
		sc->sc_intreq = (char *)sc->sc_vsregs + 15;
		sc->sc_intclr = (char *)sc->sc_vsregs + 15;
		sc->sc_intmsk = (char *)sc->sc_vsregs + 12;
		vsbus_dma_init(sc, 32768);
#endif

	default:
		sc->sc_vsregs = vax_map_physmem(VS_REGS, 1);
		sc->sc_intreq = (char *)sc->sc_vsregs + 15;
		sc->sc_intclr = (char *)sc->sc_vsregs + 15;
		sc->sc_intmsk = (char *)sc->sc_vsregs + 12;
[...]


Home | Main Index | Thread Index | Old Index