* [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).