diff options
Diffstat (limited to 'net/ipv4/multipath_wrandom.c')
| -rw-r--r-- | net/ipv4/multipath_wrandom.c | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/net/ipv4/multipath_wrandom.c b/net/ipv4/multipath_wrandom.c index bd7d75b6abe0..d34a9fa608e0 100644 --- a/net/ipv4/multipath_wrandom.c +++ b/net/ipv4/multipath_wrandom.c | |||
| @@ -207,16 +207,12 @@ static void wrandom_select_route(const struct flowi *flp, | |||
| 207 | decision = mpc->rt; | 207 | decision = mpc->rt; |
| 208 | 208 | ||
| 209 | last_power = mpc->power; | 209 | last_power = mpc->power; |
| 210 | if (last_mpc) | 210 | kfree(last_mpc); |
| 211 | kfree(last_mpc); | ||
| 212 | |||
| 213 | last_mpc = mpc; | 211 | last_mpc = mpc; |
| 214 | } | 212 | } |
| 215 | 213 | ||
| 216 | if (last_mpc) { | 214 | /* concurrent __multipath_flush may lead to !last_mpc */ |
| 217 | /* concurrent __multipath_flush may lead to !last_mpc */ | 215 | kfree(last_mpc); |
| 218 | kfree(last_mpc); | ||
| 219 | } | ||
| 220 | 216 | ||
| 221 | decision->u.dst.__use++; | 217 | decision->u.dst.__use++; |
| 222 | *rp = decision; | 218 | *rp = decision; |
