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, 24 Aug 2023 20:52:43 +0200
Martin Husemann <martin%duskware.de@localhost> wrote:
> 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.
No idea, but something caught my eye.
ncr53c9x_free_ecb() and ncr53c9x_get_ecb() do mess with directly with
spl. I don't think that's necessary since they are called with sc_lock
held which should already have raised the IPL to IPL_BIO.
This of course should not matter -- unless there is some bug that
makes splx() followed by mutex_exit() lower the IPL too much.
Home |
Main Index |
Thread Index |
Old Index