1
0
Fork 0

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: Johan Hovold <johan@hovoldconsulting.com>
Reviewed-by: Viresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: Alex Elder <elder@linaro.org>
hifive-unleashed-5.1
Johan Hovold 2016-07-14 12:55:00 -05:00 committed by Alex Elder
parent e818027c0b
commit 165a74ab14
1 changed files with 3 additions and 3 deletions

View File

@ -1122,12 +1122,12 @@ static void arpc_free(struct arpc *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;
list_for_each_entry(rpc, &es2->arpcs, list) {
if (le16_to_cpu(rpc->req->id) == id)
if (rpc->req->id == id)
return rpc;
}
@ -1250,7 +1250,7 @@ static void arpc_in_callback(struct urb *urb)
resp = urb->transfer_buffer;
spin_lock_irqsave(&es2->arpc_lock, flags);
rpc = arpc_find(es2, le16_to_cpu(resp->id));
rpc = arpc_find(es2, resp->id);
if (!rpc) {
dev_err(dev, "invalid arpc response id received: %d\n",
resp->id);