netconsole.c (53aa930dc4bae6aa269951bd37103083145d6691) netconsole.c (fb3ceec187e8bca474340e361a18163a2e79c0a2)
1// SPDX-License-Identifier: GPL-2.0-or-later
2/*
3 * linux/drivers/net/netconsole.c
4 *
5 * Copyright (C) 2001 Ingo Molnar <mingo@redhat.com>
6 *
7 * This file contains the implementation of an IRQ-safe, crash-safe
8 * kernel console implementation that outputs kernel messages to the

--- 41 unchanged lines hidden (view full) ---

50
51static bool oops_only = false;
52module_param(oops_only, bool, 0600);
53MODULE_PARM_DESC(oops_only, "Only log oops messages");
54
55#ifndef MODULE
56static int __init option_setup(char *opt)
57{
1// SPDX-License-Identifier: GPL-2.0-or-later
2/*
3 * linux/drivers/net/netconsole.c
4 *
5 * Copyright (C) 2001 Ingo Molnar <mingo@redhat.com>
6 *
7 * This file contains the implementation of an IRQ-safe, crash-safe
8 * kernel console implementation that outputs kernel messages to the

--- 41 unchanged lines hidden (view full) ---

50
51static bool oops_only = false;
52module_param(oops_only, bool, 0600);
53MODULE_PARM_DESC(oops_only, "Only log oops messages");
54
55#ifndef MODULE
56static int __init option_setup(char *opt)
57{
58 strlcpy(config, opt, MAX_PARAM_LENGTH);
58 strscpy(config, opt, MAX_PARAM_LENGTH);
59 return 1;
60}
61__setup("netconsole=", option_setup);
62#endif /* MODULE */
63
64/* Linked list of all configured targets */
65static LIST_HEAD(target_list);
66

--- 106 unchanged lines hidden (view full) ---

173 * Allocate and initialize with defaults.
174 * Note that these targets get their config_item fields zeroed-out.
175 */
176 nt = kzalloc(sizeof(*nt), GFP_KERNEL);
177 if (!nt)
178 goto fail;
179
180 nt->np.name = "netconsole";
59 return 1;
60}
61__setup("netconsole=", option_setup);
62#endif /* MODULE */
63
64/* Linked list of all configured targets */
65static LIST_HEAD(target_list);
66

--- 106 unchanged lines hidden (view full) ---

173 * Allocate and initialize with defaults.
174 * Note that these targets get their config_item fields zeroed-out.
175 */
176 nt = kzalloc(sizeof(*nt), GFP_KERNEL);
177 if (!nt)
178 goto fail;
179
180 nt->np.name = "netconsole";
181 strlcpy(nt->np.dev_name, "eth0", IFNAMSIZ);
181 strscpy(nt->np.dev_name, "eth0", IFNAMSIZ);
182 nt->np.local_port = 6665;
183 nt->np.remote_port = 6666;
184 eth_broadcast_addr(nt->np.remote_mac);
185
186 if (*target_config == '+') {
187 nt->extended = true;
188 target_config++;
189 }

--- 219 unchanged lines hidden (view full) ---

409 mutex_lock(&dynamic_netconsole_mutex);
410 if (nt->enabled) {
411 pr_err("target (%s) is enabled, disable to update parameters\n",
412 config_item_name(&nt->item));
413 mutex_unlock(&dynamic_netconsole_mutex);
414 return -EINVAL;
415 }
416
182 nt->np.local_port = 6665;
183 nt->np.remote_port = 6666;
184 eth_broadcast_addr(nt->np.remote_mac);
185
186 if (*target_config == '+') {
187 nt->extended = true;
188 target_config++;
189 }

--- 219 unchanged lines hidden (view full) ---

