sync with OpenBSD -current

This commit is contained in:
purplerain 2024-02-22 09:09:55 +00:00
parent 5f8da13f08
commit 1b6040b16e
Signed by: purplerain
GPG Key ID: F42C07F07E2E35B7
7 changed files with 36 additions and 23 deletions

View File

@ -1,4 +1,4 @@
.\" $OpenBSD: qwx.4,v 1.3 2024/02/15 15:42:57 jmc Exp $ .\" $OpenBSD: qwx.4,v 1.4 2024/02/21 21:31:02 stsp Exp $
.\" .\"
.\" Copyright (c) 2022 Martin Pieuchot <mpi@openbsd.org> .\" Copyright (c) 2022 Martin Pieuchot <mpi@openbsd.org>
.\" Copyright (c) 2024 Stefan Sperling <stsp@openbsd.org> .\" Copyright (c) 2024 Stefan Sperling <stsp@openbsd.org>
@ -15,7 +15,7 @@
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\" .\"
.Dd $Mdocdate: February 15 2024 $ .Dd $Mdocdate: February 21 2024 $
.Dt QWX 4 .Dt QWX 4
.Os .Os
.Sh NAME .Sh NAME
@ -40,11 +40,11 @@ The driver needs the following firmware files,
which are loaded when an interface is brought up: which are loaded when an interface is brought up:
.Pp .Pp
.Bl -tag -width Ds -offset indent -compact .Bl -tag -width Ds -offset indent -compact
.It Pa /etc/firmware/qwx-wcn6855-hw2.0-amms .It Pa /etc/firmware/qwx-wcn6855-hw2.0-amss
.It Pa /etc/firmware/qwx-wcn6855-hw2.0-board-2 .It Pa /etc/firmware/qwx-wcn6855-hw2.0-board-2
.It Pa /etc/firmware/qwx-wcn6855-hw2.0-m3 .It Pa /etc/firmware/qwx-wcn6855-hw2.0-m3
.It Pa /etc/firmware/qwx-wcn6855-hw2.0-regdb .It Pa /etc/firmware/qwx-wcn6855-hw2.0-regdb
.It Pa /etc/firmware/qwx-wcn6855-hw2.1-amms .It Pa /etc/firmware/qwx-wcn6855-hw2.1-amss
.It Pa /etc/firmware/qwx-wcn6855-hw2.1-board-2 .It Pa /etc/firmware/qwx-wcn6855-hw2.1-board-2
.It Pa /etc/firmware/qwx-wcn6855-hw2.1-m3 .It Pa /etc/firmware/qwx-wcn6855-hw2.1-m3
.It Pa /etc/firmware/qwx-wcn6855-hw2.1-regdb .It Pa /etc/firmware/qwx-wcn6855-hw2.1-regdb

View File

@ -1,4 +1,4 @@
.\" $OpenBSD: if_addrhook_add.9,v 1.2 2019/11/08 08:14:11 jmc Exp $ .\" $OpenBSD: if_addrhook_add.9,v 1.3 2024/02/22 08:10:08 jsg Exp $
.\" .\"
.\" Copyright (c) 2019 David Gwynne <dlg@openbsd.org> .\" Copyright (c) 2019 David Gwynne <dlg@openbsd.org>
.\" .\"
@ -14,7 +14,7 @@
.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
.\" .\"
.Dd $Mdocdate: November 8 2019 $ .Dd $Mdocdate: February 22 2024 $
.Dt IF_ADDRHOOK_ADD 9 .Dt IF_ADDRHOOK_ADD 9
.Os .Os
.Sh NAME .Sh NAME
@ -39,9 +39,9 @@
.Ft void .Ft void
.Fn if_detachhook_del "struct ifnet *ifp" "struct task *t" .Fn if_detachhook_del "struct ifnet *ifp" "struct task *t"
.Ft void .Ft void
.Fn if_inkstatehook_add "struct ifnet *ifp" "struct task *t" .Fn if_linkstatehook_add "struct ifnet *ifp" "struct task *t"
.Ft void .Ft void
.Fn if_inkstatehook_del "struct ifnet *ifp" "struct task *t" .Fn if_linkstatehook_del "struct ifnet *ifp" "struct task *t"
.Sh DESCRIPTION .Sh DESCRIPTION
The interface hook API allows for the registration of a task that The interface hook API allows for the registration of a task that
will be called when an IP address change, link state, or detach event will be called when an IP address change, link state, or detach event

View File

