Re: [PATCH v3 09/11] Input: alps - remove unlikely() from IS_ERR*() condition

From: Dmitry Torokhov
Date: Sat Aug 31 2019 - 17:10:30 EST


On Sat, Aug 31, 2019 at 01:32:02PM -0700, Joe Perches wrote:
> On Sat, 2019-08-31 at 17:25 +0200, Pali Rohár wrote:
> > On Thursday 29 August 2019 10:50:39 Dmitry Torokhov wrote:
> > > On Thu, Aug 29, 2019 at 07:50:23PM +0300, Denis Efremov wrote:
> > > > "unlikely(IS_ERR_OR_NULL(x))" is excessive. IS_ERR_OR_NULL() already uses
> > > > unlikely() internally.
> > >
> > > The keyword here is _internally_.
> > >
> > > https://lore.kernel.org/lkml/20190821174857.GD76194@dtor-ws/
> > >
> > > So please no.
>
> I think it poor form not to simply restate your original
> objection from 4 message levels below this link

Thank you for the lesson in etiquette, but I posted reference to the
very message I wanted.

>
> https://lists.gt.net/linux/kernel/2269724
>
> Hm... I do not like this change. If I read code
>
> if (unlikely(IS_ERR_OR_NULL(priv->dev3)))
>
> then I know that it is really unlikely that condition will be truth and
> so this is some case of error/exception or something that normally does
> not happen too much.
>
> But if I read code
>
> if (IS_ERR_OR_NULL(priv->dev3))
>
> I know nothing about chance that this condition will be truth. Explicit
> unlikely in previous example give me more information.
>
> I alslo think this argument is dubious as it also applies
> to any IS_ERR and all the unlikely uses have been removed
> from those.

No, if you read the reference I posted, the argument does not apply to
all IS_ERR() instances. Majority of them are in probe() paths where we
do not really care about likely/unlikely. Here we are dealing with
IS_ERR in a [fairly] hot path.

Thanks.

--
Dmitry