Re: [PATCH 2/2] enic: Silence Sparse Warning: "dubious: x | !y"
From: Ben Hutchings <hidden>
Date: 2012-02-24 19:10:56
Also in:
kernel-janitors, lkml
On Fri, 2012-02-24 at 22:27 +0530, santosh nayak wrote:
From: Santosh Nayak <redacted> Sparse is giving the following warning: "warning: dubious: x | !y" "enic_are_pp_different" is static and expected to return true or false. Logical or is indended here. With logical or, in best case, execution will be faster because if leftmost operand is true then no need to check other operands.
The shortcut behaviour of logical-or means more conditional jumps to be predicted and more potential for pipeline stalls. So bitwise-or can in some cases be more efficient. But this function appears to be control-path code where micro-optimisation just doesn't matter. Use of logical-or can be justified purely on the grounds of clarity. Ben.
quoted hunk ↗ jump to hunk
Signed-off-by: Santosh Nayak <redacted> --- drivers/net/ethernet/cisco/enic/enic_pp.c | 8 ++++---- 1 files changed, 4 insertions(+), 4 deletions(-)diff --git a/drivers/net/ethernet/cisco/enic/enic_pp.c b/drivers/net/ethernet/cisco/enic/enic_pp.c index dafea1e..3a6de22 100644 --- a/drivers/net/ethernet/cisco/enic/enic_pp.c +++ b/drivers/net/ethernet/cisco/enic/enic_pp.c@@ -159,10 +159,10 @@ static int enic_unset_port_profile(struct enic *enic, int vf) static int enic_are_pp_different(struct enic_port_profile *pp1, struct enic_port_profile *pp2) { - return strcmp(pp1->name, pp2->name) | !!memcmp(pp1->instance_uuid, - pp2->instance_uuid, PORT_UUID_MAX) | - !!memcmp(pp1->host_uuid, pp2->host_uuid, PORT_UUID_MAX) | - !!memcmp(pp1->mac_addr, pp2->mac_addr, ETH_ALEN); + return strcmp(pp1->name, pp2->name) || !!memcmp(pp1->instance_uuid, + pp2->instance_uuid, PORT_UUID_MAX) || + !!memcmp(pp1->host_uuid, pp2->host_uuid, PORT_UUID_MAX) || + !!memcmp(pp1->mac_addr, pp2->mac_addr, ETH_ALEN); } static int enic_pp_preassociate(struct enic *enic, int vf,
-- Ben Hutchings, Staff Engineer, Solarflare Not speaking for my employer; that's the marketing department's job. They asked us to note that Solarflare product names are trademarked.