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