diff options
author | Vasundhara Volam <vasundhara-v.volam@broadcom.com> | 2019-12-10 02:49:09 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2019-12-10 17:37:14 -0800 |
commit | c74751f4c39232c31214ec6a3bc1c7e62f5c728b (patch) | |
tree | d4e0b90f1946dd402c8b0f0c5ef4fefb8270f1e7 /drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.h | |
parent | bnxt_en: Free context memory in the open path if firmware has been reset. (diff) | |
download | wireguard-linux-c74751f4c39232c31214ec6a3bc1c7e62f5c728b.tar.xz wireguard-linux-c74751f4c39232c31214ec6a3bc1c7e62f5c728b.zip |
bnxt_en: Return error if FW returns more data than dump length
If any change happened in the configuration of VF in VM while
collecting live dump, there could be a race and firmware can return
more data than allocated dump length. Fix it by keeping track of
the accumulated core dump length copied so far and abort the copy
with error code if the next chunk of core dump will exceed the
original dump length.
Fixes: 6c5657d085ae ("bnxt_en: Add support for ethtool get dump.")
Signed-off-by: Vasundhara Volam <vasundhara-v.volam@broadcom.com>
Signed-off-by: Michael Chan <michael.chan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.h')
-rw-r--r-- | drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.h b/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.h index 4428d0abcbc1..3576d951727b 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.h +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.h @@ -31,6 +31,8 @@ struct bnxt_coredump { u16 total_segs; }; +#define BNXT_COREDUMP_BUF_LEN(len) ((len) - sizeof(struct bnxt_coredump_record)) + struct bnxt_hwrm_dbg_dma_info { void *dest_buf; int dest_buf_size; @@ -38,6 +40,8 @@ struct bnxt_hwrm_dbg_dma_info { u16 seq_off; u16 data_len_off; u16 segs; + u32 seg_start; + u32 buf_len; }; struct hwrm_dbg_cmn_input { |