409 mutex_lock(&dynamic_netconsole_mutex);
410 if (nt->enabled) {
411 pr_err("target (%s) is enabled, disable to update parameters\n",
412 config_item_name(&nt->item));
413 mutex_unlock(&dynamic_netconsole_mutex);
414 return -EINVAL;
415 }
416
417 strlcpy(nt->np.dev_name, buf, IFNAMSIZ);
417 strscpy(nt->np.dev_name, buf, IFNAMSIZ);
418
419 /* Get rid of possible trailing newline from echo(1) */
420 len = strnlen(nt->np.dev_name, IFNAMSIZ);
421 if (nt->np.dev_name[len - 1] == '\n')
422 nt->np.dev_name[len - 1] = '\0';
423
424 mutex_unlock(&dynamic_netconsole_mutex);
425 return strnlen(buf, count);

--- 199 unchanged lines hidden (view full) ---

625 * Allocate and initialize with defaults.
626 * Target is disabled at creation (!enabled).
627 */
628 nt = kzalloc(sizeof(*nt), GFP_KERNEL);
629 if (!nt)
630 return ERR_PTR(-ENOMEM);
631
632 nt->np.name = "netconsole";
418
419 /* Get rid of possible trailing newline from echo(1) */
420 len = strnlen(nt->np.dev_name, IFNAMSIZ);
421 if (nt->np.dev_name[len - 1] == '\n')
422 nt->np.dev_name[len - 1] = '\0';
423
424 mutex_unlock(&dynamic_netconsole_mutex);
425 return strnlen(buf, count);

--- 199 unchanged lines hidden (view full) ---

625 * Allocate and initialize with defaults.
626 * Target is disabled at creation (!enabled).
627 */
628 nt = kzalloc(sizeof(*nt), GFP_KERNEL);
629 if (!nt)
630 return ERR_PTR(-ENOMEM);
631
632 nt->np.name = "netconsole";
633 strlcpy(nt->np.dev_name, "eth0", IFNAMSIZ);
633 strscpy(nt->np.dev_name, "eth0", IFNAMSIZ);
634 nt->np.local_port = 6665;
635 nt->np.remote_port = 6666;
636 eth_broadcast_addr(nt->np.remote_mac);
637
638 /* Initialize the config_item member */
639 config_item_init_type_name(&nt->item, name, &netconsole_target_type);
640
641 /* Adding, but it is disabled */

--- 61 unchanged lines hidden (view full) ---

703
704 spin_lock_irqsave(&target_list_lock, flags);
705restart:
706 list_for_each_entry(nt, &target_list, list) {
707 netconsole_target_get(nt);
708 if (nt->np.dev == dev) {
709 switch (event) {
710 case NETDEV_CHANGENAME:
634 nt->np.local_port = 6665;
635 nt->np.remote_port = 6666;
636 eth_broadcast_addr(nt->np.remote_mac);
637
638 /* Initialize the config_item member */
639 config_item_init_type_name(&nt->item, name, &netconsole_target_type);
640
641 /* Adding, but it is disabled */

--- 61 unchanged lines hidden (view full) ---

703
704 spin_lock_irqsave(&target_list_lock, flags);
705restart:
706 list_for_each_entry(nt, &target_list, list) {
707 netconsole_target_get(nt);
708 if (nt->np.dev == dev) {
709 switch (event) {
710 case NETDEV_CHANGENAME:
711 strlcpy(nt->np.dev_name, dev->name, IFNAMSIZ);
711 strscpy(nt->np.dev_name, dev->name, IFNAMSIZ);
712 break;
713 case NETDEV_RELEASE:
714 case NETDEV_JOIN:
715 case NETDEV_UNREGISTER:
716 /* rtnl_lock already held
717 * we might sleep in __netpoll_cleanup()
718 */
719 spin_unlock_irqrestore(&target_list_lock, flags);

--- 255 unchanged lines hidden ---
712 break;
713 case NETDEV_RELEASE:
714 case NETDEV_JOIN:
715 case NETDEV_UNREGISTER:
716 /* rtnl_lock already held
717 * we might sleep in __netpoll_cleanup()
718 */
719 spin_unlock_irqrestore(&target_list_lock, flags);

--- 255 unchanged lines hidden ---