diff options
author | Dan Carpenter <dan.carpenter@oracle.com> | 2012-06-14 20:20:44 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2012-07-16 11:47:48 -0400 |
commit | 4575efeebc7c614b981f7a399b2ba614fad39689 (patch) | |
tree | 884cea9a1ea830a5d4a9fcdc46dceea91fe8b10a | |
parent | c229e2f6bab8ed64bf44110831d36221c648e1bf (diff) |
can: c_can: precedence error in c_can_chip_config()
commit d9cb9bd63eb27ac19f26a8547128c053f43a5da8 upstream.
(CAN_CTRLMODE_LISTENONLY & CAN_CTRLMODE_LOOPBACK) is (0x02 & 0x01) which
is zero so the condition is never true. The intent here was to test
that both flags were set.
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Acked-by: Oliver Hartkopp <socketcan@hartkopp.net>
Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r-- | drivers/net/can/c_can/c_can.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/net/can/c_can/c_can.c b/drivers/net/can/c_can/c_can.c index 1f8a8244f23..1bf80328cc6 100644 --- a/drivers/net/can/c_can/c_can.c +++ b/drivers/net/can/c_can/c_can.c | |||
@@ -592,8 +592,8 @@ static void c_can_chip_config(struct net_device *dev) | |||
592 | priv->write_reg(priv, &priv->regs->control, | 592 | priv->write_reg(priv, &priv->regs->control, |
593 | CONTROL_ENABLE_AR); | 593 | CONTROL_ENABLE_AR); |
594 | 594 | ||
595 | if (priv->can.ctrlmode & (CAN_CTRLMODE_LISTENONLY & | 595 | if ((priv->can.ctrlmode & CAN_CTRLMODE_LISTENONLY) && |
596 | CAN_CTRLMODE_LOOPBACK)) { | 596 | (priv->can.ctrlmode & CAN_CTRLMODE_LOOPBACK)) { |
597 | /* loopback + silent mode : useful for hot self-test */ | 597 | /* loopback + silent mode : useful for hot self-test */ |
598 | priv->write_reg(priv, &priv->regs->control, CONTROL_EIE | | 598 | priv->write_reg(priv, &priv->regs->control, CONTROL_EIE | |
599 | CONTROL_SIE | CONTROL_IE | CONTROL_TEST); | 599 | CONTROL_SIE | CONTROL_IE | CONTROL_TEST); |