Lines Matching full:np

61 #define np_info(np, fmt, ...)				\  argument
62 pr_info("%s: " fmt, np->name, ##__VA_ARGS__)
63 #define np_err(np, fmt, ...) \ argument
64 pr_err("%s: " fmt, np->name, ##__VA_ARGS__)
65 #define np_notice(np, fmt, ...) \ argument
66 pr_notice("%s: " fmt, np->name, ##__VA_ARGS__)
234 static void refill_skbs(struct netpoll *np) in refill_skbs() argument
240 skb_pool = &np->skb_pool; in refill_skbs()
281 static struct sk_buff *find_skb(struct netpoll *np, int len, int reserve) in find_skb() argument
287 refill_skbs(np); in find_skb()
292 skb = skb_dequeue(&np->skb_pool); in find_skb()
296 netpoll_poll_dev(np->dev); in find_skb()
319 static netdev_tx_t __netpoll_send_skb(struct netpoll *np, struct sk_buff *skb) in __netpoll_send_skb() argument
330 dev = np->dev; in __netpoll_send_skb()
360 netpoll_poll_dev(np->dev); in __netpoll_send_skb()
381 netdev_tx_t netpoll_send_skb(struct netpoll *np, struct sk_buff *skb) in netpoll_send_skb() argument
386 if (unlikely(!np)) { in netpoll_send_skb()
391 ret = __netpoll_send_skb(np, skb); in netpoll_send_skb()
398 int netpoll_send_udp(struct netpoll *np, const char *msg, int len) in netpoll_send_udp() argument
412 if (np->ipv6) in netpoll_send_udp()
417 total_len = ip_len + LL_RESERVED_SPACE(np->dev); in netpoll_send_udp()
419 skb = find_skb(np, total_len + np->dev->needed_tailroom, in netpoll_send_udp()
430 udph->source = htons(np->local_port); in netpoll_send_udp()
431 udph->dest = htons(np->remote_port); in netpoll_send_udp()
434 if (np->ipv6) { in netpoll_send_udp()
436 udph->check = csum_ipv6_magic(&np->local_ip.in6, in netpoll_send_udp()
437 &np->remote_ip.in6, in netpoll_send_udp()
456 ip6h->saddr = np->local_ip.in6; in netpoll_send_udp()
457 ip6h->daddr = np->remote_ip.in6; in netpoll_send_udp()
464 udph->check = csum_tcpudp_magic(np->local_ip.ip, in netpoll_send_udp()
465 np->remote_ip.ip, in netpoll_send_udp()
484 put_unaligned(np->local_ip.ip, &(iph->saddr)); in netpoll_send_udp()
485 put_unaligned(np->remote_ip.ip, &(iph->daddr)); in netpoll_send_udp()
493 ether_addr_copy(eth->h_source, np->dev->dev_addr); in netpoll_send_udp()
494 ether_addr_copy(eth->h_dest, np->remote_mac); in netpoll_send_udp()
496 skb->dev = np->dev; in netpoll_send_udp()
498 return (int)netpoll_send_skb(np, skb); in netpoll_send_udp()
502 void netpoll_print_options(struct netpoll *np) in netpoll_print_options() argument
504 np_info(np, "local port %d\n", np->local_port); in netpoll_print_options()
505 if (np->ipv6) in netpoll_print_options()
506 np_info(np, "local IPv6 address %pI6c\n", &np->local_ip.in6); in netpoll_print_options()
508 np_info(np, "local IPv4 address %pI4\n", &np->local_ip.ip); in netpoll_print_options()
509 np_info(np, "interface '%s'\n", np->dev_name); in netpoll_print_options()
510 np_info(np, "remote port %d\n", np->remote_port); in netpoll_print_options()
511 if (np->ipv6) in netpoll_print_options()
512 np_info(np, "remote IPv6 address %pI6c\n", &np->remote_ip.in6); in netpoll_print_options()
514 np_info(np, "remote IPv4 address %pI4\n", &np->remote_ip.ip); in netpoll_print_options()
515 np_info(np, "remote ethernet address %pM\n", np->remote_mac); in netpoll_print_options()
539 static void skb_pool_flush(struct netpoll *np) in skb_pool_flush() argument
543 skb_pool = &np->skb_pool; in skb_pool_flush()
547 int netpoll_parse_options(struct netpoll *np, char *opt) in netpoll_parse_options() argument
557 if (kstrtou16(cur, 10, &np->local_port)) in netpoll_parse_options()
568 ipv6 = netpoll_parse_ip_addr(cur, &np->local_ip); in netpoll_parse_options()
572 np->ipv6 = (bool)ipv6; in netpoll_parse_options()
582 strscpy(np->dev_name, cur, sizeof(np->dev_name)); in netpoll_parse_options()
593 np_info(np, "warning: whitespace is not allowed\n"); in netpoll_parse_options()
594 if (kstrtou16(cur, 10, &np->remote_port)) in netpoll_parse_options()
604 ipv6 = netpoll_parse_ip_addr(cur, &np->remote_ip); in netpoll_parse_options()
607 else if (ipversion_set && np->ipv6 != (bool)ipv6) in netpoll_parse_options()
610 np->ipv6 = (bool)ipv6; in netpoll_parse_options()
615 if (!mac_pton(cur, np->remote_mac)) in netpoll_parse_options()
619 netpoll_print_options(np); in netpoll_parse_options()
624 np_info(np, "couldn't parse config at '%s'!\n", cur); in netpoll_parse_options()
629 int __netpoll_setup(struct netpoll *np, struct net_device *ndev) in __netpoll_setup() argument
635 skb_queue_head_init(&np->skb_pool); in __netpoll_setup()
638 np_err(np, "%s doesn't support polling, aborting\n", in __netpoll_setup()
668 np->dev = ndev; in __netpoll_setup()
669 strscpy(np->dev_name, ndev->name, IFNAMSIZ); in __netpoll_setup()
670 npinfo->netpoll = np; in __netpoll_setup()
673 refill_skbs(np); in __netpoll_setup()
687 int netpoll_setup(struct netpoll *np) in netpoll_setup() argument
695 if (np->dev_name[0]) { in netpoll_setup()
697 ndev = __dev_get_by_name(net, np->dev_name); in netpoll_setup()
700 np_err(np, "%s doesn't exist, aborting\n", np->dev_name); in netpoll_setup()
704 netdev_hold(ndev, &np->dev_tracker, GFP_KERNEL); in netpoll_setup()
707 np_err(np, "%s is a slave device, aborting\n", np->dev_name); in netpoll_setup()
715 np_info(np, "device %s not up yet, forcing it\n", np->dev_name); in netpoll_setup()
720 np_err(np, "failed to open %s\n", ndev->name); in netpoll_setup()
728 np_notice(np, "timeout waiting for carrier\n"); in netpoll_setup()
737 if (!np->local_ip.ip) { in netpoll_setup()
738 if (!np->ipv6) { in netpoll_setup()
748 np_err(np, "no IP address for %s, aborting\n", in netpoll_setup()
749 np->dev_name); in netpoll_setup()
754 np->local_ip.ip = ifa->ifa_local; in netpoll_setup()
756 np_info(np, "local IP %pI4\n", &np->local_ip.ip); in netpoll_setup()
769 !!(ipv6_addr_type(&np->remote_ip.in6) & IPV6_ADDR_LINKLOCAL)) in netpoll_setup()
771 np->local_ip.in6 = ifp->addr; in netpoll_setup()
779 np_err(np, "no IPv6 address for %s, aborting\n", in netpoll_setup()
780 np->dev_name); in netpoll_setup()
783 np_info(np, "local IPv6 %pI6c\n", &np->local_ip.in6); in netpoll_setup()
785 np_err(np, "IPv6 is not supported %s, aborting\n", in netpoll_setup()
786 np->dev_name); in netpoll_setup()
793 err = __netpoll_setup(np, ndev); in netpoll_setup()
800 skb_pool_flush(np); in netpoll_setup()
802 DEBUG_NET_WARN_ON_ONCE(np->dev); in netpoll_setup()
804 memset(&np->local_ip, 0, sizeof(np->local_ip)); in netpoll_setup()
805 netdev_put(ndev, &np->dev_tracker); in netpoll_setup()
829 void __netpoll_cleanup(struct netpoll *np) in __netpoll_cleanup() argument
833 npinfo = rtnl_dereference(np->dev->npinfo); in __netpoll_cleanup()
840 ops = np->dev->netdev_ops; in __netpoll_cleanup()
842 ops->ndo_netpoll_cleanup(np->dev); in __netpoll_cleanup()
844 RCU_INIT_POINTER(np->dev->npinfo, NULL); in __netpoll_cleanup()
847 RCU_INIT_POINTER(np->dev->npinfo, NULL); in __netpoll_cleanup()
849 skb_pool_flush(np); in __netpoll_cleanup()
853 void __netpoll_free(struct netpoll *np) in __netpoll_free() argument
859 __netpoll_cleanup(np); in __netpoll_free()
860 kfree(np); in __netpoll_free()
864 void do_netpoll_cleanup(struct netpoll *np) in do_netpoll_cleanup() argument
866 __netpoll_cleanup(np); in do_netpoll_cleanup()
867 netdev_put(np->dev, &np->dev_tracker); in do_netpoll_cleanup()
868 np->dev = NULL; in do_netpoll_cleanup()
872 void netpoll_cleanup(struct netpoll *np) in netpoll_cleanup() argument
875 if (!np->dev) in netpoll_cleanup()
877 do_netpoll_cleanup(np); in netpoll_cleanup()