提交 8fa1a214 编写于 作者: A Alex Elder 提交者: Andy Gross

soc: qcom: smem: fix qcom_smem_set_global_partition()

If there is at least one entry in the partition table, but no global
entry, the qcom_smem_set_global_partition() should return an error
just like it does if there are no partition table entries.

It turns out the function still returns an error in this case, but
it waits to do so until it has mistakenly treated the last entry in
the table as if it were the global entry found.

Fix the function to return immediately if no global entry is found
in the table.
Signed-off-by: NAlex Elder <elder@linaro.org>
Reviewed-by: NBjorn Andersson <bjorn.andersson@linaro.org>
Signed-off-by: NAndy Gross <andy.gross@linaro.org>
上级 8377f818
...@@ -698,9 +698,10 @@ static u32 qcom_smem_get_item_count(struct qcom_smem *smem) ...@@ -698,9 +698,10 @@ static u32 qcom_smem_get_item_count(struct qcom_smem *smem)
static int qcom_smem_set_global_partition(struct qcom_smem *smem) static int qcom_smem_set_global_partition(struct qcom_smem *smem)
{ {
struct smem_partition_header *header; struct smem_partition_header *header;
struct smem_ptable_entry *entry = NULL; struct smem_ptable_entry *entry;
struct smem_ptable *ptable; struct smem_ptable *ptable;
u32 host0, host1, size; u32 host0, host1, size;
bool found = false;
int i; int i;
ptable = qcom_smem_get_ptable(smem); ptable = qcom_smem_get_ptable(smem);
...@@ -712,11 +713,13 @@ static int qcom_smem_set_global_partition(struct qcom_smem *smem) ...@@ -712,11 +713,13 @@ static int qcom_smem_set_global_partition(struct qcom_smem *smem)
host0 = le16_to_cpu(entry->host0); host0 = le16_to_cpu(entry->host0);
host1 = le16_to_cpu(entry->host1); host1 = le16_to_cpu(entry->host1);
if (host0 == SMEM_GLOBAL_HOST && host0 == host1) if (host0 == SMEM_GLOBAL_HOST && host0 == host1) {
found = true;
break; break;
} }
}
if (!entry) { if (!found) {
dev_err(smem->dev, "Missing entry for global partition\n"); dev_err(smem->dev, "Missing entry for global partition\n");
return -EINVAL; return -EINVAL;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册