aboutsummaryrefslogtreecommitdiffstats
path: root/net/bridge
diff options
context:
space:
mode:
authorDaniel Borkmann <dborkman@redhat.com>2013-08-29 23:55:05 +0200
committerBen Hutchings <ben@decadent.org.uk>2013-10-26 21:05:57 +0100
commitf99d61dcdd2e1354ef54bbaee5ae71af926fa718 (patch)
tree66c2b067a39d36430ab462b4df4204713930ace9 /net/bridge
parent7676306f0e6a3e07fbedd55ff958dda9877d70f2 (diff)
downloadkernel_samsung_smdk4412-f99d61dcdd2e1354ef54bbaee5ae71af926fa718.zip
kernel_samsung_smdk4412-f99d61dcdd2e1354ef54bbaee5ae71af926fa718.tar.gz
kernel_samsung_smdk4412-f99d61dcdd2e1354ef54bbaee5ae71af926fa718.tar.bz2
net: bridge: convert MLDv2 Query MRC into msecs_to_jiffies for max_delay
[ Upstream commit 2d98c29b6fb3de44d9eaa73c09f9cf7209346383 ] While looking into MLDv1/v2 code, I noticed that bridging code does not convert it's max delay into jiffies for MLDv2 messages as we do in core IPv6' multicast code. RFC3810, 5.1.3. Maximum Response Code says: The Maximum Response Code field specifies the maximum time allowed before sending a responding Report. The actual time allowed, called the Maximum Response Delay, is represented in units of milliseconds, and is derived from the Maximum Response Code as follows: [...] As we update timers that work with jiffies, we need to convert it. Signed-off-by: Daniel Borkmann <dborkman@redhat.com> Cc: Linus Lüssing <linus.luessing@web.de> Cc: Hannes Frederic Sowa <hannes@stressinduktion.org> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
Diffstat (limited to 'net/bridge')
-rw-r--r--net/bridge/br_multicast.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c
index b81500c..a06deca 100644
--- a/net/bridge/br_multicast.c
+++ b/net/bridge/br_multicast.c
@@ -1155,7 +1155,8 @@ static int br_ip6_multicast_query(struct net_bridge *br,
mld2q = (struct mld2_query *)icmp6_hdr(skb);
if (!mld2q->mld2q_nsrcs)
group = &mld2q->mld2q_mca;
- max_delay = mld2q->mld2q_mrc ? MLDV2_MRC(mld2q->mld2q_mrc) : 1;
+
+ max_delay = max(msecs_to_jiffies(MLDV2_MRC(ntohs(mld2q->mld2q_mrc))), 1UL);
}
if (!group)