All of lore.kernel.org
 help / color / mirror / Atom feed
From: Simon Horman <horms@kernel.org>
To: Alexey Kodanev <aleksei.kodanev@bell-sw.com>
Cc: netdev@vger.kernel.org, Rasesh Mody <rmody@marvell.com>,
	Sudarsana Kalluru <skalluru@marvell.com>,
	GR-Linux-NIC-Dev@marvell.com, Eric Dumazet <edumazet@google.com>,
	Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>
Subject: Re: [PATCH net] bna: adjust 'name' buf size of bna_tcb and bna_ccb structures
Date: Thu, 27 Jun 2024 15:17:55 +0100	[thread overview]
Message-ID: <20240627141755.GG3104@kernel.org> (raw)
In-Reply-To: <20240625191433.452508-1-aleksei.kodanev@bell-sw.com>

+ Eric Dumazet, Jakub Kicinski, Paolo Abeni

On Tue, Jun 25, 2024 at 07:14:33PM +0000, Alexey Kodanev wrote:
> To have enough space to write all possible sprintf() args. Currently
> 'name' size is 16, but the first '%s' specifier may already need at
> least 16 characters, since 'bnad->netdev->name' is used there.
> 
> For '%d' specifiers, assume that they require:
>  * 1 char for 'tx_id + tx_info->tcb[i]->id' sum, BNAD_MAX_TXQ_PER_TX is 8
>  * 2 chars for 'rx_id + rx_info->rx_ctrl[i].ccb->id', BNAD_MAX_RXP_PER_RX
>    is 16
> 
> And replace sprintf with snprintf.
> 
> Detected using the static analysis tool - Svace.
> 
> Fixes: 8b230ed8ec96 ("bna: Brocade 10Gb Ethernet device driver")
> Signed-off-by: Alexey Kodanev <aleksei.kodanev@bell-sw.com>

Thanks Alexey,

I agree that this change is a nice improvement.  And I verified that gcc-13
W=1 builds on x86_64 report warnings regarding the issues addressed by this
patch: the warnings are resolved by this patch.

But I do also wonder if we should consider removing this driver.
I don't see any non-trivial updates to it since
commit d667f78514c6 ("bna: Add synchronization for tx ring.")
a bug fix from November 2016 which was included in v4.9.

Although, perhaps your patch indicates this driver is being used :)

On process:

When posting patches for net or net-next, please generate a CC list using
./scripts/get_maintainer.pl your.patch

This does not seem to be a bug fix in the sense that it doesn't seem
to resolve a problem that manifests itself. If so, it should be targeted
at net-next rather than net.

Link: https://docs.kernel.org/process/maintainer-netdev.html

...

> ---
>  drivers/net/ethernet/brocade/bna/bna_types.h |  2 +-
>  drivers/net/ethernet/brocade/bna/bnad.c      | 11 ++++++-----
>  2 files changed, 7 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/net/ethernet/brocade/bna/bna_types.h b/drivers/net/ethernet/brocade/bna/bna_types.h
> index a5ebd7110e07..986f43d27711 100644
> --- a/drivers/net/ethernet/brocade/bna/bna_types.h
> +++ b/drivers/net/ethernet/brocade/bna/bna_types.h
> @@ -416,7 +416,7 @@ struct bna_ib {
>  /* Tx object */
>  
>  /* Tx datapath control structure */
> -#define BNA_Q_NAME_SIZE		16
> +#define BNA_Q_NAME_SIZE		(IFNAMSIZ + 6)
>  struct bna_tcb {
>  	/* Fast path */
>  	void			**sw_qpt;
> diff --git a/drivers/net/ethernet/brocade/bna/bnad.c b/drivers/net/ethernet/brocade/bna/bnad.c
> index fe121d36112d..3313a0d84466 100644
> --- a/drivers/net/ethernet/brocade/bna/bnad.c
> +++ b/drivers/net/ethernet/brocade/bna/bnad.c
> @@ -1534,8 +1534,9 @@ bnad_tx_msix_register(struct bnad *bnad, struct bnad_tx_info *tx_info,
>  
>  	for (i = 0; i < num_txqs; i++) {
>  		vector_num = tx_info->tcb[i]->intr_vector;
> -		sprintf(tx_info->tcb[i]->name, "%s TXQ %d", bnad->netdev->name,
> -				tx_id + tx_info->tcb[i]->id);
> +		snprintf(tx_info->tcb[i]->name, BNA_Q_NAME_SIZE, "%s TXQ %d",
> +			 bnad->netdev->name,
> +			 tx_id + tx_info->tcb[i]->id);
>  		err = request_irq(bnad->msix_table[vector_num].vector,
>  				  (irq_handler_t)bnad_msix_tx, 0,
>  				  tx_info->tcb[i]->name,
> @@ -1585,9 +1586,9 @@ bnad_rx_msix_register(struct bnad *bnad, struct bnad_rx_info *rx_info,
>  
>  	for (i = 0; i < num_rxps; i++) {
>  		vector_num = rx_info->rx_ctrl[i].ccb->intr_vector;
> -		sprintf(rx_info->rx_ctrl[i].ccb->name, "%s CQ %d",
> -			bnad->netdev->name,
> -			rx_id + rx_info->rx_ctrl[i].ccb->id);
> +		snprintf(rx_info->rx_ctrl[i].ccb->name, BNA_Q_NAME_SIZE, "%s CQ %d",

nit: This line could be trivially line wrapped so that it is less than 80
     columns wide, which is still preferred for Networking code.

     Flagged by /scripts/checkpatch.pl --max-line-length=80

> +			 bnad->netdev->name,
> +			 rx_id + rx_info->rx_ctrl[i].ccb->id);
>  		err = request_irq(bnad->msix_table[vector_num].vector,
>  				  (irq_handler_t)bnad_msix_rx, 0,
>  				  rx_info->rx_ctrl[i].ccb->name,
> -- 
> 2.25.1
> 
> 

  reply	other threads:[~2024-06-27 14:17 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-06-25 19:14 [PATCH net] bna: adjust 'name' buf size of bna_tcb and bna_ccb structures Alexey Kodanev
2024-06-27 14:17 ` Simon Horman [this message]
2024-07-08 10:37   ` Alexey Kodanev

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=20240627141755.GG3104@kernel.org \
    --to=horms@kernel.org \
    --cc=GR-Linux-NIC-Dev@marvell.com \
    --cc=aleksei.kodanev@bell-sw.com \
    --cc=edumazet@google.com \
    --cc=kuba@kernel.org \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=rmody@marvell.com \
    --cc=skalluru@marvell.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.