summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorreyk <reyk@openbsd.org>2006-11-06 07:31:54 +0000
committerreyk <reyk@openbsd.org>2006-11-06 07:31:54 +0000
commit0355719d9e87cc4a47f0627b21bd84d4ed5db814 (patch)
tree12095d5dd0d8e3b085fd915de987564ce5d19c95
parentadd two newer Intel quad port adapters. (diff)
downloadwireguard-openbsd-0355719d9e87cc4a47f0627b21bd84d4ed5db814.tar.xz
wireguard-openbsd-0355719d9e87cc4a47f0627b21bd84d4ed5db814.zip
set the rx filters after setting the shared data address.
this fixes a crash of old vmware versions (like workstation 4.5.2) when bringing the interface up. it didn't crash the openbsd kernel running as a guest system, it did crash the complete vmware host application. that's why i dislike VMs, they're so buggy and insecure... ok dlg@ fkr@
-rw-r--r--sys/dev/pci/if_vic.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/sys/dev/pci/if_vic.c b/sys/dev/pci/if_vic.c
index 70caeb7e63d..925110d533e 100644
--- a/sys/dev/pci/if_vic.c
+++ b/sys/dev/pci/if_vic.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_vic.c,v 1.31 2006/11/02 23:43:35 dlg Exp $ */
+/* $OpenBSD: if_vic.c,v 1.32 2006/11/06 07:31:54 reyk Exp $ */
/*
* Copyright (c) 2006 Reyk Floeter <reyk@openbsd.org>
@@ -1173,14 +1173,14 @@ vic_init(struct ifnet *ifp)
s = splnet();
+ vic_write(sc, VIC_DATA_ADDR, VIC_DMA_DVA(sc));
+ vic_write(sc, VIC_DATA_LENGTH, sc->sc_dma_size);
+
if (ifp->if_flags & IFF_PROMISC)
vic_iff(sc, VIC_CMD_IFF_PROMISC);
else
vic_iff(sc, VIC_CMD_IFF_BROADCAST | VIC_CMD_IFF_MULTICAST);
- vic_write(sc, VIC_DATA_ADDR, VIC_DMA_DVA(sc));
- vic_write(sc, VIC_DATA_LENGTH, sc->sc_dma_size);
-
ifp->if_flags |= IFF_RUNNING;
ifp->if_flags &= ~IFF_OACTIVE;