]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
bnxt_en: Fix null pointer dereference in bnxt_bs_trace_check_wrap()
authorGautam R A <gautam-r.a@broadcom.com>
Tue, 4 Nov 2025 00:56:57 +0000 (16:56 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 13 Nov 2025 20:37:43 +0000 (15:37 -0500)
[ Upstream commit ff02be05f78399c766be68ab0b2285ff90b2aaa8 ]

With older FW, we may get the ASYNC_EVENT_CMPL_EVENT_ID_DBG_BUF_PRODUCER
for FW trace data type that has not been initialized.  This will result
in a crash in bnxt_bs_trace_type_wrap().  Add a guard to check for a
valid magic_byte pointer before proceeding.

Fixes: 84fcd9449fd7 ("bnxt_en: Manage the FW trace context memory")
Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com>
Reviewed-by: Shruti Parab <shruti.parab@broadcom.com>
Signed-off-by: Gautam R A <gautam-r.a@broadcom.com>
Signed-off-by: Michael Chan <michael.chan@broadcom.com>
Link: https://patch.msgid.link/20251104005700.542174-4-michael.chan@broadcom.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/net/ethernet/broadcom/bnxt/bnxt.h

index 2317172166c7df0af956439e0327d47eb64fc005..6b751eb29c2d4faabff6b161ca3bb6391f29d378 100644 (file)
@@ -2148,7 +2148,7 @@ struct bnxt_bs_trace_info {
 static inline void bnxt_bs_trace_check_wrap(struct bnxt_bs_trace_info *bs_trace,
                                            u32 offset)
 {
-       if (!bs_trace->wrapped &&
+       if (!bs_trace->wrapped && bs_trace->magic_byte &&
            *bs_trace->magic_byte != BNXT_TRACE_BUF_MAGIC_BYTE)
                bs_trace->wrapped = 1;
        bs_trace->last_offset = offset;