Re: [PATCH 2/2] tools include: Fix wrong macro definitions for cpu_to_le* for big endian

From: Jiri Olsa
Date: Thu Jun 16 2016 - 02:39:21 EST


On Thu, Jun 16, 2016 at 01:32:09AM +0000, He Kuang wrote:
> From: Wang Nan <wangnan0@xxxxxxxxxx>
>
> The cpu_to_le* macros in kernel.h are defined without considering
> endianese. This patch includes "byteoder/generic.h" instead to fix the
> bug, and removes redundant le64_to_cpu definition in intel-bts.c.
>
> Signed-off-by: Wang Nan <wangnan0@xxxxxxxxxx>
> Signed-off-by: He Kuang <hekuang@xxxxxxxxxx>
> ---
> tools/include/linux/kernel.h | 5 ++---
> tools/perf/util/intel-bts.c | 5 -----
> 2 files changed, 2 insertions(+), 8 deletions(-)
>
> diff --git a/tools/include/linux/kernel.h b/tools/include/linux/kernel.h
> index 76df535..6145e41 100644
> --- a/tools/include/linux/kernel.h
> +++ b/tools/include/linux/kernel.h
> @@ -64,11 +64,10 @@
> #endif
>
> /*
> - * Both need more care to handle endianness
> + * Need more care to handle endianness
> * (Don't use bitmap_copy_le() for now)

what's the purpose of this comment now?

> */
> -#define cpu_to_le64(x) (x)
> -#define cpu_to_le32(x) (x)
> +#include <linux/byteorder/generic.h>
>
> static inline int
> vscnprintf(char *buf, size_t size, const char *fmt, va_list args)
> diff --git a/tools/perf/util/intel-bts.c b/tools/perf/util/intel-bts.c
> index 9df9960..0e632c4 100644
> --- a/tools/perf/util/intel-bts.c
> +++ b/tools/perf/util/intel-bts.c
> @@ -40,11 +40,6 @@
> #define INTEL_BTS_ERR_NOINSN 5
> #define INTEL_BTS_ERR_LOST 9
>
> -#if __BYTE_ORDER == __BIG_ENDIAN
> -#define le64_to_cpu bswap_64
> -#else
> -#define le64_to_cpu
> -#endif

the purpose of this patchset is to unify these macros right?

there're more conversion defines in:
util/intel-pt-decoder/intel-pt-pkt-decoder.c,

please remove them as well

thanks,
jirka