On 9/15/2017 11:33 AM, Bjorn Andersson wrote:
On Thu 14 Sep 14:25 PDT 2017, Chris Lew wrote:

[..]
+static struct smem_ptable *qcom_smem_get_ptable(struct qcom_smem *smem)
  {
-       struct smem_partition_header *header;
-       struct smem_ptable_entry *entry;
        struct smem_ptable *ptable;
-       unsigned remote_host;
-       u32 version, host0, host1;
-       int i;
+       u32 version;
ptable = smem->regions[0].virt_base + smem->regions[0].size - SZ_4K;
        if (memcmp(ptable->magic, SMEM_PTABLE_MAGIC, sizeof(ptable->magic)))
-               return 0;
+               return NULL;
version = le32_to_cpu(ptable->version);
        if (version != 1) {
                dev_err(smem->dev,
                        "Unsupported partition header version %d\n", version);
+               return ERR_PTR(-EINVAL);

In the calling places NULL and -EINVAL are both treated as -EINVAL, so I
think it's better to just return NULL here as well as check for !ptable
in callers.

Regards,
Bjorn


qcom_smem_enumerate_partitions allowed the partition table to be optional before. I want to keep that behavior for V11 where smem might only have the global heap. The probe will continue with a NULL/0 return from qcom_get_ptable/qcom_smem_enumerate_partitions.

--
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum,
a Linux Foundation Collaborative Project

Reply via email to