@ -1,4 +1,4 @@
/* $OpenBSD: cpu.c,v 1.103 2024/01/15 11:58:45 kettenis Exp $ */ /* $OpenBSD: cpu.c,v 1.104 2024/02/21 21:50:17 jsg Exp $ */
/* /*
* Copyright (c) 2016 Dale Rahn <drahn@dalerahn.com> * Copyright (c) 2016 Dale Rahn <drahn@dalerahn.com>
@ -85,6 +85,8 @@
#define CPU_PART_CORTEX_A520 0xd80 #define CPU_PART_CORTEX_A520 0xd80
#define CPU_PART_CORTEX_A720 0xd81 #define CPU_PART_CORTEX_A720 0xd81
#define CPU_PART_CORTEX_X4 0xd82 #define CPU_PART_CORTEX_X4 0xd82
#define CPU_PART_NEOVERSE_V3 0xd84
#define CPU_PART_NEOVERSE_N3 0xd8e
/* Cavium */ /* Cavium */
#define CPU_PART_THUNDERX_T88 0x0a1 #define CPU_PART_THUNDERX_T88 0x0a1
@ -157,8 +159,10 @@ struct cpu_cores cpu_cores_arm[] = {
{ CPU_PART_NEOVERSE_E1, "Neoverse E1" }, { CPU_PART_NEOVERSE_E1, "Neoverse E1" },
{ CPU_PART_NEOVERSE_N1, "Neoverse N1" }, { CPU_PART_NEOVERSE_N1, "Neoverse N1" },
{ CPU_PART_NEOVERSE_N2, "Neoverse N2" }, { CPU_PART_NEOVERSE_N2, "Neoverse N2" },
{ CPU_PART_NEOVERSE_N3, "Neoverse N3" },
{ CPU_PART_NEOVERSE_V1, "Neoverse V1" }, { CPU_PART_NEOVERSE_V1, "Neoverse V1" },
{ CPU_PART_NEOVERSE_V2, "Neoverse V2" }, { CPU_PART_NEOVERSE_V2, "Neoverse V2" },
{ CPU_PART_NEOVERSE_V3, "Neoverse V3" },
{ 0, NULL }, { 0, NULL },
}; };

View File

