diff --git a/[refs] b/[refs] index 1c4e57238679..e83e6a0b683f 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: f20f4a60d74b0d7e2a5dafd5e7d5760f44ce2f30 +refs/heads/master: e8192f367cb3dcbefaa4109d26f3b1645b0c6b56 diff --git a/trunk/net/ipv4/multipath_wrandom.c b/trunk/net/ipv4/multipath_wrandom.c index 32dbd6906a5d..92b04823e034 100644 --- a/trunk/net/ipv4/multipath_wrandom.c +++ b/trunk/net/ipv4/multipath_wrandom.c @@ -128,8 +128,8 @@ static unsigned char __multipath_lookup_weight(const struct flowi *fl, /* find state entry for destination */ list_for_each_entry_rcu(d, &target_route->dests, list) { - __u32 targetnetwork = fl->fl4_dst & - (0xFFFFFFFF >> (32 - d->prefixlen)); + __be32 targetnetwork = fl->fl4_dst & + inet_make_mask(d->prefixlen); if ((targetnetwork & d->netmask) == d->network) { weight = d->nh_info->nh_weight;