Hi,
when testing bridge stp, I got the following kernel messages:
splassert: bstp_notify_rtage: want 7 have 5
Want IPL_NET have IPL_SOFTNET.
I can reproduce it by adding/removing stp ports (stp pair0).
As it seems, bstp_notify_rtage() is either indirectly called from the
bridge ioctl() path, which is protected by splnet(), or from the input
path which should be splsoftnet(). So the assert fails when doing the
ioctl because splnet is higher than splsoftnet.
Should we fix or remove the assert?
OK for fix?
Reyk
Index: sys/net/bridgestp.c
===================================================================
RCS file: /cvs/src/sys/net/bridgestp.c,v
retrieving revision 1.60
diff -u -p -u -p -r1.60 bridgestp.c
--- sys/net/bridgestp.c 29 Sep 2015 10:11:40 -0000 1.60
+++ sys/net/bridgestp.c 30 Oct 2015 10:39:34 -0000
@@ -1589,7 +1589,7 @@ bstp_notify_rtage(struct bstp_port *bp,
{
int age = 0;
- splassert(IPL_NET);
+ splassert(IPL_SOFTNET);
switch (bp->bp_protover) {
case BSTP_PROTO_STP: