diff options
author | David S. Miller <davem@davemloft.net> | 2015-09-01 15:48:08 +0300 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2015-09-02 07:53:02 +0200 |
commit | d192ebe8bb78296d1d86b35cacb7aa3cd5414d7a (patch) | |
tree | 700338cd2262ef4b8a3953e078b4e459b55e8b67 /include | |
parent | eeab50e9619c1922649bb3d9d9da8241f84d81e1 (diff) | |
download | barebox-d192ebe8bb78296d1d86b35cacb7aa3cd5414d7a.tar.gz barebox-d192ebe8bb78296d1d86b35cacb7aa3cd5414d7a.tar.xz |
endian: Always evaluate arguments
This patch is based on
commit 3d6f4a20cc287a8980c6186624834cf10a70752b
Author: David Miller <davem@davemloft.net>
Date: Thu Jul 24 23:38:31 2008 -0700
endian: Always evaluate arguments.
In barebox.git/drivers/usb/core/usb.c,
function usb_parse_config() we have had
le16_to_cpus(&(dev->config.wTotalLength));
which evaluates to "do { } while (0)" on little endian,
so struct usb_configuration field misuse will never
be discovered on little endian.
Therefore, always evaluate the arguments to nop endian
transformation operations.
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Antony Pavlov <antonynpavlov@gmail.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/byteorder/big_endian.h | 12 | ||||
-rw-r--r-- | include/linux/byteorder/little_endian.h | 12 |
2 files changed, 12 insertions, 12 deletions
diff --git a/include/linux/byteorder/big_endian.h b/include/linux/byteorder/big_endian.h index 09fb188bee..e560ef67d6 100644 --- a/include/linux/byteorder/big_endian.h +++ b/include/linux/byteorder/big_endian.h @@ -57,12 +57,12 @@ #define __le32_to_cpus(x) __swab32s((x)) #define __cpu_to_le16s(x) __swab16s((x)) #define __le16_to_cpus(x) __swab16s((x)) -#define __cpu_to_be64s(x) do {} while (0) -#define __be64_to_cpus(x) do {} while (0) -#define __cpu_to_be32s(x) do {} while (0) -#define __be32_to_cpus(x) do {} while (0) -#define __cpu_to_be16s(x) do {} while (0) -#define __be16_to_cpus(x) do {} while (0) +#define __cpu_to_be64s(x) do { (void)(x); } while (0) +#define __be64_to_cpus(x) do { (void)(x); } while (0) +#define __cpu_to_be32s(x) do { (void)(x); } while (0) +#define __be32_to_cpus(x) do { (void)(x); } while (0) +#define __cpu_to_be16s(x) do { (void)(x); } while (0) +#define __be16_to_cpus(x) do { (void)(x); } while (0) #include <linux/byteorder/generic.h> diff --git a/include/linux/byteorder/little_endian.h b/include/linux/byteorder/little_endian.h index 5870a6ee07..a821b2741b 100644 --- a/include/linux/byteorder/little_endian.h +++ b/include/linux/byteorder/little_endian.h @@ -51,12 +51,12 @@ #define __be32_to_cpup(x) __swab32p((x)) #define __cpu_to_be16p(x) __swab16p((x)) #define __be16_to_cpup(x) __swab16p((x)) -#define __cpu_to_le64s(x) do {} while (0) -#define __le64_to_cpus(x) do {} while (0) -#define __cpu_to_le32s(x) do {} while (0) -#define __le32_to_cpus(x) do {} while (0) -#define __cpu_to_le16s(x) do {} while (0) -#define __le16_to_cpus(x) do {} while (0) +#define __cpu_to_le64s(x) do { (void)(x); } while (0) +#define __le64_to_cpus(x) do { (void)(x); } while (0) +#define __cpu_to_le32s(x) do { (void)(x); } while (0) +#define __le32_to_cpus(x) do { (void)(x); } while (0) +#define __cpu_to_le16s(x) do { (void)(x); } while (0) +#define __le16_to_cpus(x) do { (void)(x); } while (0) #define __cpu_to_be64s(x) __swab64s((x)) #define __be64_to_cpus(x) __swab64s((x)) #define __cpu_to_be32s(x) __swab32s((x)) |