On Mon, Mar 23, 2020 at 10:14:50PM -0300, Jason Gunthorpe wrote: > +enum { > + HMM_NEED_FAULT = 1 << 0, > + HMM_NEED_WRITE_FAULT = HMM_NEED_FAULT | (1 << 1), > + HMM_NEED_ALL_BITS = HMM_NEED_FAULT | HMM_NEED_WRITE_FAULT, I have to say I find the compound version of HMM_NEED_WRITE_FAULT way harder to understand than the logic in the previous version, and would refer keeping separate bits here. Mostly beccause of statements like this: > + if ((required_fault & HMM_NEED_WRITE_FAULT) == HMM_NEED_WRITE_FAULT) { which seems rather weird.