* [PATCH net] bna: adjust 'name' buf size of bna_tcb and bna_ccb structures
@ 2024-06-25 19:14 Alexey Kodanev
2024-06-27 14:17 ` Simon Horman
0 siblings, 1 reply; 3+ messages in thread
From: Alexey Kodanev @ 2024-06-25 19:14 UTC (permalink / raw)
To: netdev; +Cc: Rasesh Mody, Sudarsana Kalluru, GR-Linux-NIC-Dev, Alexey Kodanev
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>
---
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",
+ 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
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH net] bna: adjust 'name' buf size of bna_tcb and bna_ccb structures
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
2024-07-08 10:37 ` Alexey Kodanev
0 siblings, 1 reply; 3+ messages in thread
From: Simon Horman @ 2024-06-27 14:17 UTC (permalink / raw)
To: Alexey Kodanev
Cc: netdev, Rasesh Mody, Sudarsana Kalluru, GR-Linux-NIC-Dev,
Eric Dumazet, Jakub Kicinski, Paolo Abeni
+ 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
>
>
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH net] bna: adjust 'name' buf size of bna_tcb and bna_ccb structures
2024-06-27 14:17 ` Simon Horman
@ 2024-07-08 10:37 ` Alexey Kodanev
0 siblings, 0 replies; 3+ messages in thread
From: Alexey Kodanev @ 2024-07-08 10:37 UTC (permalink / raw)
To: Simon Horman
Cc: netdev, Rasesh Mody, Sudarsana Kalluru, GR-Linux-NIC-Dev,
Eric Dumazet, Jakub Kicinski, Paolo Abeni
Hi Simon!
On 27.06.2024 17:17, Simon Horman wrote:
> + 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 :)
Not at all :)
Well, I will resend a new version with suggested changes to net-next since
no one has commented on the removal yet.
>
> 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
>>
>>
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2024-07-08 10:37 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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
2024-07-08 10:37 ` Alexey Kodanev
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).