]> www.infradead.org Git - users/jedix/linux-maple.git/commit
bnxt_en: Fix possible corrupted NVRAM parameters from firmware response.
authorMichael Chan <michael.chan@broadcom.com>
Sat, 14 Oct 2017 01:09:33 +0000 (21:09 -0400)
committerShan Hai <shan.hai@oracle.com>
Wed, 20 Dec 2017 01:38:50 +0000 (09:38 +0800)
commitf3ffc7319ced6e4aaee799ac69824fa94015d6a5
treea24a247ae2ba4003f802e71851fe74b43e46e037
parentd9d9e275a9a31fbd6f085bbd809d15753137d0a4
bnxt_en: Fix possible corrupted NVRAM parameters from firmware response.

In bnxt_find_nvram_item(), it is copying firmware response data after
releasing the mutex.  This can cause the firmware response data
to be corrupted if the next firmware response overwrites the response
buffer.  The rare problem shows up when running ethtool -i repeatedly.

Fix it by calling the new variant _hwrm_send_message_silent() that requires
the caller to take the mutex and to release it after the response data has
been copied.

Fixes: 3ebf6f0a09a2 ("bnxt_en: Add installed-package version reporting via Ethtool GDRVINFO")
Reported-by: Sarveswara Rao Mygapula <sarveswararao.mygapula@broadcom.com>
Signed-off-by: Michael Chan <michael.chan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit cc72f3b1feb4fd38d33ab7a013d5ab95041cb8ba)

Orabug: 27285190

Signed-off-by: Shan Hai <shan.hai@oracle.com>
Reviewed-by: Brian Maly <brian.maly@oracle.com>
drivers/net/ethernet/broadcom/bnxt/bnxt.c
drivers/net/ethernet/broadcom/bnxt/bnxt.h
drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c