aboutsummaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
Diffstat (limited to 'net')
-rw-r--r--net/core/pktgen.c15
1 files changed, 6 insertions, 9 deletions
diff --git a/net/core/pktgen.c b/net/core/pktgen.c
index 4582275a76fa..5c217427a669 100644
--- a/net/core/pktgen.c
+++ b/net/core/pktgen.c
@@ -2396,18 +2396,15 @@ static void mod_cur_headers(struct pktgen_dev *pkt_dev)
2396 __be32 s; 2396 __be32 s;
2397 if (pkt_dev->flags & F_IPDST_RND) { 2397 if (pkt_dev->flags & F_IPDST_RND) {
2398 2398
2399 t = prandom_u32() % (imx - imn) + imn; 2399 do {
2400 s = htonl(t);
2401
2402 while (ipv4_is_loopback(s) ||
2403 ipv4_is_multicast(s) ||
2404 ipv4_is_lbcast(s) ||
2405 ipv4_is_zeronet(s) ||
2406 ipv4_is_local_multicast(s)) {
2407 t = prandom_u32() % 2400 t = prandom_u32() %
2408 (imx - imn) + imn; 2401 (imx - imn) + imn;
2409 s = htonl(t); 2402 s = htonl(t);
2410 } 2403 } while (ipv4_is_loopback(s) ||
2404 ipv4_is_multicast(s) ||
2405 ipv4_is_lbcast(s) ||
2406 ipv4_is_zeronet(s) ||
2407 ipv4_is_local_multicast(s));
2411 pkt_dev->cur_daddr = s; 2408 pkt_dev->cur_daddr = s;
2412 } else { 2409 } else {
2413 t = ntohl(pkt_dev->cur_daddr); 2410 t = ntohl(pkt_dev->cur_daddr);