From: Michael Ellerman <mpe@ellerman.id.au>
To: Christophe Leroy <christophe.leroy@csgroup.eu>,
Marc Zyngier <maz@kernel.org>
Cc: "cgel.zte@gmail.com" <cgel.zte@gmail.com>,
Zeal Robot <zealci@zte.com.cn>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
Minghao Chi <chi.minghao@zte.com.cn>,
"jgg@ziepe.ca" <jgg@ziepe.ca>,
"paulus@samba.org" <paulus@samba.org>,
"tglx@linutronix.de" <tglx@linutronix.de>,
"linuxppc-dev@lists.ozlabs.org" <linuxppc-dev@lists.ozlabs.org>
Subject: Re: [PATCH] powerpc/sysdev: Use of_device_get_match_data()
Date: Mon, 07 Mar 2022 11:44:55 +1100 [thread overview]
Message-ID: <875yoqoak8.fsf@mpe.ellerman.id.au> (raw)
In-Reply-To: <4d569f2f-7c56-e5a0-e9e0-981cbca21468@csgroup.eu>
Christophe Leroy <christophe.leroy@csgroup.eu> writes:
> Le 04/03/2022 à 15:26, Marc Zyngier a écrit :
>> On Fri, 04 Mar 2022 13:10:19 +0000,
>> Christophe Leroy <christophe.leroy@csgroup.eu> wrote:
>>> Le 04/03/2022 à 02:18, cgel.zte@gmail.com a écrit :
>>>> From: Minghao Chi (CGEL ZTE) <chi.minghao@zte.com.cn>
>>>>
>>>> Use of_device_get_match_data() to simplify the code.
>>>>
>>>> Reported-by: Zeal Robot <zealci@zte.com.cn>
>>>> Signed-off-by: Minghao Chi (CGEL ZTE) <chi.minghao@zte.com.cn>
>>>> ---
>>>> arch/powerpc/sysdev/fsl_msi.c | 6 +-----
>>>> 1 file changed, 1 insertion(+), 5 deletions(-)
>>>>
>>>> diff --git a/arch/powerpc/sysdev/fsl_msi.c b/arch/powerpc/sysdev/fsl_msi.c
>>>> index b3475ae9f236..9d135bbb30b7 100644
>>>> --- a/arch/powerpc/sysdev/fsl_msi.c
>>>> +++ b/arch/powerpc/sysdev/fsl_msi.c
>>>> @@ -387,7 +387,6 @@ static int fsl_msi_setup_hwirq(struct fsl_msi *msi, struct platform_device *dev,
>>>> static const struct of_device_id fsl_of_msi_ids[];
>>>> static int fsl_of_msi_probe(struct platform_device *dev)
>>>> {
>>>> - const struct of_device_id *match;
>>>> struct fsl_msi *msi;
>>>> struct resource res, msiir;
>>>> int err, i, j, irq_index, count;
>>>> @@ -397,10 +396,7 @@ static int fsl_of_msi_probe(struct platform_device *dev)
>>>> u32 offset;
>>>> struct pci_controller *phb;
>>>>
>>>> - match = of_match_device(fsl_of_msi_ids, &dev->dev);
>>>> - if (!match)
>>>> - return -EINVAL;
>>>> - features = match->data;
>>>> + features = of_device_get_match_data(&dev->dev);
>>>
>>> What happens when features is NULL ?
>>
>> I did jump at that one too, but as it turns out, it cannot happen, by
>> construction. All the fsl_of_msi_ids[] entries have a non-NULL .data
>> pointer, and you only enter probe if you match a fsl_of_msi_ids[]
>> entry with the DT.
>>
>> So the current check for a NULL match is not something that can happen
>> short of some other bug somewhere.
>>
>
> Ok.
>
> Then it would be good to have a sentence explaining that in the commit
> message.
Yes I agree. Too many of these cleanup patches assume the reviewer is
intimately familiar with the details of the new API/helper and don't
explain things fully in the change log.
The helper is:
const void *of_device_get_match_data(const struct device *dev)
{
const struct of_device_id *match;
match = of_match_device(dev->driver->of_match_table, dev);
if (!match)
return NULL;
return match->data;
}
So as Marc says, if we're in probe then there must be a match.
IMHO there should be a check for match->data being NULL. Although the
current match table contains a non-NULL data for every element, that
could easily change in future (although this driver will probably never
be updated).
The forward declaration of fsl_of_msi_ids should also be removed, as it
will no longer be necessary.
cheers
prev parent reply other threads:[~2022-03-07 0:45 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-03-04 1:18 [PATCH] powerpc/sysdev: Use of_device_get_match_data() cgel.zte
2022-03-04 1:18 ` cgel.zte
2022-03-04 13:10 ` Christophe Leroy
2022-03-04 13:10 ` Christophe Leroy
2022-03-04 14:26 ` Marc Zyngier
2022-03-04 14:26 ` Marc Zyngier
2022-03-04 14:29 ` Christophe Leroy
2022-03-04 14:29 ` Christophe Leroy
2022-03-07 0:44 ` Michael Ellerman [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=875yoqoak8.fsf@mpe.ellerman.id.au \
--to=mpe@ellerman.id.au \
--cc=cgel.zte@gmail.com \
--cc=chi.minghao@zte.com.cn \
--cc=christophe.leroy@csgroup.eu \
--cc=jgg@ziepe.ca \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=maz@kernel.org \
--cc=paulus@samba.org \
--cc=tglx@linutronix.de \
--cc=zealci@zte.com.cn \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.