soc: qcom: smem: verify both host ids in partition header
authorAlex Elder <elder@linaro.org>
Tue, 26 Jun 2018 00:58:49 +0000 (19:58 -0500)
committerAndy Gross <andy.gross@linaro.org>
Thu, 13 Sep 2018 21:56:58 +0000 (16:56 -0500)
The global partition is indicated by having both host values in its
table of contents entry equal SMEM_GLOBAL_HOST=0xfffe.

In qcom_smem_set_global_partition(), we check whether the header
structure at the beginning of the partition contains that host
value, but the check only verifies *one* of them.  Change the check
so the partition header must have SMEM_GLOBAL_HOST for *both* its
host fields.

Signed-off-by: Alex Elder <elder@linaro.org>
Signed-off-by: Andy Gross <andy.gross@linaro.org>
drivers/soc/qcom/smem.c

index 8d2582c..deaac74 100644 (file)
@@ -770,7 +770,7 @@ static int qcom_smem_set_global_partition(struct qcom_smem *smem)
                return -EINVAL;
        }
 
-       if (host0 != SMEM_GLOBAL_HOST && host1 != SMEM_GLOBAL_HOST) {
+       if (host0 != SMEM_GLOBAL_HOST || host1 != SMEM_GLOBAL_HOST) {
                dev_err(smem->dev, "Global partition hosts are invalid\n");
                return -EINVAL;
        }