All of lore.kernel.org
 help / color / mirror / Atom feed
From: Joel Becker <jlbec@evilplan.org>
To: Breno Leitao <leitao@debian.org>
Cc: kuba@kernel.org, davem@davemloft.net, pabeni@redhat.com,
	Eric Dumazet <edumazet@google.com>,
	hch@lst.de, netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
	horms@kernel.org
Subject: Re: [PATCH net-next v4 2/4] netconsole: Initialize configfs_item for default targets
Date: Sat, 14 Oct 2023 17:53:32 -0700	[thread overview]
Message-ID: <ZSs4DF1o9pDlRP7w@google.com> (raw)
In-Reply-To: <20231012111401.333798-3-leitao@debian.org>

On Thu, Oct 12, 2023 at 04:13:59AM -0700, Breno Leitao wrote:
> For netconsole targets allocated during the boot time (passing
> netconsole=... argument), netconsole_target->item is not initialized.
> That is not a problem because it is not used inside configfs.
> 
> An upcoming patch will be using it, thus, initialize the targets with
> the name 'cmdline' plus a counter starting from 0.  This name will match
> entries in the configfs later.
> 
> Suggested-by: Joel Becker <jlbec@evilplan.org>
> Signed-off-by: Breno Leitao <leitao@debian.org>
Reviewed-by: Joel Becker <jlbec@evilplan.org>

> ---
>  drivers/net/netconsole.c | 25 +++++++++++++++++++++++--
>  1 file changed, 23 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/net/netconsole.c b/drivers/net/netconsole.c
> index d609fb59cf99..e153bce4dee4 100644
> --- a/drivers/net/netconsole.c
> +++ b/drivers/net/netconsole.c
> @@ -53,6 +53,8 @@ static bool oops_only = false;
>  module_param(oops_only, bool, 0600);
>  MODULE_PARM_DESC(oops_only, "Only log oops messages");
>  
> +#define NETCONSOLE_PARAM_TARGET_PREFIX "cmdline"
> +
>  #ifndef	MODULE
>  static int __init option_setup(char *opt)
>  {
> @@ -165,6 +167,10 @@ static void netconsole_target_put(struct netconsole_target *nt)
>  {
>  }
>  
> +static void populate_configfs_item(struct netconsole_target *nt,
> +				   int cmdline_count)
> +{
> +}
>  #endif	/* CONFIG_NETCONSOLE_DYNAMIC */
>  
>  /* Allocate and initialize with defaults.
> @@ -688,6 +694,17 @@ static struct configfs_subsystem netconsole_subsys = {
>  	},
>  };
>  
> +static void populate_configfs_item(struct netconsole_target *nt,
> +				   int cmdline_count)
> +{
> +	char target_name[16];
> +
> +	snprintf(target_name, sizeof(target_name), "%s%d",
> +		 NETCONSOLE_PARAM_TARGET_PREFIX, cmdline_count);
> +	config_item_init_type_name(&nt->item, target_name,
> +				   &netconsole_target_type);
> +}
> +
>  #endif	/* CONFIG_NETCONSOLE_DYNAMIC */
>  
>  /* Handle network interface device notifications */
> @@ -887,7 +904,8 @@ static void write_msg(struct console *con, const char *msg, unsigned int len)
>  }
>  
>  /* Allocate new target (from boot/module param) and setup netpoll for it */
> -static struct netconsole_target *alloc_param_target(char *target_config)
> +static struct netconsole_target *alloc_param_target(char *target_config,
> +						    int cmdline_count)
>  {
>  	struct netconsole_target *nt;
>  	int err;
> @@ -922,6 +940,7 @@ static struct netconsole_target *alloc_param_target(char *target_config)
>  	if (err)
>  		goto fail;
>  
> +	populate_configfs_item(nt, cmdline_count);
>  	nt->enabled = true;
>  
>  	return nt;
> @@ -954,6 +973,7 @@ static int __init init_netconsole(void)
>  {
>  	int err;
>  	struct netconsole_target *nt, *tmp;
> +	unsigned int count = 0;
>  	bool extended = false;
>  	unsigned long flags;
>  	char *target_config;
> @@ -961,7 +981,7 @@ static int __init init_netconsole(void)
>  
>  	if (strnlen(input, MAX_PARAM_LENGTH)) {
>  		while ((target_config = strsep(&input, ";"))) {
> -			nt = alloc_param_target(target_config);
> +			nt = alloc_param_target(target_config, count);
>  			if (IS_ERR(nt)) {
>  				err = PTR_ERR(nt);
>  				goto fail;
> @@ -977,6 +997,7 @@ static int __init init_netconsole(void)
>  			spin_lock_irqsave(&target_list_lock, flags);
>  			list_add(&nt->list, &target_list);
>  			spin_unlock_irqrestore(&target_list_lock, flags);
> +			count++;
>  		}
>  	}
>  
> -- 
> 2.34.1
> 

-- 

"I don't want to achieve immortality through my work; I want to
 achieve immortality through not dying."
        - Woody Allen

			http://www.jlbec.org/
			jlbec@evilplan.org

  reply	other threads:[~2023-10-15  0:54 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-10-12 11:13 [PATCH net-next v4 0/4] net: netconsole: configfs entries for boot target Breno Leitao
2023-10-12 11:13 ` [PATCH net-next v4 1/4] netconsole: move init/cleanup functions lower Breno Leitao
2023-10-15  0:54   ` Joel Becker
2023-10-12 11:13 ` [PATCH net-next v4 2/4] netconsole: Initialize configfs_item for default targets Breno Leitao
2023-10-15  0:53   ` Joel Becker [this message]
2023-10-12 11:14 ` [PATCH net-next v4 3/4] netconsole: Attach cmdline target to dynamic target Breno Leitao
2023-10-15  0:55   ` Joel Becker
2023-10-12 11:14 ` [PATCH net-next v4 4/4] Documentation: netconsole: add support for cmdline targets Breno Leitao
2023-10-15  0:55   ` Joel Becker
2023-10-14  0:30 ` [PATCH net-next v4 0/4] net: netconsole: configfs entries for boot target patchwork-bot+netdevbpf

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ZSs4DF1o9pDlRP7w@google.com \
    --to=jlbec@evilplan.org \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=hch@lst.de \
    --cc=horms@kernel.org \
    --cc=kuba@kernel.org \
    --cc=leitao@debian.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.