Commit 165a74ab authored by Johan Hovold's avatar Johan Hovold Committed by Alex Elder

greybus: es2: fix arpc response lookups

Fix arpc response lookups that were truncating the 16-bit response id to
8-bit, something which would have lead to all arpc calls timing out
after the 256th request.

Testing done: Enumerated and ejected a module on EVT2.
Signed-off-by: default avatarJohan Hovold <johan@hovoldconsulting.com>
Reviewed-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: default avatarAlex Elder <elder@linaro.org>
parent e818027c
...@@ -1122,12 +1122,12 @@ static void arpc_free(struct arpc *rpc) ...@@ -1122,12 +1122,12 @@ static void arpc_free(struct arpc *rpc)
kfree(rpc); kfree(rpc);
} }
static struct arpc *arpc_find(struct es2_ap_dev *es2, u8 id) static struct arpc *arpc_find(struct es2_ap_dev *es2, __le16 id)
{ {
struct arpc *rpc; struct arpc *rpc;
list_for_each_entry(rpc, &es2->arpcs, list) { list_for_each_entry(rpc, &es2->arpcs, list) {
if (le16_to_cpu(rpc->req->id) == id) if (rpc->req->id == id)
return rpc; return rpc;
} }
...@@ -1250,7 +1250,7 @@ static void arpc_in_callback(struct urb *urb) ...@@ -1250,7 +1250,7 @@ static void arpc_in_callback(struct urb *urb)
resp = urb->transfer_buffer; resp = urb->transfer_buffer;
spin_lock_irqsave(&es2->arpc_lock, flags); spin_lock_irqsave(&es2->arpc_lock, flags);
rpc = arpc_find(es2, le16_to_cpu(resp->id)); rpc = arpc_find(es2, resp->id);
if (!rpc) { if (!rpc) {
dev_err(dev, "invalid arpc response id received: %d\n", dev_err(dev, "invalid arpc response id received: %d\n",
resp->id); resp->id);
......
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