diff options
Diffstat (limited to 'net/core/pktgen.c')
-rw-r--r-- | net/core/pktgen.c | 54 |
1 files changed, 25 insertions, 29 deletions
diff --git a/net/core/pktgen.c b/net/core/pktgen.c index 6048fc1da1c2..11f2704c3810 100644 --- a/net/core/pktgen.c +++ b/net/core/pktgen.c | |||
@@ -508,7 +508,7 @@ out: | |||
508 | 508 | ||
509 | static int pgctrl_open(struct inode *inode, struct file *file) | 509 | static int pgctrl_open(struct inode *inode, struct file *file) |
510 | { | 510 | { |
511 | return single_open(file, pgctrl_show, PDE(inode)->data); | 511 | return single_open(file, pgctrl_show, PDE_DATA(inode)); |
512 | } | 512 | } |
513 | 513 | ||
514 | static const struct file_operations pktgen_fops = { | 514 | static const struct file_operations pktgen_fops = { |
@@ -1685,7 +1685,7 @@ static ssize_t pktgen_if_write(struct file *file, | |||
1685 | 1685 | ||
1686 | static int pktgen_if_open(struct inode *inode, struct file *file) | 1686 | static int pktgen_if_open(struct inode *inode, struct file *file) |
1687 | { | 1687 | { |
1688 | return single_open(file, pktgen_if_show, PDE(inode)->data); | 1688 | return single_open(file, pktgen_if_show, PDE_DATA(inode)); |
1689 | } | 1689 | } |
1690 | 1690 | ||
1691 | static const struct file_operations pktgen_if_fops = { | 1691 | static const struct file_operations pktgen_if_fops = { |
@@ -1823,7 +1823,7 @@ out: | |||
1823 | 1823 | ||
1824 | static int pktgen_thread_open(struct inode *inode, struct file *file) | 1824 | static int pktgen_thread_open(struct inode *inode, struct file *file) |
1825 | { | 1825 | { |
1826 | return single_open(file, pktgen_thread_show, PDE(inode)->data); | 1826 | return single_open(file, pktgen_thread_show, PDE_DATA(inode)); |
1827 | } | 1827 | } |
1828 | 1828 | ||
1829 | static const struct file_operations pktgen_thread_fops = { | 1829 | static const struct file_operations pktgen_thread_fops = { |
@@ -1904,7 +1904,7 @@ static void pktgen_change_name(const struct pktgen_net *pn, struct net_device *d | |||
1904 | if (pkt_dev->odev != dev) | 1904 | if (pkt_dev->odev != dev) |
1905 | continue; | 1905 | continue; |
1906 | 1906 | ||
1907 | remove_proc_entry(pkt_dev->entry->name, pn->proc_dir); | 1907 | proc_remove(pkt_dev->entry); |
1908 | 1908 | ||
1909 | pkt_dev->entry = proc_create_data(dev->name, 0600, | 1909 | pkt_dev->entry = proc_create_data(dev->name, 0600, |
1910 | pn->proc_dir, | 1910 | pn->proc_dir, |
@@ -2198,7 +2198,7 @@ static inline int f_pick(struct pktgen_dev *pkt_dev) | |||
2198 | pkt_dev->curfl = 0; /*reset */ | 2198 | pkt_dev->curfl = 0; /*reset */ |
2199 | } | 2199 | } |
2200 | } else { | 2200 | } else { |
2201 | flow = random32() % pkt_dev->cflows; | 2201 | flow = prandom_u32() % pkt_dev->cflows; |
2202 | pkt_dev->curfl = flow; | 2202 | pkt_dev->curfl = flow; |
2203 | 2203 | ||
2204 | if (pkt_dev->flows[flow].count > pkt_dev->lflow) { | 2204 | if (pkt_dev->flows[flow].count > pkt_dev->lflow) { |
@@ -2246,7 +2246,7 @@ static void set_cur_queue_map(struct pktgen_dev *pkt_dev) | |||
2246 | else if (pkt_dev->queue_map_min <= pkt_dev->queue_map_max) { | 2246 | else if (pkt_dev->queue_map_min <= pkt_dev->queue_map_max) { |
2247 | __u16 t; | 2247 | __u16 t; |
2248 | if (pkt_dev->flags & F_QUEUE_MAP_RND) { | 2248 | if (pkt_dev->flags & F_QUEUE_MAP_RND) { |
2249 | t = random32() % | 2249 | t = prandom_u32() % |
2250 | (pkt_dev->queue_map_max - | 2250 | (pkt_dev->queue_map_max - |
2251 | pkt_dev->queue_map_min + 1) | 2251 | pkt_dev->queue_map_min + 1) |
2252 | + pkt_dev->queue_map_min; | 2252 | + pkt_dev->queue_map_min; |
@@ -2278,7 +2278,7 @@ static void mod_cur_headers(struct pktgen_dev *pkt_dev) | |||
2278 | __u32 tmp; | 2278 | __u32 tmp; |
2279 | 2279 | ||
2280 | if (pkt_dev->flags & F_MACSRC_RND) | 2280 | if (pkt_dev->flags & F_MACSRC_RND) |
2281 | mc = random32() % pkt_dev->src_mac_count; | 2281 | mc = prandom_u32() % pkt_dev->src_mac_count; |
2282 | else { | 2282 | else { |
2283 | mc = pkt_dev->cur_src_mac_offset++; | 2283 | mc = pkt_dev->cur_src_mac_offset++; |
2284 | if (pkt_dev->cur_src_mac_offset >= | 2284 | if (pkt_dev->cur_src_mac_offset >= |
@@ -2304,7 +2304,7 @@ static void mod_cur_headers(struct pktgen_dev *pkt_dev) | |||
2304 | __u32 tmp; | 2304 | __u32 tmp; |
2305 | 2305 | ||
2306 | if (pkt_dev->flags & F_MACDST_RND) | 2306 | if (pkt_dev->flags & F_MACDST_RND) |
2307 | mc = random32() % pkt_dev->dst_mac_count; | 2307 | mc = prandom_u32() % pkt_dev->dst_mac_count; |
2308 | 2308 | ||
2309 | else { | 2309 | else { |
2310 | mc = pkt_dev->cur_dst_mac_offset++; | 2310 | mc = pkt_dev->cur_dst_mac_offset++; |
@@ -2331,21 +2331,21 @@ static void mod_cur_headers(struct pktgen_dev *pkt_dev) | |||
2331 | for (i = 0; i < pkt_dev->nr_labels; i++) | 2331 | for (i = 0; i < pkt_dev->nr_labels; i++) |
2332 | if (pkt_dev->labels[i] & MPLS_STACK_BOTTOM) | 2332 | if (pkt_dev->labels[i] & MPLS_STACK_BOTTOM) |
2333 | pkt_dev->labels[i] = MPLS_STACK_BOTTOM | | 2333 | pkt_dev->labels[i] = MPLS_STACK_BOTTOM | |
2334 | ((__force __be32)random32() & | 2334 | ((__force __be32)prandom_u32() & |
2335 | htonl(0x000fffff)); | 2335 | htonl(0x000fffff)); |
2336 | } | 2336 | } |
2337 | 2337 | ||
2338 | if ((pkt_dev->flags & F_VID_RND) && (pkt_dev->vlan_id != 0xffff)) { | 2338 | if ((pkt_dev->flags & F_VID_RND) && (pkt_dev->vlan_id != 0xffff)) { |
2339 | pkt_dev->vlan_id = random32() & (4096-1); | 2339 | pkt_dev->vlan_id = prandom_u32() & (4096 - 1); |
2340 | } | 2340 | } |
2341 | 2341 | ||
2342 | if ((pkt_dev->flags & F_SVID_RND) && (pkt_dev->svlan_id != 0xffff)) { | 2342 | if ((pkt_dev->flags & F_SVID_RND) && (pkt_dev->svlan_id != 0xffff)) { |
2343 | pkt_dev->svlan_id = random32() & (4096 - 1); | 2343 | pkt_dev->svlan_id = prandom_u32() & (4096 - 1); |
2344 | } | 2344 | } |
2345 | 2345 | ||
2346 | if (pkt_dev->udp_src_min < pkt_dev->udp_src_max) { | 2346 | if (pkt_dev->udp_src_min < pkt_dev->udp_src_max) { |
2347 | if (pkt_dev->flags & F_UDPSRC_RND) | 2347 | if (pkt_dev->flags & F_UDPSRC_RND) |
2348 | pkt_dev->cur_udp_src = random32() % | 2348 | pkt_dev->cur_udp_src = prandom_u32() % |
2349 | (pkt_dev->udp_src_max - pkt_dev->udp_src_min) | 2349 | (pkt_dev->udp_src_max - pkt_dev->udp_src_min) |
2350 | + pkt_dev->udp_src_min; | 2350 | + pkt_dev->udp_src_min; |
2351 | 2351 | ||
@@ -2358,7 +2358,7 @@ static void mod_cur_headers(struct pktgen_dev *pkt_dev) | |||
2358 | 2358 | ||
2359 | if (pkt_dev->udp_dst_min < pkt_dev->udp_dst_max) { | 2359 | if (pkt_dev->udp_dst_min < pkt_dev->udp_dst_max) { |
2360 | if (pkt_dev->flags & F_UDPDST_RND) { | 2360 | if (pkt_dev->flags & F_UDPDST_RND) { |
2361 | pkt_dev->cur_udp_dst = random32() % | 2361 | pkt_dev->cur_udp_dst = prandom_u32() % |
2362 | (pkt_dev->udp_dst_max - pkt_dev->udp_dst_min) | 2362 | (pkt_dev->udp_dst_max - pkt_dev->udp_dst_min) |
2363 | + pkt_dev->udp_dst_min; | 2363 | + pkt_dev->udp_dst_min; |
2364 | } else { | 2364 | } else { |
@@ -2375,7 +2375,7 @@ static void mod_cur_headers(struct pktgen_dev *pkt_dev) | |||
2375 | if (imn < imx) { | 2375 | if (imn < imx) { |
2376 | __u32 t; | 2376 | __u32 t; |
2377 | if (pkt_dev->flags & F_IPSRC_RND) | 2377 | if (pkt_dev->flags & F_IPSRC_RND) |
2378 | t = random32() % (imx - imn) + imn; | 2378 | t = prandom_u32() % (imx - imn) + imn; |
2379 | else { | 2379 | else { |
2380 | t = ntohl(pkt_dev->cur_saddr); | 2380 | t = ntohl(pkt_dev->cur_saddr); |
2381 | t++; | 2381 | t++; |
@@ -2396,17 +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 = random32() % (imx - imn) + imn; | 2399 | do { |
2400 | s = htonl(t); | 2400 | t = prandom_u32() % |
2401 | 2401 | (imx - imn) + imn; | |
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 = random32() % (imx - imn) + imn; | ||
2408 | s = htonl(t); | 2402 | s = htonl(t); |
2409 | } | 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)); | ||
2410 | pkt_dev->cur_daddr = s; | 2408 | pkt_dev->cur_daddr = s; |
2411 | } else { | 2409 | } else { |
2412 | t = ntohl(pkt_dev->cur_daddr); | 2410 | t = ntohl(pkt_dev->cur_daddr); |
@@ -2437,7 +2435,7 @@ static void mod_cur_headers(struct pktgen_dev *pkt_dev) | |||
2437 | 2435 | ||
2438 | for (i = 0; i < 4; i++) { | 2436 | for (i = 0; i < 4; i++) { |
2439 | pkt_dev->cur_in6_daddr.s6_addr32[i] = | 2437 | pkt_dev->cur_in6_daddr.s6_addr32[i] = |
2440 | (((__force __be32)random32() | | 2438 | (((__force __be32)prandom_u32() | |
2441 | pkt_dev->min_in6_daddr.s6_addr32[i]) & | 2439 | pkt_dev->min_in6_daddr.s6_addr32[i]) & |
2442 | pkt_dev->max_in6_daddr.s6_addr32[i]); | 2440 | pkt_dev->max_in6_daddr.s6_addr32[i]); |
2443 | } | 2441 | } |
@@ -2447,7 +2445,7 @@ static void mod_cur_headers(struct pktgen_dev *pkt_dev) | |||
2447 | if (pkt_dev->min_pkt_size < pkt_dev->max_pkt_size) { | 2445 | if (pkt_dev->min_pkt_size < pkt_dev->max_pkt_size) { |
2448 | __u32 t; | 2446 | __u32 t; |
2449 | if (pkt_dev->flags & F_TXSIZE_RND) { | 2447 | if (pkt_dev->flags & F_TXSIZE_RND) { |
2450 | t = random32() % | 2448 | t = prandom_u32() % |
2451 | (pkt_dev->max_pkt_size - pkt_dev->min_pkt_size) | 2449 | (pkt_dev->max_pkt_size - pkt_dev->min_pkt_size) |
2452 | + pkt_dev->min_pkt_size; | 2450 | + pkt_dev->min_pkt_size; |
2453 | } else { | 2451 | } else { |
@@ -3576,8 +3574,6 @@ static void _rem_dev_from_if_list(struct pktgen_thread *t, | |||
3576 | static int pktgen_remove_device(struct pktgen_thread *t, | 3574 | static int pktgen_remove_device(struct pktgen_thread *t, |
3577 | struct pktgen_dev *pkt_dev) | 3575 | struct pktgen_dev *pkt_dev) |
3578 | { | 3576 | { |
3579 | struct pktgen_net *pn = t->net; | ||
3580 | |||
3581 | pr_debug("remove_device pkt_dev=%p\n", pkt_dev); | 3577 | pr_debug("remove_device pkt_dev=%p\n", pkt_dev); |
3582 | 3578 | ||
3583 | if (pkt_dev->running) { | 3579 | if (pkt_dev->running) { |
@@ -3597,7 +3593,7 @@ static int pktgen_remove_device(struct pktgen_thread *t, | |||
3597 | _rem_dev_from_if_list(t, pkt_dev); | 3593 | _rem_dev_from_if_list(t, pkt_dev); |
3598 | 3594 | ||
3599 | if (pkt_dev->entry) | 3595 | if (pkt_dev->entry) |
3600 | remove_proc_entry(pkt_dev->entry->name, pn->proc_dir); | 3596 | proc_remove(pkt_dev->entry); |
3601 | 3597 | ||
3602 | #ifdef CONFIG_XFRM | 3598 | #ifdef CONFIG_XFRM |
3603 | free_SAs(pkt_dev); | 3599 | free_SAs(pkt_dev); |