Re: [PATCH v2 3/5] soc: qcom: smem: Support global partition

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri 15 Sep 14:02 PDT 2017, Chris Lew wrote:

> 
> 
> 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.
> 

You're right, I missed that detail.

Which allows me to argue that I do not feel that testing with
IS_ERR_OR_NULL() to let a 0 pass through to the caller is not obvious.

I think it's better if you replace the NULL with ERR_PTR(-ENOENT), which
you test and forward in both callers and then for the one caller where
partitions are optional you check if ret < 0 && ret != -ENOENT.

(Alternatively you check for NULL in enumerate_partitions() and return 0
with a nice comment saying that everything is okay)

Regards,
Bjorn
--
To unsubscribe from this list: send the line "unsubscribe linux-soc" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Samsung SoC]     [Linux Rockchip SoC]     [Linux Actions SoC]     [Linux for Synopsys ARC Processors]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]


  Powered by Linux