On Thu, Nov 25 2021 at 15:25, Thomas Gleixner wrote: > On Tue, Aug 03 2021 at 21:32, ira weiny wrote: >> @@ -200,16 +200,14 @@ __setup("init_pkru=", setup_init_pkru); >> */ >> u32 update_pkey_val(u32 pk_reg, int pkey, unsigned int flags) >> { >> - int pkey_shift = pkey * PKR_BITS_PER_PKEY; >> - >> /* Mask out old bit values */ >> - pk_reg &= ~(((1 << PKR_BITS_PER_PKEY) - 1) << pkey_shift); >> + pk_reg &= ~PKR_PKEY_MASK(pkey); >> >> /* Or in new values */ >> if (flags & PKEY_DISABLE_ACCESS) >> - pk_reg |= PKR_AD_BIT << pkey_shift; >> + pk_reg |= PKR_AD_KEY(pkey); >> if (flags & PKEY_DISABLE_WRITE) >> - pk_reg |= PKR_WD_BIT << pkey_shift; >> + pk_reg |= PKR_WD_KEY(pkey); > > I'm not seeing how this is improving that code. Quite the contrary. Aside of that why are you ordering it the wrong way around, i.e. 1) implement turd 2) polish turd instead of implementing the required helpers first if they are really providing value. Thanks, tglx