On Wed, 29 Mar 2017 19:22:10 +0900 Masahiro Yamada 
<yamada.masah...@socionext.com> wrote:

> We often check if a pointer has a specific alignment.  Because the
> '&' (bitwise AND) operator cannot take a pointer for the operand,
> so we need a cast like, IS_ALIGNED((unsigned long)p, a).
> 
> IS_PTR_ALIGNED will be useful as a shorthand.
> 
> ...
>
> --- a/include/linux/kernel.h
> +++ b/include/linux/kernel.h
> @@ -50,6 +50,7 @@
>  #define __ALIGN_MASK(x, mask)        __ALIGN_KERNEL_MASK((x), (mask))
>  #define PTR_ALIGN(p, a)              ((typeof(p))ALIGN((unsigned long)(p), 
> (a)))
>  #define IS_ALIGNED(x, a)             (((x) & ((typeof(x))(a) - 1)) == 0)
> +#define IS_PTR_ALIGNED(p, a)         (IS_ALIGNED((unsigned long)p, a))
>  
>  /* generic data direction definitions */
>  #define READ                 0

It would be nice to see some conversions which actually use this new
macro.

Reply via email to