]> git.dujemihanovic.xyz Git - linux.git/commitdiff
bnxt_en: resize bnxt_irq name field to fit format string
authorEdwin Peer <edwin.peer@broadcom.com>
Mon, 9 Sep 2024 20:27:37 +0000 (13:27 -0700)
committerJakub Kicinski <kuba@kernel.org>
Wed, 11 Sep 2024 01:42:45 +0000 (18:42 -0700)
The name field of struct bnxt_irq is written using snprintf in
bnxt_setup_msix(). Make the field large enough to fit the maximal
formatted string to prevent truncation.  Truncated IRQ names are
less meaningful to the user.  For example, "enp4s0f0np0-TxRx-0"
gets truncated to "enp4s0f0np0-TxRx-" with the existing code.

Make sure we have space for the extra characters added to the IRQ
names:

  - the characters introduced by the static format string: hyphens
  - the maximal static substituted ring type string: "TxRx"
  - the maximum length of an integer formatted as a string, even
    though reasonable ring numbers would never be as long as this.

Signed-off-by: Edwin Peer <edwin.peer@broadcom.com>
Signed-off-by: Michael Chan <michael.chan@broadcom.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/20240909202737.93852-4-michael.chan@broadcom.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/broadcom/bnxt/bnxt.h

index 3b805ed433ed6753a3ce5a92b65c9b1b1a6e3196..69231e85140b2e25401f978c9d533199facc9990 100644 (file)
@@ -1217,12 +1217,15 @@ struct bnxt_napi {
        bool                    in_reset;
 };
 
+/* "TxRx", 2 hypens, plus maximum integer */
+#define BNXT_IRQ_NAME_EXTRA    17
+
 struct bnxt_irq {
        irq_handler_t   handler;
        unsigned int    vector;
        u8              requested:1;
        u8              have_cpumask:1;
-       char            name[IFNAMSIZ + 2];
+       char            name[IFNAMSIZ + BNXT_IRQ_NAME_EXTRA];
        cpumask_var_t   cpu_mask;
 };