I've been writing a patch to migrate the defined DAX_ZERO_PAGE to XA_ZERO_ENTRY for representing holes in files. XA_ZERO_ENTRY is defined in include/linux/xarray.h, where it's defined using xa_mk_internal(257). This function returns a void pointer, which is incompatible with the bitwise arithmetic it is performed on with. Currently, DAX_ZERO_PAGE is defined as an unsigned long, so I considered typecasting it. Typecasting every time would be repetitive and inefficient. I thought about making a new definition for it which has the typecast, but this breaks the original point of using already defined terms. Should we go the route of adding a new definition, we might as well just change the definition of DAX_ZERO_PAGE. This would break the simplicity of the current DAX bit definitions: #define DAX_LOCKED (1UL << 0) #define DAX_PMD (1UL << 1) #define DAX_ZERO_PAGE (1UL << 2) #define DAX_EMPTY (1UL << 3) Any thoughts on this, and what could be the best solution here? Best regards, Amy Parker (they/them)