On Fri, Mar 20, 2020 at 02:58:23PM +0900, Jaewon Kim wrote: > + TP_printk("addr=%lx err=%ld total_vm=0x%lx flags=0x%lx len=0x%lx lo=0x%lx hi=0x%lx mask=0x%lx ofs=0x%lx\n", > + IS_ERR_VALUE(__entry->addr) ? 0 : __entry->addr, > + IS_ERR_VALUE(__entry->addr) ? __entry->addr : 0, I didn't see the IS_ERR_VALUE problem that Vlastimil mentioned get resolved? I might suggest ... +++ b/include/linux/err.h @@ -19,7 +19,8 @@ #ifndef __ASSEMBLY__ -#define IS_ERR_VALUE(x) unlikely((unsigned long)(void *)(x) >= (unsigned long)-MAX_ERRNO) +#define __IS_ERR_VALUE(x) ((unsigned long)(void *)(x) >= (unsigned long)-MAX_ERRNO) +#define IS_ERR_VALUE(x) unlikely(__IS_ERR_VALUE(x)) static inline void * __must_check ERR_PTR(long error) { and then you can use __IS_ERR_VALUE() which removes the unlikely() problem.