On 01/18/2018 04:27 PM, John Allen wrote: > If we request an unsupported mtu value, the vnic server will suggest a > different value. Currently we take the suggested value without question > and login with that value. However, the behavior doesn't seem completely > sane as attempting to change the mtu to some specific value will change > the mtu to some completely different value most of the time. This patch > fixes the issue by logging in with the previously used mtu value and > printing an error message saying that the given mtu is unsupported. > > Signed-off-by: John Allen <jal...@linux.vnet.ibm.com>
Reviewed-by: Nathan Fontenot <nf...@linux.vnet.ibm.com> > --- > diff --git a/drivers/net/ethernet/ibm/ibmvnic.c > b/drivers/net/ethernet/ibm/ibmvnic.c > index f8f1396..bb56460 100644 > --- a/drivers/net/ethernet/ibm/ibmvnic.c > +++ b/drivers/net/ethernet/ibm/ibmvnic.c > @@ -3608,7 +3608,17 @@ static void handle_request_cap_rsp(union ibmvnic_crq > *crq, > *req_value, > (long int)be64_to_cpu(crq->request_capability_rsp. > number), name); > - *req_value = be64_to_cpu(crq->request_capability_rsp.number); > + > + if (be16_to_cpu(crq->request_capability_rsp.capability) == > + REQ_MTU) { > + pr_err("mtu of %llu is not supported. Reverting.\n", > + *req_value); > + *req_value = adapter->fallback.mtu; > + } else { > + *req_value = > + be64_to_cpu(crq->request_capability_rsp.number); > + } > + > ibmvnic_send_req_caps(adapter, 1); > return; > default: >