diff options
author | Johan Hovold <johan@hovoldconsulting.com> | 2016-07-14 12:55:00 -0500 |
---|---|---|
committer | Alex Elder <elder@linaro.org> | 2016-07-14 14:36:33 -0500 |
commit | 165a74ab1401ac3e2b6eb5b7084607b588734e09 (patch) | |
tree | f675199db1e8ec90dee50e0f3f0ee7725b0efc59 /drivers/staging/greybus/es2.c | |
parent | e818027c0b4e2573e2e63ca04480ce7972596eb2 (diff) | |
download | op-kernel-dev-165a74ab1401ac3e2b6eb5b7084607b588734e09.zip op-kernel-dev-165a74ab1401ac3e2b6eb5b7084607b588734e09.tar.gz |
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>
Diffstat (limited to 'drivers/staging/greybus/es2.c')
-rw-r--r-- | drivers/staging/greybus/es2.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/staging/greybus/es2.c b/drivers/staging/greybus/es2.c index 7c294c4..7961622 100644 --- a/drivers/staging/greybus/es2.c +++ b/drivers/staging/greybus/es2.c @@ -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); |