Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/dev/pci Remove VIRTIO_F_PCI_INTR_SOFTINT support for mul...
details: https://anonhg.NetBSD.org/src/rev/83cb775b2b46
branches: trunk
changeset: 972376:83cb775b2b46
user: yamaguchi <yamaguchi%NetBSD.org@localhost>
date: Mon May 25 07:29:52 2020 +0000
description:
Remove VIRTIO_F_PCI_INTR_SOFTINT support for multiqueue
The functionality is no longer used by obsolating VIOIF_SOFTINT_INTR.
diffstat:
sys/dev/pci/virtio.c | 64 +++--------------------------------------------
sys/dev/pci/virtio_pci.c | 15 +++--------
sys/dev/pci/virtiovar.h | 3 +-
3 files changed, 10 insertions(+), 72 deletions(-)
diffs (160 lines):
diff -r 17a4716875d1 -r 83cb775b2b46 sys/dev/pci/virtio.c
--- a/sys/dev/pci/virtio.c Mon May 25 07:20:14 2020 +0000
+++ b/sys/dev/pci/virtio.c Mon May 25 07:29:52 2020 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: virtio.c,v 1.38 2019/10/01 18:00:08 chs Exp $ */
+/* $NetBSD: virtio.c,v 1.39 2020/05/25 07:29:52 yamaguchi Exp $ */
/*
* Copyright (c) 2010 Minoura Makoto.
@@ -26,7 +26,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: virtio.c,v 1.38 2019/10/01 18:00:08 chs Exp $");
+__KERNEL_RCSID(0, "$NetBSD: virtio.c,v 1.39 2020/05/25 07:29:52 yamaguchi Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -235,54 +235,6 @@
ops);
}
-static void
-virtio_vq_soft_intr(void *arg)
-{
- struct virtqueue *vq = arg;
-
- KASSERT(vq->vq_intrhand != NULL);
-
- (vq->vq_intrhand)(vq);
-}
-
-static int
-virtio_vq_softint_establish(struct virtio_softc *sc)
-{
- struct virtqueue *vq;
- int qid;
- u_int flags;
-
- flags = SOFTINT_NET;
- if (sc->sc_flags & VIRTIO_F_PCI_INTR_MPSAFE)
- flags |= SOFTINT_MPSAFE;
-
- for (qid = 0; qid < sc->sc_nvqs; qid++) {
- vq = &sc->sc_vqs[qid];
- vq->vq_soft_ih =
- softint_establish(flags, virtio_vq_soft_intr, vq);
- if (vq->vq_soft_ih == NULL)
- return -1;
- }
-
- return 0;
-}
-
-static void
-virtio_vq_softint_disestablish(struct virtio_softc *sc)
-{
- struct virtqueue *vq;
- int qid;
-
- for (qid = 0; qid < sc->sc_nvqs; qid++) {
- vq = &sc->sc_vqs[qid];
- if (vq->vq_soft_ih == NULL)
- continue;
-
- softint_disestablish(vq->vq_soft_ih);
- vq->vq_soft_ih = NULL;
- }
-}
-
/*
* Can be used as sc_intrhand.
*/
@@ -910,6 +862,9 @@
virtio_child_attach_set_vqs(struct virtio_softc *sc,
struct virtqueue *vqs, int nvq_pairs)
{
+
+ KASSERT(nvq_pairs == 1 ||
+ (sc->sc_flags & VIRTIO_F_PCI_INTR_SOFTINT) == 0);
if (nvq_pairs > 1)
sc->sc_child_mq = true;
@@ -940,13 +895,6 @@
"failed to establish soft interrupt\n");
goto fail;
}
-
- if (sc->sc_child_mq) {
- r = virtio_vq_softint_establish(sc);
- aprint_error_dev(sc->sc_dev,
- "failed to establish softint interrupt\n");
- goto fail;
- }
}
virtio_set_status(sc, VIRTIO_CONFIG_DEVICE_STATUS_DRIVER_OK);
@@ -958,8 +906,6 @@
sc->sc_soft_ih = NULL;
}
- virtio_vq_softint_disestablish(sc);
-
virtio_set_status(sc, VIRTIO_CONFIG_DEVICE_STATUS_FAILED);
return 1;
}
diff -r 17a4716875d1 -r 83cb775b2b46 sys/dev/pci/virtio_pci.c
--- a/sys/dev/pci/virtio_pci.c Mon May 25 07:20:14 2020 +0000
+++ b/sys/dev/pci/virtio_pci.c Mon May 25 07:29:52 2020 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: virtio_pci.c,v 1.7 2019/01/27 02:08:42 pgoyette Exp $ */
+/* $NetBSD: virtio_pci.c,v 1.8 2020/05/25 07:29:52 yamaguchi Exp $ */
/*
* Copyright (c) 2010 Minoura Makoto.
@@ -26,7 +26,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: virtio_pci.c,v 1.7 2019/01/27 02:08:42 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: virtio_pci.c,v 1.8 2020/05/25 07:29:52 yamaguchi Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -801,16 +801,9 @@
virtio_pci_msix_vq_intr(void *arg)
{
struct virtqueue *vq = arg;
- int r = 0;
- if (vq->vq_intrhand != NULL) {
- if (vq->vq_soft_ih)
- softint_schedule(vq->vq_soft_ih);
- else
- r |= vq->vq_intrhand(vq);
- }
-
- return r;
+ KASSERT(vq->vq_intrhand != NULL);
+ return vq->vq_intrhand(vq);
}
static int
diff -r 17a4716875d1 -r 83cb775b2b46 sys/dev/pci/virtiovar.h
--- a/sys/dev/pci/virtiovar.h Mon May 25 07:20:14 2020 +0000
+++ b/sys/dev/pci/virtiovar.h Mon May 25 07:29:52 2020 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: virtiovar.h,v 1.13 2019/01/14 14:55:37 yamaguchi Exp $ */
+/* $NetBSD: virtiovar.h,v 1.14 2020/05/25 07:29:52 yamaguchi Exp $ */
/*
* Copyright (c) 2010 Minoura Makoto.
@@ -117,7 +117,6 @@
/* interrupt handler */
int (*vq_done)(struct virtqueue*);
void *vq_done_ctx;
- void *vq_soft_ih;
int (*vq_intrhand)(struct virtqueue*);
};
Home |
Main Index |
Thread Index |
Old Index