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

From: Kirill A. Shutemov
Date: Wed Oct 01 2014 - 09:18:42 EST


Sasha Levin wrote:
> 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

We can make _VM_DUMP nop, but I don't think ICC can build kernel anyway:
we already use __builtin_types_compatible_p() in i915 driver and other
places. Nobody cares.

Any other comments?

--
Kirill A. Shutemov
--
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/