aboutsummaryrefslogtreecommitdiffstats
path: root/net/core/pktgen.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/core/pktgen.c')
-rw-r--r--net/core/pktgen.c54
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
509static int pgctrl_open(struct inode *inode, struct file *file) 509static 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
514static const struct file_operations pktgen_fops = { 514static const struct file_operations pktgen_fops = {
@@ -1685,7 +1685,7 @@ static ssize_t pktgen_if_write(struct file *file,
1685 1685
1686static int pktgen_if_open(struct inode *inode, struct file *file) 1686static 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
1691static const struct file_operations pktgen_if_fops = { 1691static const struct file_operations pktgen_if_fops = {
@@ -1823,7 +1823,7 @@ out:
1823 1823
1824static int pktgen_thread_open(struct inode *inode, struct file *file) 1824static 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
1829static const struct file_operations pktgen_thread_fops = { 1829static 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,
3576static int pktgen_remove_device(struct pktgen_thread *t, 3574static 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);