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