Lines Matching refs:nt
133 static void netconsole_target_get(struct netconsole_target *nt) in netconsole_target_get() argument
135 if (config_item_name(&nt->item)) in netconsole_target_get()
136 config_item_get(&nt->item); in netconsole_target_get()
139 static void netconsole_target_put(struct netconsole_target *nt) in netconsole_target_put() argument
141 if (config_item_name(&nt->item)) in netconsole_target_put()
142 config_item_put(&nt->item); in netconsole_target_put()
160 static void netconsole_target_get(struct netconsole_target *nt) in netconsole_target_get() argument
164 static void netconsole_target_put(struct netconsole_target *nt) in netconsole_target_put() argument
175 struct netconsole_target *nt; in alloc_and_init() local
177 nt = kzalloc(sizeof(*nt), GFP_KERNEL); in alloc_and_init()
178 if (!nt) in alloc_and_init()
179 return nt; in alloc_and_init()
182 nt->extended = true; in alloc_and_init()
184 nt->release = true; in alloc_and_init()
186 nt->np.name = "netconsole"; in alloc_and_init()
187 strscpy(nt->np.dev_name, "eth0", IFNAMSIZ); in alloc_and_init()
188 nt->np.local_port = 6665; in alloc_and_init()
189 nt->np.remote_port = 6666; in alloc_and_init()
190 eth_broadcast_addr(nt->np.remote_mac); in alloc_and_init()
192 return nt; in alloc_and_init()
198 struct netconsole_target *nt; in alloc_param_target() local
201 nt = alloc_and_init(); in alloc_param_target()
202 if (!nt) { in alloc_param_target()
208 nt->extended = true; in alloc_param_target()
213 if (!nt->extended) { in alloc_param_target()
218 nt->release = true; in alloc_param_target()
223 err = netpoll_parse_options(&nt->np, target_config); in alloc_param_target()
227 err = netpoll_setup(&nt->np); in alloc_param_target()
231 nt->enabled = true; in alloc_param_target()
233 return nt; in alloc_param_target()
236 kfree(nt); in alloc_param_target()
241 static void free_param_target(struct netconsole_target *nt) in free_param_target() argument
243 netpoll_cleanup(&nt->np); in free_param_target()
244 kfree(nt); in free_param_target()
311 struct netconsole_target *nt = to_target(item); in local_ip_show() local
313 if (nt->np.ipv6) in local_ip_show()
314 return sysfs_emit(buf, "%pI6c\n", &nt->np.local_ip.in6); in local_ip_show()
316 return sysfs_emit(buf, "%pI4\n", &nt->np.local_ip); in local_ip_show()
321 struct netconsole_target *nt = to_target(item); in remote_ip_show() local
323 if (nt->np.ipv6) in remote_ip_show()
324 return sysfs_emit(buf, "%pI6c\n", &nt->np.remote_ip.in6); in remote_ip_show()
326 return sysfs_emit(buf, "%pI4\n", &nt->np.remote_ip); in remote_ip_show()
352 struct netconsole_target *nt = to_target(item); in enabled_store() local
363 if ((bool)enabled == nt->enabled) { in enabled_store()
365 nt->enabled ? "started" : "stopped"); in enabled_store()
370 if (nt->release && !nt->extended) { in enabled_store()
375 if (nt->extended && !console_is_registered(&netconsole_ext)) in enabled_store()
382 netpoll_print_options(&nt->np); in enabled_store()
384 err = netpoll_setup(&nt->np); in enabled_store()
395 nt->enabled = false; in enabled_store()
397 netpoll_cleanup(&nt->np); in enabled_store()
400 nt->enabled = enabled; in enabled_store()
412 struct netconsole_target *nt = to_target(item); in release_store() local
417 if (nt->enabled) { in release_store()
419 config_item_name(&nt->item)); in release_store()
428 nt->release = release; in release_store()
440 struct netconsole_target *nt = to_target(item); in extended_store() local
445 if (nt->enabled) { in extended_store()
447 config_item_name(&nt->item)); in extended_store()
456 nt->extended = extended; in extended_store()
468 struct netconsole_target *nt = to_target(item); in dev_name_store() local
472 if (nt->enabled) { in dev_name_store()
474 config_item_name(&nt->item)); in dev_name_store()
479 strscpy(nt->np.dev_name, buf, IFNAMSIZ); in dev_name_store()
482 len = strnlen(nt->np.dev_name, IFNAMSIZ); in dev_name_store()
483 if (nt->np.dev_name[len - 1] == '\n') in dev_name_store()
484 nt->np.dev_name[len - 1] = '\0'; in dev_name_store()
493 struct netconsole_target *nt = to_target(item); in local_port_store() local
497 if (nt->enabled) { in local_port_store()
499 config_item_name(&nt->item)); in local_port_store()
503 rv = kstrtou16(buf, 10, &nt->np.local_port); in local_port_store()
516 struct netconsole_target *nt = to_target(item); in remote_port_store() local
520 if (nt->enabled) { in remote_port_store()
522 config_item_name(&nt->item)); in remote_port_store()
526 rv = kstrtou16(buf, 10, &nt->np.remote_port); in remote_port_store()
539 struct netconsole_target *nt = to_target(item); in local_ip_store() local
542 if (nt->enabled) { in local_ip_store()
544 config_item_name(&nt->item)); in local_ip_store()
550 if (in6_pton(buf, count, nt->np.local_ip.in6.s6_addr, -1, &end) > 0) { in local_ip_store()
555 nt->np.ipv6 = true; in local_ip_store()
559 if (!nt->np.ipv6) { in local_ip_store()
560 nt->np.local_ip.ip = in_aton(buf); in local_ip_store()
575 struct netconsole_target *nt = to_target(item); in remote_ip_store() local
578 if (nt->enabled) { in remote_ip_store()
580 config_item_name(&nt->item)); in remote_ip_store()
586 if (in6_pton(buf, count, nt->np.remote_ip.in6.s6_addr, -1, &end) > 0) { in remote_ip_store()
591 nt->np.ipv6 = true; in remote_ip_store()
595 if (!nt->np.ipv6) { in remote_ip_store()
596 nt->np.remote_ip.ip = in_aton(buf); in remote_ip_store()
611 struct netconsole_target *nt = to_target(item); in remote_mac_store() local
615 if (nt->enabled) { in remote_mac_store()
617 config_item_name(&nt->item)); in remote_mac_store()
625 memcpy(nt->np.remote_mac, remote_mac, ETH_ALEN); in remote_mac_store()
685 struct netconsole_target *nt; in make_netconsole_target() local
688 nt = alloc_and_init(); in make_netconsole_target()
689 if (!nt) in make_netconsole_target()
693 config_item_init_type_name(&nt->item, name, &netconsole_target_type); in make_netconsole_target()
697 list_add(&nt->list, &target_list); in make_netconsole_target()
700 return &nt->item; in make_netconsole_target()
707 struct netconsole_target *nt = to_target(item); in drop_netconsole_target() local
710 list_del(&nt->list); in drop_netconsole_target()
717 if (nt->enabled) in drop_netconsole_target()
718 netpoll_cleanup(&nt->np); in drop_netconsole_target()
720 config_item_put(&nt->item); in drop_netconsole_target()
750 struct netconsole_target *nt; in netconsole_netdev_event() local
760 list_for_each_entry(nt, &target_list, list) { in netconsole_netdev_event()
761 netconsole_target_get(nt); in netconsole_netdev_event()
762 if (nt->np.dev == dev) { in netconsole_netdev_event()
765 strscpy(nt->np.dev_name, dev->name, IFNAMSIZ); in netconsole_netdev_event()
775 __netpoll_cleanup(&nt->np); in netconsole_netdev_event()
778 netdev_put(nt->np.dev, &nt->np.dev_tracker); in netconsole_netdev_event()
779 nt->np.dev = NULL; in netconsole_netdev_event()
780 nt->enabled = false; in netconsole_netdev_event()
782 netconsole_target_put(nt); in netconsole_netdev_event()
786 netconsole_target_put(nt); in netconsole_netdev_event()
824 static void send_ext_msg_udp(struct netconsole_target *nt, const char *msg, in send_ext_msg_udp() argument
835 if (nt->release) { in send_ext_msg_udp()
842 if (nt->release) { in send_ext_msg_udp()
847 netpoll_send_udp(&nt->np, msg_ready, msg_len); in send_ext_msg_udp()
865 if (nt->release) in send_ext_msg_udp()
885 netpoll_send_udp(&nt->np, buf, this_header + this_chunk); in send_ext_msg_udp()
894 struct netconsole_target *nt; in write_ext_msg() local
901 list_for_each_entry(nt, &target_list, list) in write_ext_msg()
902 if (nt->extended && nt->enabled && netif_running(nt->np.dev)) in write_ext_msg()
903 send_ext_msg_udp(nt, msg, len); in write_ext_msg()
911 struct netconsole_target *nt; in write_msg() local
921 list_for_each_entry(nt, &target_list, list) { in write_msg()
922 if (!nt->extended && nt->enabled && netif_running(nt->np.dev)) { in write_msg()
932 netpoll_send_udp(&nt->np, tmp, frag); in write_msg()
956 struct netconsole_target *nt, *tmp; in init_netconsole() local
964 nt = alloc_param_target(target_config); in init_netconsole()
965 if (IS_ERR(nt)) { in init_netconsole()
966 err = PTR_ERR(nt); in init_netconsole()
970 if (nt->extended) { in init_netconsole()
978 list_add(&nt->list, &target_list); in init_netconsole()
1009 list_for_each_entry_safe(nt, tmp, &target_list, list) { in init_netconsole()
1010 list_del(&nt->list); in init_netconsole()
1011 free_param_target(nt); in init_netconsole()
1019 struct netconsole_target *nt, *tmp; in cleanup_netconsole() local
1035 list_for_each_entry_safe(nt, tmp, &target_list, list) { in cleanup_netconsole()
1036 list_del(&nt->list); in cleanup_netconsole()
1037 free_param_target(nt); in cleanup_netconsole()