diff options
author | Sreelakshmi Gownipalli <sgownipa@codeaurora.org> | 2016-03-28 13:49:14 -0700 |
---|---|---|
committer | Chris Lew <clew@codeaurora.org> | 2016-08-25 18:34:34 -0700 |
commit | f604d65d95e78d6beb49145bcf0bb4be62a42a95 (patch) | |
tree | b8da74806bdedf04fbe0b08cb166241bb7a3cb53 /drivers/char/diag | |
parent | f0644715361abf12f4387084c1fe0f76a0c640ee (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.c | 10 | ||||
-rw-r--r-- | drivers/char/diag/diagfwd_bridge.c | 2 |
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; |