Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/doc write down some observations about the locking wild west...
details: https://anonhg.NetBSD.org/src/rev/c13dbe7868f8
branches: trunk
changeset: 1009853:c13dbe7868f8
user: jdolecek <jdolecek%NetBSD.org@localhost>
date: Tue May 05 09:33:39 2020 +0000
description:
write down some observations about the locking wild west around if_mcast_op()
diffstat:
doc/TODO.smpnet | 13 ++++++++++++-
1 files changed, 12 insertions(+), 1 deletions(-)
diffs (27 lines):
diff -r 84ffa68c74aa -r c13dbe7868f8 doc/TODO.smpnet
--- a/doc/TODO.smpnet Tue May 05 09:26:29 2020 +0000
+++ b/doc/TODO.smpnet Tue May 05 09:33:39 2020 +0000
@@ -1,4 +1,4 @@
-$NetBSD: TODO.smpnet,v 1.34 2020/01/20 18:40:06 thorpej Exp $
+$NetBSD: TODO.smpnet,v 1.35 2020/05/05 09:33:39 jdolecek Exp $
MP-safe components
==================
@@ -121,6 +121,17 @@
context. It's a workaround and once the functions run in softint, we should use
the original bpf_mtap again.
+if_mcast_op() - SIOCADDMULTI/SIOCDELMULTI
+-----------------------------------------
+Helper function is called to add or remove multicast addresses for
+interface. When called via ioctl it takes IFNET_LOCK(), when called
+via sosetopt() it doesn't.
+
+Various network drivers can't assert IFNET_LOCKED() in their if_ioctl
+because of this. Generally drivers still take care to splnet() even
+with NET_MPSAFE before calling ether_ioctl(), but they do not take
+KERNEL_LOCK(), so this is actually unsafe.
+
Lingering obsolete variables
-----------------------------
Home |
Main Index |
Thread Index |
Old Index