| From foo@baz Thu Dec 21 09:02:40 CET 2017 |
| From: Emil Tantilov <emil.s.tantilov@intel.com> |
| Date: Mon, 11 Sep 2017 14:21:31 -0700 |
| Subject: ixgbe: fix use of uninitialized padding |
| |
| From: Emil Tantilov <emil.s.tantilov@intel.com> |
| |
| |
| [ Upstream commit dcfd6b839c998bc9838e2a47f44f37afbdf3099c ] |
| |
| This patch is resolving Coverity hits where padding in a structure could |
| be used uninitialized. |
| |
| - Initialize fwd_cmd.pad/2 before ixgbe_calculate_checksum() |
| |
| - Initialize buffer.pad2/3 before ixgbe_hic_unlocked() |
| |
| Signed-off-by: Emil Tantilov <emil.s.tantilov@intel.com> |
| Tested-by: Andrew Bowers <andrewx.bowers@intel.com> |
| Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> |
| Signed-off-by: Sasha Levin <alexander.levin@verizon.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/net/ethernet/intel/ixgbe/ixgbe_common.c | 4 ++-- |
| drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c | 2 ++ |
| 2 files changed, 4 insertions(+), 2 deletions(-) |
| |
| --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_common.c |
| +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_common.c |
| @@ -3696,10 +3696,10 @@ s32 ixgbe_set_fw_drv_ver_generic(struct |
| fw_cmd.ver_build = build; |
| fw_cmd.ver_sub = sub; |
| fw_cmd.hdr.checksum = 0; |
| - fw_cmd.hdr.checksum = ixgbe_calculate_checksum((u8 *)&fw_cmd, |
| - (FW_CEM_HDR_LEN + fw_cmd.hdr.buf_len)); |
| fw_cmd.pad = 0; |
| fw_cmd.pad2 = 0; |
| + fw_cmd.hdr.checksum = ixgbe_calculate_checksum((u8 *)&fw_cmd, |
| + (FW_CEM_HDR_LEN + fw_cmd.hdr.buf_len)); |
| |
| for (i = 0; i <= FW_CEM_MAX_RETRIES; i++) { |
| ret_val = ixgbe_host_interface_command(hw, &fw_cmd, |
| --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c |
| +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_x550.c |
| @@ -617,6 +617,8 @@ static s32 ixgbe_read_ee_hostif_buffer_X |
| /* convert offset from words to bytes */ |
| buffer.address = cpu_to_be32((offset + current_word) * 2); |
| buffer.length = cpu_to_be16(words_to_read * 2); |
| + buffer.pad2 = 0; |
| + buffer.pad3 = 0; |
| |
| status = ixgbe_host_interface_command(hw, &buffer, |
| sizeof(buffer), |