ibmvnic: Fix endian error when requesting device capabilities
When a vNIC client driver requests a faulty device setting, the server returns an acceptable value for the client to request. This 64 bit value was incorrectly being swapped as a 32 bit value, resulting in loss of data. This patch corrects that by using the 64 bit swap function. Signed-off-by: Thomas Falcon <tlfalcon@linux.vnet.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
7627ae6030
commit
28f4d16570
|
@ -2389,10 +2389,10 @@ static void handle_request_cap_rsp(union ibmvnic_crq *crq,
|
||||||
case PARTIALSUCCESS:
|
case PARTIALSUCCESS:
|
||||||
dev_info(dev, "req=%lld, rsp=%ld in %s queue, retrying.\n",
|
dev_info(dev, "req=%lld, rsp=%ld in %s queue, retrying.\n",
|
||||||
*req_value,
|
*req_value,
|
||||||
(long int)be32_to_cpu(crq->request_capability_rsp.
|
(long int)be64_to_cpu(crq->request_capability_rsp.
|
||||||
number), name);
|
number), name);
|
||||||
release_sub_crqs_no_irqs(adapter);
|
release_sub_crqs_no_irqs(adapter);
|
||||||
*req_value = be32_to_cpu(crq->request_capability_rsp.number);
|
*req_value = be64_to_cpu(crq->request_capability_rsp.number);
|
||||||
init_sub_crqs(adapter, 1);
|
init_sub_crqs(adapter, 1);
|
||||||
return;
|
return;
|
||||||
default:
|
default:
|
||||||
|
|
Loading…
Reference in New Issue