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: Bruce Allan <bruce.w.allan@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
f464ba87fe
commit
ca777f9c09
@ -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)
|
|||||||
* 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)
|
|||||||
*/
|
*/
|
||||||
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;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
x
Reference in New Issue
Block a user