summaryrefslogtreecommitdiff
path: root/drivers/char/diag
diff options
context:
space:
mode:
authorSreelakshmi Gownipalli <sgownipa@codeaurora.org>2016-03-28 13:49:14 -0700
committerChris Lew <clew@codeaurora.org>2016-08-25 18:34:34 -0700
commitf604d65d95e78d6beb49145bcf0bb4be62a42a95 (patch)
treeb8da74806bdedf04fbe0b08cb166241bb7a3cb53 /drivers/char/diag
parentf0644715361abf12f4387084c1fe0f76a0c640ee (diff)
diag: Use correct bridge index while sending data
While sending data to remote processor pass the correct bridge index value to the diag bridge driver. Rearrange init calls so mempool values are initialized correctly. CRs-Fixed: 997002 Change-Id: I524e48c38060865b6b83191202e5f057213abdca Signed-off-by: Sreelakshmi Gownipalli <sgownipa@codeaurora.org> Signed-off-by: Chris Lew <clew@codeaurora.org>
Diffstat (limited to 'drivers/char/diag')
-rw-r--r--drivers/char/diag/diagchar_core.c10
-rw-r--r--drivers/char/diag/diagfwd_bridge.c2
2 files changed, 6 insertions, 6 deletions
diff --git a/drivers/char/diag/diagchar_core.c b/drivers/char/diag/diagchar_core.c
index ecdbf9f9480e..c70cbdba7d7a 100644
--- a/drivers/char/diag/diagchar_core.c
+++ b/drivers/char/diag/diagchar_core.c
@@ -965,7 +965,7 @@ static int diag_send_raw_data_remote(int proc, void *buf, int len,
(void *)driver->hdlc_encode_buf);
send_data:
- err = diagfwd_bridge_write(proc, driver->hdlc_encode_buf,
+ err = diagfwd_bridge_write(bridge_index, driver->hdlc_encode_buf,
driver->hdlc_encode_buf_len);
if (err) {
pr_err_ratelimited("diag: Error writing Callback packet to proc: %d, err: %d\n",
@@ -2534,7 +2534,7 @@ static int diag_user_process_raw_data(const char __user *buf, int len)
}
}
if (remote_proc) {
- ret = diag_send_raw_data_remote(remote_proc - 1,
+ ret = diag_send_raw_data_remote(remote_proc,
(void *)(user_space_data + token_offset),
len, USER_SPACE_RAW_DATA);
if (ret) {
@@ -3387,13 +3387,13 @@ static int __init diagchar_init(void)
ret = diag_masks_init();
if (ret)
goto fail;
- ret = diag_mux_init();
+ ret = diag_remote_init();
if (ret)
goto fail;
- ret = diagfwd_init();
+ ret = diag_mux_init();
if (ret)
goto fail;
- ret = diag_remote_init();
+ ret = diagfwd_init();
if (ret)
goto fail;
ret = diagfwd_bridge_init();
diff --git a/drivers/char/diag/diagfwd_bridge.c b/drivers/char/diag/diagfwd_bridge.c
index 701677b30a71..0462a64614f3 100644
--- a/drivers/char/diag/diagfwd_bridge.c
+++ b/drivers/char/diag/diagfwd_bridge.c
@@ -107,7 +107,7 @@ static int diagfwd_bridge_mux_write_done(unsigned char *buf, int len,
if (id < 0 || id >= NUM_REMOTE_DEV)
return -EINVAL;
- ch = &bridge_info[id];
+ ch = &bridge_info[buf_ctx];
if (ch->dev_ops && ch->dev_ops->fwd_complete)
ch->dev_ops->fwd_complete(ch->ctxt, buf, len, 0);
return 0;