Re: [RFC PATCH net-next 3/6] net: ethernet: implement OA TC6 configuration function

From: Andrew Lunn
Date: Tue Sep 19 2023 - 08:55:02 EST


> >> +/* Unmasking interrupt fields in IMASK0 */
> >> +#define HDREM ~BIT(5) /* Header Error Mask */
> >> +#define LOFEM ~BIT(4) /* Loss of Framing Error Mask */
> >> +#define RXBOEM ~BIT(3) /* Rx Buffer Overflow Error Mask */
> >> +#define TXBUEM ~BIT(2) /* Tx Buffer Underflow Error Mask */
> >> +#define TXBOEM ~BIT(1) /* Tx Buffer Overflow Error Mask */
> >> +#define TXPEM ~BIT(0) /* Tx Protocol Error Mask */
> >
> > Using ~BIT(X) is very usual. I would not do this, Principle of Least
> > Surprise.
> Sorry, I don't get your point. Could you please explain bit more?

Look around kernel header files. How often do you see ~BIT(5)? My
guess it is approximately 0. So i'm suggesting you remove the ~ and
have the user of the #define assemble the mask and then do the ~ .

Andrew