Re: [PATCH v1 1/1] IB/hfi1: Don't cast parameter in bit operations

From: 'Andy Shevchenko'
Date: Wed Feb 23 2022 - 17:31:00 EST


On Wed, Feb 23, 2022 at 09:44:32PM +0000, David Laight wrote:
> From: Andy Shevchenko
> > Sent: 23 February 2022 18:54
> >
> > While in this particular case it would not be a (critical) issue,
> > the pattern itself is bad and error prone in case somebody blindly
> > copies to their code.
>
> It is horribly wrong on BE systems.

You mean the pattern? Yes, it has three issues regarding to endianess and
potential out of boundary access.

...

> > - return handled;
> > + return IRQ_RETVAL(!bitmap_empty(pending, CCE_NUM_INT_CSRS * 64));

> You really don't want to scan the bitmap again.

Either way it wastes cycles, the outcome depends on the actual distribution of
the interrupts across the bitmap. If it gathered closer to the beginning of the
bitmap, my code wins, otherwise the original ones.

> Actually, of the face of it, you could merge the two loops.
> Provided you clear the status bit before calling the relevant
> handler I expect it will all work.

True. I will consider that for v2.

--
With Best Regards,
Andy Shevchenko