@ -1,4 +1,4 @@
/* $OpenBSD: ichiic.c,v 1.52 2023/11/23 14:24:06 jsg Exp $ */ /* $OpenBSD: ichiic.c,v 1.53 2024/02/21 22:57:11 jsg Exp $ */
/* /*
* Copyright (c) 2005, 2006 Alexander Yurchenko <grange@openbsd.org> * Copyright (c) 2005, 2006 Alexander Yurchenko <grange@openbsd.org>
@ -120,6 +120,7 @@ const struct pci_matchid ichiic_ids[] = {
{ PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_C610_MS_SMB_2 }, { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_C610_MS_SMB_2 },
{ PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_C610_MS_SMB_3 }, { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_C610_MS_SMB_3 },
{ PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_C620_SMB }, { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_C620_SMB },
{ PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_C740_SMB },
{ PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_DH8900_SMB }, { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_DH8900_SMB },
{ PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_EP80579_SMBUS }, { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_EP80579_SMBUS },
{ PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_GLK_SMB }, { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_GLK_SMB },

View File

@ -1,4 +1,4 @@
/* $OpenBSD: rde.c,v 1.622 2024/02/03 00:11:34 jsg Exp $ */ /* $OpenBSD: rde.c,v 1.623 2024/02/22 06:45:22 miod Exp $ */
/* /*
* Copyright (c) 2003, 2004 Henning Brauer <henning@openbsd.org> * Copyright (c) 2003, 2004 Henning Brauer <henning@openbsd.org>
@ -1240,10 +1240,17 @@ rde_dispatch_imsg_rtr(struct imsgbuf *imsgbuf)
if (imsg_get_data(&imsg, &roa, sizeof(roa)) == -1) if (imsg_get_data(&imsg, &roa, sizeof(roa)) == -1)
fatalx("IMSG_RECONF_ROA_ITEM bad len"); fatalx("IMSG_RECONF_ROA_ITEM bad len");
if (trie_roa_add(&roa_new.th, &roa) != 0) { if (trie_roa_add(&roa_new.th, &roa) != 0) {
#if defined(__GNUC__) && __GNUC__ < 4
struct bgpd_addr p = {
.aid = roa.aid
};
p.v6 = roa.prefix.inet6;
#else
struct bgpd_addr p = { struct bgpd_addr p = {
.aid = roa.aid, .aid = roa.aid,
.v6 = roa.prefix.inet6 .v6 = roa.prefix.inet6
}; };
#endif
log_warnx("trie_roa_add %s/%u failed", log_warnx("trie_roa_add %s/%u failed",
log_addr(&p), roa.prefixlen); log_addr(&p), roa.prefixlen);
} }

View File

@ -1,4 +1,4 @@
/* $OpenBSD: util.c,v 1.81 2024/02/02 16:14:51 claudio Exp $ */ /* $OpenBSD: util.c,v 1.82 2024/02/22 06:45:22 miod Exp $ */
/* /*
* Copyright (c) 2006 Claudio Jeker <claudio@openbsd.org> * Copyright (c) 2006 Claudio Jeker <claudio@openbsd.org>
@ -178,8 +178,13 @@ const char *
log_roa(struct roa *roa) log_roa(struct roa *roa)
{ {
static char buf[256]; static char buf[256];
struct bgpd_addr addr = { .aid = roa->aid, .v6 = roa->prefix.inet6 };
char maxbuf[32]; char maxbuf[32];
#if defined(__GNUC__) && __GNUC__ < 4
struct bgpd_addr addr = { .aid = roa->aid };
addr.v6 = roa->prefix.inet6;
#else
struct bgpd_addr addr = { .aid = roa->aid, .v6 = roa->prefix.inet6 };
#endif
maxbuf[0] = '\0'; maxbuf[0] = '\0';
if (roa->prefixlen != roa->maxlen) if (roa->prefixlen != roa->maxlen)

View File

@ -1,4 +1,4 @@
/* $OpenBSD: vionet.c,v 1.13 2024/02/20 21:40:37 dv Exp $ */ /* $OpenBSD: vionet.c,v 1.14 2024/02/22 02:38:53 dv Exp $ */
/* /*
* Copyright (c) 2023 Dave Voutila <dv@openbsd.org> * Copyright (c) 2023 Dave Voutila <dv@openbsd.org>
@ -89,9 +89,8 @@ int pipe_inject[2];
struct iovec iov_rx[VIONET_QUEUE_SIZE]; struct iovec iov_rx[VIONET_QUEUE_SIZE];
struct iovec iov_tx[VIONET_QUEUE_SIZE]; struct iovec iov_tx[VIONET_QUEUE_SIZE];
pthread_rwlock_t lock = NULL; /* Guards device config state. */ pthread_rwlock_t lock = NULL; /* Guards device config state. */
int resetting = 0; /* Transient reset state used to coordinate reset. */
/* Transient reset state used by the main thread to coordinate device reset. */ int rx_enabled = 0; /* 1: we expect to read the tap, 0: wait for notify. */
int resetting = 0;
__dead void __dead void
vionet_main(int fd, int fd_vmm) vionet_main(int fd, int fd_vmm)
@ -693,6 +692,7 @@ vionet_notifyq(struct virtio_dev *dev)
switch (vionet->cfg.queue_notify) { switch (vionet->cfg.queue_notify) {
case RXQ: case RXQ:
rx_enabled = 1;
vm_pipe_send(&pipe_rx, VIRTIO_NOTIFY); vm_pipe_send(&pipe_rx, VIRTIO_NOTIFY);
break; break;
case TXQ: case TXQ:
@ -900,7 +900,6 @@ dev_dispatch_vm(int fd, short event, void *arg)
struct imsg imsg; struct imsg imsg;
ssize_t n = 0; ssize_t n = 0;
int verbose; int verbose;
uint8_t status = 0;
if (dev == NULL) if (dev == NULL)
fatalx("%s: missing vionet pointer", __func__); fatalx("%s: missing vionet pointer", __func__);
@ -948,11 +947,7 @@ dev_dispatch_vm(int fd, short event, void *arg)
break; break;
case IMSG_VMDOP_UNPAUSE_VM: case IMSG_VMDOP_UNPAUSE_VM:
log_debug("%s: unpausing", __func__); log_debug("%s: unpausing", __func__);
pthread_rwlock_rdlock(&lock); if (rx_enabled)
status = vionet->cfg.device_status &
VIRTIO_CONFIG_DEVICE_STATUS_DRIVER_OK;
pthread_rwlock_unlock(&lock);
if (status)
vm_pipe_send(&pipe_rx, VIRTIO_THREAD_START); vm_pipe_send(&pipe_rx, VIRTIO_THREAD_START);
break; break;
case IMSG_CTL_VERBOSE: case IMSG_CTL_VERBOSE:
@ -1092,6 +1087,7 @@ handle_io_write(struct viodev_msg *msg, struct virtio_dev *dev)
pthread_rwlock_unlock(&lock); pthread_rwlock_unlock(&lock);
if (pause_devices) { if (pause_devices) {
rx_enabled = 0;
vionet_deassert_pic_irq(dev); vionet_deassert_pic_irq(dev);
vm_pipe_send(&pipe_rx, VIRTIO_THREAD_PAUSE); vm_pipe_send(&pipe_rx, VIRTIO_THREAD_PAUSE);
vm_pipe_send(&pipe_tx, VIRTIO_THREAD_PAUSE); vm_pipe_send(&pipe_tx, VIRTIO_THREAD_PAUSE);