From: Justin Pettit Date: Fri, 8 Oct 2010 20:50:16 +0000 (-0700) Subject: netdev: Don't divide by zero when "linux-htb" zero min-rate is used X-Git-Tag: v1.0.2~2 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=40271de1421e0d02f87b37b27a2d8a8d93cfdc8c;hp=fa0d5349c39593656e75bdc82330bf04e9f612f7;p=sliver-openvswitch.git netdev: Don't divide by zero when "linux-htb" zero min-rate is used A "min-rate" of zero for the "linux-htb" QoS type would cause a divide by zero exception. This patch prevents that by just returning zero. A later patch will try to enforce reasonable values for "min-rate". Bug #3745 --- diff --git a/lib/netdev-linux.c b/lib/netdev-linux.c index f2afc3520..7668eff9f 100644 --- a/lib/netdev-linux.c +++ b/lib/netdev-linux.c @@ -2898,7 +2898,7 @@ tc_bytes_to_ticks(unsigned int rate, unsigned int size) if (!buffer_hz) { read_psched(); } - return ((unsigned long long int) ticks_per_s * size) / rate; + return rate ? ((unsigned long long int) ticks_per_s * size) / rate : 0; } /* Returns the number of bytes that need to be reserved for qdisc buffering at @@ -3244,9 +3244,7 @@ tc_put_rtab(struct ofpbuf *msg, uint16_t type, const struct tc_ratespec *rate) /* Calculates the proper value of 'buffer' or 'cbuffer' in HTB options given a * rate of 'Bps' bytes per second, the specified 'mtu', and a user-requested * burst size of 'burst_bytes'. (If no value was requested, a 'burst_bytes' of - * 0 is fine.) - * - * This */ + * 0 is fine.) */ static int tc_calc_buffer(unsigned int Bps, int mtu, uint64_t burst_bytes) {