Commit ca777f9c authored by Bruce Allan's avatar Bruce Allan Committed by David S. Miller

e1000e: e1000e_enable_tx_pkt_filtering() returns wrong value

e1000e_enable_tx_pkt_filtering() will return a non-zero value if the
driver fails to enable the manageability interface on the host for
any reason; instead it should retun zero to indicate filtering has been
disabled.  Also provide a single exit point for the function.
Signed-off-by: default avatarBruce Allan <bruce.w.allan@intel.com>
Signed-off-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent f464ba87
...@@ -2301,10 +2301,12 @@ bool e1000e_enable_tx_pkt_filtering(struct e1000_hw *hw) ...@@ -2301,10 +2301,12 @@ bool e1000e_enable_tx_pkt_filtering(struct e1000_hw *hw)
s32 ret_val, hdr_csum, csum; s32 ret_val, hdr_csum, csum;
u8 i, len; u8 i, len;
hw->mac.tx_pkt_filtering = true;
/* No manageability, no filtering */ /* No manageability, no filtering */
if (!e1000e_check_mng_mode(hw)) { if (!e1000e_check_mng_mode(hw)) {
hw->mac.tx_pkt_filtering = false; hw->mac.tx_pkt_filtering = false;
return 0; goto out;
} }
/* /*
...@@ -2312,9 +2314,9 @@ bool e1000e_enable_tx_pkt_filtering(struct e1000_hw *hw) ...@@ -2312,9 +2314,9 @@ bool e1000e_enable_tx_pkt_filtering(struct e1000_hw *hw)
* reason, disable filtering. * reason, disable filtering.
*/ */
ret_val = e1000_mng_enable_host_if(hw); ret_val = e1000_mng_enable_host_if(hw);
if (ret_val != 0) { if (ret_val) {
hw->mac.tx_pkt_filtering = false; hw->mac.tx_pkt_filtering = false;
return ret_val; goto out;
} }
/* Read in the header. Length and offset are in dwords. */ /* Read in the header. Length and offset are in dwords. */
...@@ -2333,17 +2335,17 @@ bool e1000e_enable_tx_pkt_filtering(struct e1000_hw *hw) ...@@ -2333,17 +2335,17 @@ bool e1000e_enable_tx_pkt_filtering(struct e1000_hw *hw)
*/ */
if ((hdr_csum != csum) || (hdr->signature != E1000_IAMT_SIGNATURE)) { if ((hdr_csum != csum) || (hdr->signature != E1000_IAMT_SIGNATURE)) {
hw->mac.tx_pkt_filtering = true; hw->mac.tx_pkt_filtering = true;
return 1; goto out;
} }
/* Cookie area is valid, make the final check for filtering. */ /* Cookie area is valid, make the final check for filtering. */
if (!(hdr->status & E1000_MNG_DHCP_COOKIE_STATUS_PARSING)) { if (!(hdr->status & E1000_MNG_DHCP_COOKIE_STATUS_PARSING)) {
hw->mac.tx_pkt_filtering = false; hw->mac.tx_pkt_filtering = false;
return 0; goto out;
} }
hw->mac.tx_pkt_filtering = true; out:
return 1; return hw->mac.tx_pkt_filtering;
} }
/** /**
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment