Message ID | 20210917045204.1385801-1-nathan@kernel.org (mailing list archive) |
---|---|
State | Accepted |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net-next,v2] ptp: ocp: Avoid operator precedence warning in ptp_ocp_summary_show() | expand |
Context | Check | Description |
---|---|---|
netdev/cover_letter | success | Link |
netdev/fixes_present | success | Link |
netdev/patch_count | success | Link |
netdev/tree_selection | success | Clearly marked for net-next |
netdev/subject_prefix | success | Link |
netdev/cc_maintainers | warning | 1 maintainers not CCed: ndesaulniers@google.com |
netdev/source_inline | success | Was 0 now: 0 |
netdev/verify_signedoff | success | Link |
netdev/module_param | success | Was 0 now: 0 |
netdev/build_32bit | success | Errors and warnings before: 0 this patch: 0 |
netdev/kdoc | success | Errors and warnings before: 0 this patch: 0 |
netdev/verify_fixes | success | Link |
netdev/checkpatch | success | total: 0 errors, 0 warnings, 0 checks, 13 lines checked |
netdev/build_allmodconfig_warn | success | Errors and warnings before: 0 this patch: 0 |
netdev/header_inline | success | Link |
On Thu, Sep 16, 2021 at 09:52:05PM -0700, Nathan Chancellor wrote: > Clang warns twice: > > drivers/ptp/ptp_ocp.c:2065:16: error: operator '?:' has lower precedence > than '&'; '&' will be evaluated first > [-Werror,-Wbitwise-conditional-parentheses] > on & map ? " ON" : "OFF", src); > ~~~~~~~~ ^ > drivers/ptp/ptp_ocp.c:2065:16: note: place parentheses around the '&' > expression to silence this warning > on & map ? " ON" : "OFF", src); > ^ > ( ) > drivers/ptp/ptp_ocp.c:2065:16: note: place parentheses around the '?:' > expression to evaluate it first > on & map ? " ON" : "OFF", src); > ^ > > on and map are both booleans so this should be a logical AND, which > clears up the operator precedence issue. > > Fixes: a62a56d04e63 ("ptp: ocp: Enable 4th timestamper / PPS generator") > Link: https://github.com/ClangBuiltLinux/linux/issues/1457 > Suggested-by: Jonathan Lemon <jonathan.lemon@gmail.com> > Signed-off-by: Nathan Chancellor <nathan@kernel.org> Acked-by: Jonathan Lemon <jonathan.lemon@gmail.com>
On Thu, 16 Sep 2021 22:41:14 -0700 Jonathan Lemon wrote: > On Thu, Sep 16, 2021 at 09:52:05PM -0700, Nathan Chancellor wrote: > > Clang warns twice: > > > > drivers/ptp/ptp_ocp.c:2065:16: error: operator '?:' has lower precedence > > than '&'; '&' will be evaluated first > > [-Werror,-Wbitwise-conditional-parentheses] > > on & map ? " ON" : "OFF", src); > > ~~~~~~~~ ^ > > drivers/ptp/ptp_ocp.c:2065:16: note: place parentheses around the '&' > > expression to silence this warning > > on & map ? " ON" : "OFF", src); > > ^ > > ( ) > > drivers/ptp/ptp_ocp.c:2065:16: note: place parentheses around the '?:' > > expression to evaluate it first > > on & map ? " ON" : "OFF", src); > > ^ > > > > on and map are both booleans so this should be a logical AND, which > > clears up the operator precedence issue. > > > > Fixes: a62a56d04e63 ("ptp: ocp: Enable 4th timestamper / PPS generator") > > Link: https://github.com/ClangBuiltLinux/linux/issues/1457 > > Suggested-by: Jonathan Lemon <jonathan.lemon@gmail.com> > > Signed-off-by: Nathan Chancellor <nathan@kernel.org> > > Acked-by: Jonathan Lemon <jonathan.lemon@gmail.com> Applied, thanks!
diff --git a/drivers/ptp/ptp_ocp.c b/drivers/ptp/ptp_ocp.c index 844b1401cc5d..c26708f486cf 100644 --- a/drivers/ptp/ptp_ocp.c +++ b/drivers/ptp/ptp_ocp.c @@ -2062,11 +2062,11 @@ ptp_ocp_summary_show(struct seq_file *s, void *data) on = ioread32(&ts_reg->enable); map = !!(bp->pps_req_map & OCP_REQ_TIMESTAMP); seq_printf(s, "%7s: %s, src: %s\n", "TS3", - on & map ? " ON" : "OFF", src); + on && map ? " ON" : "OFF", src); map = !!(bp->pps_req_map & OCP_REQ_PPS); seq_printf(s, "%7s: %s, src: %s\n", "PPS", - on & map ? " ON" : "OFF", src); + on && map ? " ON" : "OFF", src); } if (bp->irig_out) {
Clang warns twice: drivers/ptp/ptp_ocp.c:2065:16: error: operator '?:' has lower precedence than '&'; '&' will be evaluated first [-Werror,-Wbitwise-conditional-parentheses] on & map ? " ON" : "OFF", src); ~~~~~~~~ ^ drivers/ptp/ptp_ocp.c:2065:16: note: place parentheses around the '&' expression to silence this warning on & map ? " ON" : "OFF", src); ^ ( ) drivers/ptp/ptp_ocp.c:2065:16: note: place parentheses around the '?:' expression to evaluate it first on & map ? " ON" : "OFF", src); ^ on and map are both booleans so this should be a logical AND, which clears up the operator precedence issue. Fixes: a62a56d04e63 ("ptp: ocp: Enable 4th timestamper / PPS generator") Link: https://github.com/ClangBuiltLinux/linux/issues/1457 Suggested-by: Jonathan Lemon <jonathan.lemon@gmail.com> Signed-off-by: Nathan Chancellor <nathan@kernel.org> --- v1 -> v2: https://lore.kernel.org/r/20210916194351.3860836-1-nathan@kernel.org/ * Change fix from adding parentheses to moving from bitwise to logical AND. Thanks to Jonathan for catching that both operands were boolean, which I unfortunately missed. drivers/ptp/ptp_ocp.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) base-commit: 8dc84dcd7f74b50f81de3dbf6f6b5b146e3a8eea