diff options
author | sobomax <sobomax@FreeBSD.org> | 2005-08-18 14:29:01 +0000 |
---|---|---|
committer | sobomax <sobomax@FreeBSD.org> | 2005-08-18 14:29:01 +0000 |
commit | 7ed034a45812ec8bf7b3bfdd564dbde459fd8b94 (patch) | |
tree | 9b8f32eb0665844b0c9f3d632f22ca61e1f942b2 | |
parent | 9a47ab0db85e866c2943d4423fb305ea20d18125 (diff) | |
download | FreeBSD-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
-rw-r--r-- | sys/dev/re/if_re.c | 7 |
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); } |