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

