| From 440868661f36071886ed360d91de83bd67c73b4f Mon Sep 17 00:00:00 2001 |
| From: Phong Tran <tranmanphong@gmail.com> |
| Date: Tue, 30 Apr 2019 21:56:24 +0700 |
| Subject: of: fix clang -Wunsequenced for be32_to_cpu() |
| |
| From: Phong Tran <tranmanphong@gmail.com> |
| |
| commit 440868661f36071886ed360d91de83bd67c73b4f upstream. |
| |
| Now, make the loop explicit to avoid clang warning. |
| |
| ./include/linux/of.h:238:37: warning: multiple unsequenced modifications |
| to 'cell' [-Wunsequenced] |
| r = (r << 32) | be32_to_cpu(*(cell++)); |
| ^~ |
| ./include/linux/byteorder/generic.h:95:21: note: expanded from macro |
| 'be32_to_cpu' |
| ^ |
| ./include/uapi/linux/byteorder/little_endian.h:40:59: note: expanded |
| from macro '__be32_to_cpu' |
| ^ |
| ./include/uapi/linux/swab.h:118:21: note: expanded from macro '__swab32' |
| ___constant_swab32(x) : \ |
| ^ |
| ./include/uapi/linux/swab.h:18:12: note: expanded from macro |
| '___constant_swab32' |
| (((__u32)(x) & (__u32)0x000000ffUL) << 24) | \ |
| ^ |
| |
| Signed-off-by: Phong Tran <tranmanphong@gmail.com> |
| Reported-by: Nick Desaulniers <ndesaulniers@google.com> |
| Link: https://github.com/ClangBuiltLinux/linux/issues/460 |
| Suggested-by: David Laight <David.Laight@ACULAB.COM> |
| Reviewed-by: Nick Desaulniers <ndesaulniers@google.com> |
| Cc: stable@vger.kernel.org |
| [robh: fix up whitespace] |
| Signed-off-by: Rob Herring <robh@kernel.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| include/linux/of.h | 4 ++-- |
| 1 file changed, 2 insertions(+), 2 deletions(-) |
| |
| --- a/include/linux/of.h |
| +++ b/include/linux/of.h |
| @@ -220,8 +220,8 @@ extern struct device_node *of_find_all_n |
| static inline u64 of_read_number(const __be32 *cell, int size) |
| { |
| u64 r = 0; |
| - while (size--) |
| - r = (r << 32) | be32_to_cpu(*(cell++)); |
| + for (; size--; cell++) |
| + r = (r << 32) | be32_to_cpu(*cell); |
| return r; |
| } |
| |