Linux/linux a60faa6drivers/net/ethernet/broadcom/bnxt bnxt_ethtool.c bnxt_nvm_defs.h

bnxt_en: Fix memory fault in bnxt_ethtool_init()

In some firmware images, the length of BNX_DIR_TYPE_PKG_LOG nvram type
could be greater than the fixed buffer length of 4096 bytes allocated by
the driver.  This was causing HWRM_NVM_READ to copy more data to the buffer
than the allocated size, causing general protection fault.

Fix the issue by allocating the exact buffer length returned by
HWRM_NVM_FIND_DIR_ENTRY, instead of 4096.  Move the kzalloc() call
into the bnxt_get_pkgver() function.

Fixes: 3ebf6f0a09a2 ("bnxt_en: Add installed-package firmware version reporting via Ethtool GDRVINFO")
Signed-off-by: Vasundhara Volam <vasundhara-v.volam at broadcom.com>
Signed-off-by: Michael Chan <michael.chan at broadcom.com>
Signed-off-by: David S. Miller <davem at davemloft.net>
DeltaFile
+27-22drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c
+0-2drivers/net/ethernet/broadcom/bnxt/bnxt_nvm_defs.h
+27-242 files

UnifiedSplitRaw