From patchwork Mon Dec 12 07:16:20 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Xi Wang X-Patchwork-Id: 130649 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 1321AB702E for ; Mon, 12 Dec 2011 18:18:06 +1100 (EST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752797Ab1LLHR7 (ORCPT ); Mon, 12 Dec 2011 02:17:59 -0500 Received: from mail-qw0-f46.google.com ([209.85.216.46]:40950 "EHLO mail-qw0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752426Ab1LLHR6 (ORCPT ); Mon, 12 Dec 2011 02:17:58 -0500 Received: by qadc12 with SMTP id c12so2074939qad.19 for ; Sun, 11 Dec 2011 23:17:57 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=from:to:cc:subject:date:message-id:x-mailer; bh=UhVcjRcdyLgyP8anFGodOB6BQejAs+kozTkSK2XkDxg=; b=PTP6xFUxdYnbuwU0le1KmuvBfxmD0tBD4Hi9BCVBTUFePaDJl89ayG+54hcErx5Fe3 AUs1a+aEQXUOhgFZQpmw7jW1b/UQsycI1s4BeplnfhrGM6gkfIKlzOvVTPGCvCzDUl3i c7s7RvqS+Vt4vW5gq91aJQ515uFDwOafLru7w= Received: by 10.224.213.197 with SMTP id gx5mr16049025qab.80.1323674277851; Sun, 11 Dec 2011 23:17:57 -0800 (PST) Received: from localhost.localdomain (hchen.csail.mit.edu. [18.26.5.5]) by mx.google.com with ESMTPS id dj8sm8977227qab.19.2011.12.11.23.17.56 (version=TLSv1/SSLv3 cipher=OTHER); Sun, 11 Dec 2011 23:17:57 -0800 (PST) From: Xi Wang To: Masayuki Ohtake , Tomoya MORINAGA , Wolfgang Grandegger Cc: linux-can@vger.kernel.org, netdev@vger.kernel.org, "David S. Miller" , Xi Wang Subject: [PATCH] pch_can: fix error passive level test Date: Mon, 12 Dec 2011 02:16:20 -0500 Message-Id: <1323674180-16916-1-git-send-email-xi.wang@gmail.com> X-Mailer: git-send-email 1.7.5.4 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org The test (((errc & PCH_REC) >> 8) > 127) would always be false because the receive error counter ((errc & PCH_REC) >> 8) is at most 127, where PCH_REC is defined as 0x7f00. To test whether the receive error counter has reached the error passive level, the RP bit (15) should be used. Signed-off-by: Xi Wang Acked-by: Wolfgang Grandegger --- drivers/net/can/pch_can.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/drivers/net/can/pch_can.c b/drivers/net/can/pch_can.c index d11fbb2..6edc25e 100644 --- a/drivers/net/can/pch_can.c +++ b/drivers/net/can/pch_can.c @@ -66,6 +66,7 @@ #define PCH_IF_CREQ_BUSY BIT(15) #define PCH_STATUS_INT 0x8000 +#define PCH_RP 0x00008000 #define PCH_REC 0x00007f00 #define PCH_TEC 0x000000ff @@ -527,7 +528,7 @@ static void pch_can_error(struct net_device *ndev, u32 status) priv->can.can_stats.error_passive++; state = CAN_STATE_ERROR_PASSIVE; cf->can_id |= CAN_ERR_CRTL; - if (((errc & PCH_REC) >> 8) > 127) + if (errc & PCH_RP) cf->data[1] |= CAN_ERR_CRTL_RX_PASSIVE; if ((errc & PCH_TEC) > 127) cf->data[1] |= CAN_ERR_CRTL_TX_PASSIVE;