be2net: use v1 of SET_FLOW_CONTROL command
In some configurations the FW doesn't allow changing flow control settings of a link. Unless a v1 version of the SET_FLOW_CONTROL cmd is used, the FW doesn't report an error to the driver. Signed-off-by: Suresh Reddy <Suresh.Reddy@emulex.com> Signed-off-by: Sathya Perla <sathya.perla@emulex.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Родитель
c30d72665c
Коммит
b29812c135
|
@ -1948,6 +1948,7 @@ int be_cmd_set_flow_control(struct be_adapter *adapter, u32 tx_fc, u32 rx_fc)
|
|||
OPCODE_COMMON_SET_FLOW_CONTROL, sizeof(*req),
|
||||
wrb, NULL);
|
||||
|
||||
req->hdr.version = 1;
|
||||
req->tx_flow_control = cpu_to_le16((u16)tx_fc);
|
||||
req->rx_flow_control = cpu_to_le16((u16)rx_fc);
|
||||
|
||||
|
@ -1955,6 +1956,10 @@ int be_cmd_set_flow_control(struct be_adapter *adapter, u32 tx_fc, u32 rx_fc)
|
|||
|
||||
err:
|
||||
spin_unlock_bh(&adapter->mcc_lock);
|
||||
|
||||
if (base_status(status) == MCC_STATUS_FEATURE_NOT_SUPPORTED)
|
||||
return -EOPNOTSUPP;
|
||||
|
||||
return status;
|
||||
}
|
||||
|
||||
|
|
|
@ -57,7 +57,8 @@ enum mcc_base_status {
|
|||
MCC_STATUS_ILLEGAL_FIELD = 3,
|
||||
MCC_STATUS_INSUFFICIENT_BUFFER = 4,
|
||||
MCC_STATUS_UNAUTHORIZED_REQUEST = 5,
|
||||
MCC_STATUS_NOT_SUPPORTED = 66
|
||||
MCC_STATUS_NOT_SUPPORTED = 66,
|
||||
MCC_STATUS_FEATURE_NOT_SUPPORTED = 68
|
||||
};
|
||||
|
||||
/* Additional status */
|
||||
|
|
Загрузка…
Ссылка в новой задаче