[PATCH] perf: xgene: Use device_get_match_data() to simplify code

Will Deacon will at kernel.org
Thu Apr 1 18:23:24 BST 2021


On Thu, Apr 01, 2021 at 05:17:17PM +0800, tiantao (H) wrote:
> 
> 在 2021/4/1 17:08, Will Deacon 写道:
> > On Thu, Apr 01, 2021 at 11:36:44AM +0800, Tian Tao wrote:
> > > Use device_get_match_data() here to simplify the code a bit.
> > > 
> > > Signed-off-by: Tian Tao <tiantao6 at hisilicon.com>
> > > ---
> > >   drivers/perf/xgene_pmu.c | 17 ++---------------
> > >   1 file changed, 2 insertions(+), 15 deletions(-)
> > > 
> > > diff --git a/drivers/perf/xgene_pmu.c b/drivers/perf/xgene_pmu.c
> > > index ffe3bde..befd2eb 100644
> > > --- a/drivers/perf/xgene_pmu.c
> > > +++ b/drivers/perf/xgene_pmu.c
> > > @@ -1836,7 +1836,6 @@ static int xgene_pmu_offline_cpu(unsigned int cpu, struct hlist_node *node)
> > >   static int xgene_pmu_probe(struct platform_device *pdev)
> > >   {
> > >   	const struct xgene_pmu_data *dev_data;
> > > -	const struct of_device_id *of_id;
> > >   	struct xgene_pmu *xgene_pmu;
> > >   	struct resource *res;
> > >   	int irq, rc;
> > > @@ -1857,21 +1856,9 @@ static int xgene_pmu_probe(struct platform_device *pdev)
> > >   	platform_set_drvdata(pdev, xgene_pmu);
> > >   	version = -EINVAL;
> > > -	of_id = of_match_device(xgene_pmu_of_match, &pdev->dev);
> > > -	if (of_id) {
> > > -		dev_data = (const struct xgene_pmu_data *) of_id->data;
> > > -		version = dev_data->id;
> > > -	}
> > > -
> > > -#ifdef CONFIG_ACPI
> > > -	if (ACPI_COMPANION(&pdev->dev)) {
> > > -		const struct acpi_device_id *acpi_id;
> > > +	dev_data = device_get_match_data(&pdev->dev);
> > > +	version = dev_data->id;
> > What prevents device_get_match_data() from returning NULL? The old code
> > handled the case where we didn't get a match.
> 
> What about doing it like this?

Sure, or even just have:

	version = dev_data ? dev_data->id : -EINVAL;

and drop the earlier assignment of -EINVAL;

Will



More information about the linux-arm-kernel mailing list