Re: [PATCH 1/3] mm: generalize VM_BUG_ON() macros

From: Sasha Levin
Date: Wed Oct 01 2014 - 07:39:47 EST


On 10/01/2014 07:31 AM, Kirill A. Shutemov wrote:
> +#define _VM_DUMP(arg, cond) do { \
> + if (__builtin_types_compatible_p(typeof(*arg), struct page)) \
> + dump_page((struct page *) arg, \
> + "VM_BUG_ON(" __stringify(cond)")"); \
> + else if (__builtin_types_compatible_p(typeof(*arg), \
> + struct vm_area_struct)) \
> + dump_vma((struct vm_area_struct *) arg); \
> + else if (__builtin_types_compatible_p(typeof(*arg), \
> + struct mm_struct)) \
> + dump_mm((struct mm_struct *) arg); \
> + else \
> + BUILD_BUG(); \
> +} while(0)

__same_type() instead of __builtin_types_compatible_p() would look nicer,
but I don't think that all compilers support that:

include/linux/compiler-intel.h:/* Intel ECC compiler doesn't support __builtin_types_compatible_p() */

So it would effectively disable VM_BUG_ONs on Intel's compiler.


Thanks,
Sasha
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/