diff options
author | yongari <yongari@FreeBSD.org> | 2011-05-06 20:37:07 +0000 |
---|---|---|
committer | yongari <yongari@FreeBSD.org> | 2011-05-06 20:37:07 +0000 |
commit | b282e7aca84e59ffa94a99c9f249633683995f1f (patch) | |
tree | 90d21b7306456a2d1f716fbaabea548d13177650 | |
parent | 0e8f2a36e9862d79bea5556019ec1878e21e4951 (diff) | |
download | FreeBSD-src-b282e7aca84e59ffa94a99c9f249633683995f1f.zip FreeBSD-src-b282e7aca84e59ffa94a99c9f249633683995f1f.tar.gz |
Do not increment collision counter if transmit have failed.
Transmission error in tun(4) is queueing error(i.e. ENOBUFS) and it
has nothing to do with collision.
Reported by: Zeus V Panchenko (zeus <> ibs dot dn dot ua)
-rw-r--r-- | sys/net/if_tun.c | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/sys/net/if_tun.c b/sys/net/if_tun.c index 7c01ebe..f834961 100644 --- a/sys/net/if_tun.c +++ b/sys/net/if_tun.c @@ -661,10 +661,8 @@ tunoutput( } error = (ifp->if_transmit)(ifp, m0); - if (error) { - ifp->if_collisions++; + if (error) return (ENOBUFS); - } ifp->if_opackets++; return (0); } |