Port-sparc64 archive

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

Re: 10_BETA panic on Ultra 1



On Thu, Aug 24, 2023 at 06:56:38PM +0200, Martin Husemann wrote:
> entropy_softintr(0, 102068040, ff070000000001, 0, 200, 101ed4090) at netbsd:entr
> opy_softintr+0x64
> softint_dispatch(13b07a8, 4, 137d288, 101bd1140, 1a2178178, 1a2178540) at netbsd
> :softint_dispatch+0x120
> softint_fastintr(101bd1140, 4, ff070000000001, 101eb0c90, 101eb0c90, 101e9c0e0) 
> at netbsd:softint_fastintr+0x84
> ncr53c9x_done(f005eaf0, 1509118, fffb1c88, 1, fffb1b88, 0) at netbsd:ncr53c9x_do
> ne+0x13c

There is (at least one) frame missing here, ncr53c9x_done calls scsipi_done:

(gdb) list *(ncr53c9x_done+0x13c)
0x107bb3c is in ncr53c9x_done (../../../../dev/ic/ncr53c9x.c:1284).
1279            }
1280    
1281            ncr53c9x_free_ecb(sc, ecb);
1282            ti->cmds++;
1283            mutex_exit(&sc->sc_lock);
1284            scsipi_done(xs);
1285            mutex_enter(&sc->sc_lock);
1286    }

The interrupt handler is established with IPL_BIO in esp_sbus.c:505

        /* Establish interrupt channel */
        bus_intr_establish(esc->sc_bustag, esc->sc_pri, IPL_BIO,
            ncr53c9x_intr, sc);

and while that has not returned, curcpu()->ci_idepth will indicate
we are in interrupt context.

But I don't see how we get from scsipi_done to softint_fastintr.

Martin


Home | Main Index | Thread Index | Old Index