netdev.vger.kernel.org archive mirror
 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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).