diff --git a/share/man/man4/qwx.4 b/share/man/man4/qwx.4 index 7da2c9dbe..bf8cd1c85 100644 --- a/share/man/man4/qwx.4 +++ b/share/man/man4/qwx.4 @@ -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 .\" Copyright (c) 2024 Stefan Sperling @@ -15,7 +15,7 @@ .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" -.Dd $Mdocdate: February 15 2024 $ +.Dd $Mdocdate: February 21 2024 $ .Dt QWX 4 .Os .Sh NAME @@ -40,11 +40,11 @@ The driver needs the following firmware files, which are loaded when an interface is brought up: .Pp .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-m3 .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-m3 .It Pa /etc/firmware/qwx-wcn6855-hw2.1-regdb diff --git a/share/man/man9/if_addrhook_add.9 b/share/man/man9/if_addrhook_add.9 index 225cb8150..64c4c1bed 100644 --- a/share/man/man9/if_addrhook_add.9 +++ b/share/man/man9/if_addrhook_add.9 @@ -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 .\" @@ -14,7 +14,7 @@ .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" 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 .Os .Sh NAME @@ -39,9 +39,9 @@ .Ft void .Fn if_detachhook_del "struct ifnet *ifp" "struct task *t" .Ft void -.Fn if_inkstatehook_add "struct ifnet *ifp" "struct task *t" +.Fn if_linkstatehook_add "struct ifnet *ifp" "struct task *t" .Ft void -.Fn if_inkstatehook_del "struct ifnet *ifp" "struct task *t" +.Fn if_linkstatehook_del "struct ifnet *ifp" "struct task *t" .Sh DESCRIPTION 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 diff --git a/sys/arch/arm64/arm64/cpu.c b/sys/arch/arm64/arm64/cpu.c index ab2a77385..9c970bbde 100644 --- a/sys/arch/arm64/arm64/cpu.c +++ b/sys/arch/arm64/arm64/cpu.c @@ -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 @@ -85,6 +85,8 @@ #define CPU_PART_CORTEX_A520 0xd80 #define CPU_PART_CORTEX_A720 0xd81 #define CPU_PART_CORTEX_X4 0xd82 +#define CPU_PART_NEOVERSE_V3 0xd84 +#define CPU_PART_NEOVERSE_N3 0xd8e /* Cavium */ #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_N1, "Neoverse N1" }, { CPU_PART_NEOVERSE_N2, "Neoverse N2" }, + { CPU_PART_NEOVERSE_N3, "Neoverse N3" }, { CPU_PART_NEOVERSE_V1, "Neoverse V1" }, { CPU_PART_NEOVERSE_V2, "Neoverse V2" }, + { CPU_PART_NEOVERSE_V3, "Neoverse V3" }, { 0, NULL }, }; diff --git a/sys/dev/pci/ichiic.c b/sys/dev/pci/ichiic.c index 293a74fb2..5a7625977 100644 --- a/sys/dev/pci/ichiic.c +++ b/sys/dev/pci/ichiic.c @@ -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 @@ -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_3 }, { 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_EP80579_SMBUS }, { PCI_VENDOR_INTEL, PCI_PRODUCT_INTEL_GLK_SMB }, diff --git a/usr.sbin/bgpd/rde.c b/usr.sbin/bgpd/rde.c index d36bcb39f..62acf44f0 100644 --- a/usr.sbin/bgpd/rde.c +++ b/usr.sbin/bgpd/rde.c @@ -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 @@ -1240,10 +1240,17 @@ rde_dispatch_imsg_rtr(struct imsgbuf *imsgbuf) if (imsg_get_data(&imsg, &roa, sizeof(roa)) == -1) fatalx("IMSG_RECONF_ROA_ITEM bad len"); 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 = { .aid = roa.aid, .v6 = roa.prefix.inet6 }; +#endif log_warnx("trie_roa_add %s/%u failed", log_addr(&p), roa.prefixlen); } diff --git a/usr.sbin/bgpd/util.c b/usr.sbin/bgpd/util.c index eb9b61080..0f9e89bc2 100644 --- a/usr.sbin/bgpd/util.c +++ b/usr.sbin/bgpd/util.c @@ -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 @@ -178,8 +178,13 @@ const char * log_roa(struct roa *roa) { static char buf[256]; - struct bgpd_addr addr = { .aid = roa->aid, .v6 = roa->prefix.inet6 }; 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'; if (roa->prefixlen != roa->maxlen) diff --git a/usr.sbin/vmd/vionet.c b/usr.sbin/vmd/vionet.c index f9c0c1369..f4bb1a9dc 100644 --- a/usr.sbin/vmd/vionet.c +++ b/usr.sbin/vmd/vionet.c @@ -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 @@ -89,9 +89,8 @@ int pipe_inject[2]; struct iovec iov_rx[VIONET_QUEUE_SIZE]; struct iovec iov_tx[VIONET_QUEUE_SIZE]; pthread_rwlock_t lock = NULL; /* Guards device config state. */ - -/* Transient reset state used by the main thread to coordinate device reset. */ -int resetting = 0; +int resetting = 0; /* Transient reset state used to coordinate reset. */ +int rx_enabled = 0; /* 1: we expect to read the tap, 0: wait for notify. */ __dead void vionet_main(int fd, int fd_vmm) @@ -693,6 +692,7 @@ vionet_notifyq(struct virtio_dev *dev) switch (vionet->cfg.queue_notify) { case RXQ: + rx_enabled = 1; vm_pipe_send(&pipe_rx, VIRTIO_NOTIFY); break; case TXQ: @@ -900,7 +900,6 @@ dev_dispatch_vm(int fd, short event, void *arg) struct imsg imsg; ssize_t n = 0; int verbose; - uint8_t status = 0; if (dev == NULL) fatalx("%s: missing vionet pointer", __func__); @@ -948,11 +947,7 @@ dev_dispatch_vm(int fd, short event, void *arg) break; case IMSG_VMDOP_UNPAUSE_VM: log_debug("%s: unpausing", __func__); - pthread_rwlock_rdlock(&lock); - status = vionet->cfg.device_status & - VIRTIO_CONFIG_DEVICE_STATUS_DRIVER_OK; - pthread_rwlock_unlock(&lock); - if (status) + if (rx_enabled) vm_pipe_send(&pipe_rx, VIRTIO_THREAD_START); break; case IMSG_CTL_VERBOSE: @@ -1092,6 +1087,7 @@ handle_io_write(struct viodev_msg *msg, struct virtio_dev *dev) pthread_rwlock_unlock(&lock); if (pause_devices) { + rx_enabled = 0; vionet_deassert_pic_irq(dev); vm_pipe_send(&pipe_rx, VIRTIO_THREAD_PAUSE); vm_pipe_send(&pipe_tx, VIRTIO_THREAD_PAUSE);