summaryrefslogtreecommitdiffstats
path: root/sys/dev/re
diff options
context:
space:
mode:
authorsobomax <sobomax@FreeBSD.org>2005-08-18 14:29:01 +0000
committersobomax <sobomax@FreeBSD.org>2005-08-18 14:29:01 +0000
commit7ed034a45812ec8bf7b3bfdd564dbde459fd8b94 (patch)
tree9b8f32eb0665844b0c9f3d632f22ca61e1f942b2 /sys/dev/re
parent9a47ab0db85e866c2943d4423fb305ea20d18125 (diff)
downloadFreeBSD-src-7ed034a45812ec8bf7b3bfdd564dbde459fd8b94.zip
FreeBSD-src-7ed034a45812ec8bf7b3bfdd564dbde459fd8b94.tar.gz
In re_shutdown() mark interface as down since otherwise we will panic if
interrupt comes in later on, which can happen in some uncommon cases. Another possible fix is to call re_detach() instead of re_stop(), like ve(4) does, but I am not sure if the latter is really RTTD, so that stick with this one-liner for now. PR: kern/80005 Approved by: silence on -arch, no reply from selected network gurus
Diffstat (limited to 'sys/dev/re')
-rw-r--r--sys/dev/re/if_re.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/sys/dev/re/if_re.c b/sys/dev/re/if_re.c
index ca6bb1b..f9f0e0f 100644
--- a/sys/dev/re/if_re.c
+++ b/sys/dev/re/if_re.c
@@ -2490,5 +2490,12 @@ re_shutdown(dev)
RL_LOCK(sc);
re_stop(sc);
+ /*
+ * Mark interface as down since otherwise we will panic if
+ * interrupt comes in later on, which can happen in some
+ * cases. Another option is to call re_detach() instead of
+ * re_stop(), like ve(4) does.
+ */
+ sc->rl_ifp->if_flags &= ~IFF_UP;
RL_UNLOCK(sc);
}
OpenPOWER on IntegriCloud