soc: qcom: smp2p: Correct addressing of outgoing value
The valid_entries index should not be incremented until after we have
acquired the pointer to the value, or we will read and write data one
item off.
Fixes: 50e9964141
("soc: qcom: smp2p: Qualcomm Shared Memory Point to Point")
Cc: stable@vger.kernel.org
Signed-off-by: Bjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: Andy Gross <andy.gross@linaro.org>
This commit is contained in:
parent
6be2b3d084
commit
63af8e44ea
|
@ -344,11 +344,12 @@ static int qcom_smp2p_outbound_entry(struct qcom_smp2p *smp2p,
|
|||
/* Allocate an entry from the smem item */
|
||||
strlcpy(buf, entry->name, SMP2P_MAX_ENTRY_NAME);
|
||||
memcpy_toio(out->entries[out->valid_entries].name, buf, SMP2P_MAX_ENTRY_NAME);
|
||||
out->valid_entries++;
|
||||
|
||||
/* Make the logical entry reference the physical value */
|
||||
entry->value = &out->entries[out->valid_entries].value;
|
||||
|
||||
out->valid_entries++;
|
||||
|
||||
entry->state = qcom_smem_state_register(node, &smp2p_state_ops, entry);
|
||||
if (IS_ERR(entry->state)) {
|
||||
dev_err(smp2p->dev, "failed to register qcom_smem_state\n");
|
||||
|
|
Loading…
Reference in a new issue