From 936e4f90ebc612dfeed4f71f2b1f322c9af26393 Mon Sep 17 00:00:00 2001 From: yongari Date: Mon, 3 Mar 2008 03:41:06 +0000 Subject: Don't allow jumbo frame on 8139C+ controller. While I'm here add a check for minimal MTU length. --- sys/dev/re/if_re.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'sys/dev/re/if_re.c') diff --git a/sys/dev/re/if_re.c b/sys/dev/re/if_re.c index 9a05419..93d82b7 100644 --- a/sys/dev/re/if_re.c +++ b/sys/dev/re/if_re.c @@ -2640,10 +2640,18 @@ re_ioctl(ifp, command, data) switch (command) { case SIOCSIFMTU: - RL_LOCK(sc); - if (ifr->ifr_mtu > RL_JUMBO_MTU) + if (ifr->ifr_mtu < ETHERMIN || ifr->ifr_mtu > RL_JUMBO_MTU) { + error = EINVAL; + break; + } + if (sc->rl_type == RL_8139CPLUS && + ifr->ifr_mtu > RL_MAX_FRAMELEN) { error = EINVAL; - ifp->if_mtu = ifr->ifr_mtu; + break; + } + RL_LOCK(sc); + if (ifp->if_mtu != ifr->ifr_mtu) + ifp->if_mtu = ifr->ifr_mtu; RL_UNLOCK(sc); break; case SIOCSIFFLAGS: -- cgit v1.1