Disable "fast trap" handlers which invoke software interrupts

in sparc/amd7930intr.s and sparc/bsd_fdintr.s until they are
rewritten to adapt new MI softint(9) API.

No particular comments on PR port-sparc/42192, but
this fixes timeout problem on floppy access on my SPARCstation 1+.

XXX: floppy support on sun4m seems to have another problem (data overrun).
This commit is contained in:
tsutsui 2009-12-19 10:34:18 +00:00
parent ba6eca2794
commit 72c76c73d8
2 changed files with 18 additions and 6 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: audioamd.c,v 1.24 2009/09/17 12:38:11 tsutsui Exp $ */
/* $NetBSD: audioamd.c,v 1.25 2009/12/19 10:34:18 tsutsui Exp $ */
/* NetBSD: am7930_sparc.c,v 1.44 1999/03/14 22:29:00 jonathan Exp */
/*
@ -32,7 +32,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: audioamd.c,v 1.24 2009/09/17 12:38:11 tsutsui Exp $");
__KERNEL_RCSID(0, "$NetBSD: audioamd.c,v 1.25 2009/12/19 10:34:18 tsutsui Exp $");
#include "audio.h"
#if NAUDIO > 0
@ -308,7 +308,13 @@ audioamd_attach(struct audioamd_softc *sc, int pri)
sc->sc_au.au_bt = sc->sc_bt;
sc->sc_au.au_bh = sc->sc_bh;
(void)bus_intr_establish2(sc->sc_bt, pri, IPL_HIGH,
am7930hwintr, sc, amd7930_trap);
am7930hwintr, sc,
#ifdef notyet /* XXX amd7930intr.s needs to be fixed for MI softint(9) */
amd7930_trap
#else
NULL
#endif
);
sc->sc_sicookie = softint_establish(SOFTINT_SERIAL, am7930swintr, sc);
if (sc->sc_sicookie == NULL) {

View File

@ -1,4 +1,4 @@
/* $NetBSD: fd.c,v 1.146 2009/05/25 19:22:53 jnemeth Exp $ */
/* $NetBSD: fd.c,v 1.147 2009/12/19 10:34:18 tsutsui Exp $ */
/*-
* Copyright (c) 2000 The NetBSD Foundation, Inc.
@ -101,7 +101,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: fd.c,v 1.146 2009/05/25 19:22:53 jnemeth Exp $");
__KERNEL_RCSID(0, "$NetBSD: fd.c,v 1.147 2009/12/19 10:34:18 tsutsui Exp $");
#include "opt_ddb.h"
#include "opt_md.h"
@ -639,7 +639,13 @@ fdcattach(struct fdc_softc *fdc, int pri)
fdciop = &fdc->sc_io;
if (bus_intr_establish2(fdc->sc_bustag, pri, 0,
fdc_c_hwintr, fdc, fdchwintr) == NULL) {
fdc_c_hwintr, fdc,
#ifdef notyet /* XXX bsd_fdintr.s needs to be fixed for MI softint(9) */
fdchwintr
#else
NULL
#endif
) == NULL) {
printf("\n%s: cannot register interrupt handler\n",
fdc->sc_dev.dv_xname);
return (-1);