Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752562AbcDZHwJ (ORCPT ); Tue, 26 Apr 2016 03:52:09 -0400 Received: from mail-db3on0073.outbound.protection.outlook.com ([157.55.234.73]:54310 "EHLO emea01-db3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752257AbcDZHwH (ORCPT ); Tue, 26 Apr 2016 03:52:07 -0400 Authentication-Results: spf=pass (sender IP is 193.47.165.134) smtp.mailfrom=mellanox.com; synopsys.com; dkim=none (message not signed) header.d=none;synopsys.com; dmarc=pass action=none header.from=mellanox.com; From: Noam Camus To: CC: , , , , Subject: [PATCH 3/3] net: nps_enet: bug fix - handle lost tx interrupts Date: Tue, 26 Apr 2016 10:35:26 +0300 Message-ID: <1461656126-22226-4-git-send-email-noamca@mellanox.com> X-Mailer: git-send-email 1.7.1 In-Reply-To: <1461656126-22226-1-git-send-email-noamca@mellanox.com> References: <1461656126-22226-1-git-send-email-noamca@mellanox.com> MIME-Version: 1.0 Content-Type: text/plain X-TM-AS-Product-Ver: SMEX-11.0.0.1191-8.000.1202-22284.005 X-TM-AS-Result: No--5.365500-8.000000-31 X-TM-AS-User-Approved-Sender: No X-TM-AS-User-Blocked-Sender: No X-EOPAttributedMessage: 0 X-Forefront-Antispam-Report: CIP:193.47.165.134;IPV:NLI;CTRY:IL;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(2980300002)(438002)(189002)(199003)(49486002)(1096002)(1220700001)(86362001)(106466001)(50226001)(77096005)(33646002)(87936001)(101416001)(2351001)(5003940100001)(107886002)(6806005)(110136002)(92566002)(50986999)(76176999)(11100500001)(189998001)(36756003)(5008740100001)(48376002)(2950100001)(4326007)(50466002)(229853001)(4001430100002)(586003)(19580405001)(19580395003)(551934003)(81166005)(47776003)(2906002);DIR:OUT;SFP:1101;SCL:1;SRVR:AM4PR05MB1537;H:mtlcas13.mtl.com;FPR:;SPF:Pass;MLV:sfv;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;AM1FFO11FD047;1:cFPC1e3SLP02YFs3kq3pWwcWZLNtMBIhlmZtf+vTuEfoY7A2oNbGVF30iHR4hnZIYraSLTbinXhu2dWg8CuAmsO3dLlJvQYC40pFvTiUiYsMRJV8EYwgRlZJ3+NViL6FI/Q7bhnRw2qRPv/L6EFTUbMVd58oh5xInINqy52R+cyBhh+oY+AhzdqKvsUELhfIZDmsuxsx9SVm6+JbMsxoxdzyB8Qg/FrxqrY+JHSk07eYLikULIdtkRSywC8YJg0bWJTRlFf4BmFhBhdMKHxUgBTQEs/Mcg4cNt4p1fUsczUnr8LLPH75MhzgENx8xclWGS3/Zb8uQ4LlPZnFjl1vJxgszmcuvLSKiofnGo2KsVUEHj/uiCofHf1E+a24uQeVTsTKO4OcCgAE2rwV9EhlKpDwZkO2jqwEohKnZt1YFKteGkYOfHg9OmPucLSPXohvDGkRUJJ0kY+HnwcEgp/v9G5+j9D0jiL3dzgb2bUwAhdNI1TwaGmQf+aT/eLBwPMQBsTY9tOs121UVo8S8DHlotRU+2SsbFEHKDit/4XuSdk= X-MS-Office365-Filtering-Correlation-Id: 5df1a1ea-d494-46fa-7880-08d36da571fd X-Microsoft-Exchange-Diagnostics: 1;AM4PR05MB1537;2:fDV1JdqwkIJT78iMDgTBcCiukOUqC7/sH726M9WlByUauEXjaHeu3a6CiRBfStC/k7tgOGZu75OHlaHkTrMVF+begcDRTCaAnm9d3IErpIPqtPuZ4bU+pVvg7fx9Dwgo5pmRDVCPnoB8wzOK6eNN91aucP/z89auc+s8If66FAnT+yeb7wxWYXUKU3/ZezRV;3:l8nxXNDmhTGx2k52JRkmqsTTTJfgXbmAbFHhi9jl73D/ZTnir6Ur2ZnwfPSe1rROwvg9oOw0uV4RgP4armBubznyp1fblz/yH7HbGri8zD7QXet68HZXLDO4ImN7p/RK/Aim+QgH+ghFY8litaSSK/hNezGBoBg1aWSFFQ/6h6WfISELbBNoBegGizaINpWf/k8v/e504/615o5sZYfjXUnLTErrzDybUd31zdZ18MyIi1WVk6IWmd6TFmKMYSc9Cq2wptSRt4fLaqQ7s01ceA== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(8251501002);SRVR:AM4PR05MB1537; X-Microsoft-Exchange-Diagnostics: 1;AM4PR05MB1537;25:m7lUsVVJQKazZDN0xfX7IZklzBHY/T19P9HYtETaHiJzyJB+AJ4cYVzfGJ63IsybaLHNdZYKO7YyHtrz//TppfwVOS01ulz/GGUThwg+D9n0Pys0axmjxcXHWE0zuwH0ie+LnUDEF47WFxt9hDC88mVNuorT6ie0aHOZXt6mAa6eKICP+CckpKi+c6NIaXtTuUJbhyD035BGSKQH5/TCVCEhUmCLiKUHHqSrdAh0c7YigMtAcP7amhasT9tnrkhsu0OS3l9H/2pR85Mj71npVKmoD/wxQQ56wm4cU5Jd2pxcglJ/kEDMwzGvBeL2Z+ldVlOkM02YtHKwKDf8h9A+z65i9BT0zKQwOWy/8WSubiKzNlDlUx4bz73da3TSXkBCr/pYuJ7//dXw4oz8NRZ0SkFHm1mCR95tuvbrggFnjbQSsx9rTKD/66lSKMzfeMzmAyuv1hZBBXF/s9SW0QFVFsgwXFxx37PsUJrkHiKM53U24QOmUtnPr3bSvOu958ZJwD9Cd0k+H1Pfilk+Uu1oYrIry+XbRgjld7+XrrNlf7/8WuV7m1G/grSY82qi7wiMDnZFlorCjKaTkn3AmcE9AElZzTmB6Vgpxruobd7ZtOlEM+A5IrdrxxoPkyZz6WncJo5ColZasVnYiXyM6eMhMWKXaew0N9Ogi8UUgbqsjEMD8LyTL6v+i36VAQh+a10q9mJ80VD6tg8JT54e3qA1hg== X-Microsoft-Exchange-Diagnostics: 1;AM4PR05MB1537;20:O0Gh/tnOtdt6Crk4Cz5cQSIGUB+O3xLUpi/+aLj04p3xGxMaKvjAL0UI5aMvPSa4JQ6KplVbmscuPVqpl0DPrvD+SLPKEiwo0kNJS6+qNTGEw+dbPnCabyI31JpOHLGFjlxrVYP8V2IHSCHnFq/H/xo9MHkIW6aYY/7Dz8jUJuxfIzsy3YpaY2sfI2w7q92I9l2LgUootlWraKzZJSHY4M+0itgDLMaOO6JX5LNpgYAmBgWGzOqsRxnrEFwooES28d8ofiCXTwzEDsSpRuo3wRZ4aILTBgTdK3YzydTTb1WAV5fQqtkzkOdudn98IQpFDwD/SddYQiAt7KE7jYwVLhzlAJU9Hf7peZXYg9D1Vl8SbP71q3otredkFogQsZOXVZcaVeXTO+3wayrVYowJb2RnP5bZDDf5CxR7tOvcLqFcKMTikQ/am8g+YRTfU6oGWVhUPXrIG0acyeO1G7W7mhlwsPI8DZXO0HrqDG6aOgaepDeOrLkC62Jh4vbM3Lmp X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(9101521072)(601004)(2401047)(13023025)(13024025)(13015025)(13018025)(5005006)(13017025)(8121501046)(3002001)(10201501046)(6055026);SRVR:AM4PR05MB1537;BCL:0;PCL:0;RULEID:;SRVR:AM4PR05MB1537; X-Microsoft-Exchange-Diagnostics: 1;AM4PR05MB1537;4:1JXssYGmcAm9O9WTY5/G3IyVJnLgaHzngNESutTU5mvvxsMhu7UnevZot1jrBZ5GZrW4YbnDytT9KqXMkrlvs9+YgGRQU0qUA8UAY8Nuugg+5PfwPkRwXNvoAZC4KU3ZTl894INZ9S+JBjSTzkS5PBJwgcaKTTSc7oTmmGq8I4UD2ClxasX3IZ+x7VHhOwS6JGwZNC3myeJdJMmB5Ui+LVDz08LheE93uCxinRdcSzQZXB3C1lgeu1WQOBaRvsGpRuOBjUGY2abL/156/d7xCyevAMR14+NklkMTBW9IYdwQgbfqjVP8nO0icuP2w9sMBs9AFs58O37LfXIbfQuXPVgsI1ziCEiwTAEypEu1mpXamOweA3KaOY8gm/7IjbzW9vI6sCv3j735sAS1mwRiLeu2mvi3hZhb1CPRHBopicnwx7/Pm858j8O8FHKbtrYDq8rZKLrSOJyEyUnd7cQ2CdIq4zZpgy7BCTxqA+rzHLna3gBm23H/YaIx9QYuxuOi X-Forefront-PRVS: 0924C6A0D5 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;AM4PR05MB1537;23:2ztExY9jp6eMhSlzWwdR50HddSWb/cqwKpfAPpFqn?= =?us-ascii?Q?W7FKFiX2yfVTKBke7w4gdyCI+sbBnRFtkJ2Dn766aFi4gj94z8I0FQ8NXQ+h?= =?us-ascii?Q?rZ2q/6CIjsjpgJWYn7H04ToyCG/Ti6AVmjUzUavnnUQ6iTEXvT9WG6TZUqb9?= =?us-ascii?Q?1dbH9iEZBdFLG7eUh+MLs6GWTjteXenQWXUsypEaLPrPCFzUF2Q7tWj8HTGn?= =?us-ascii?Q?D0JOaBrIqJTR69W4g03wflNcG0EOklJacG7ms9FKnOBJfEUKsmHtVmxy86P2?= =?us-ascii?Q?a6C543rbM3tKbgdi47elUybBZnTFYVGu1EY0VZDbOFJX8/np4HjP+SU9sEAI?= =?us-ascii?Q?aU/kdWiIDvC6kzLRaBcvGuB6AIUEm/1eLHFISwD8+y4KhPBnC9CSMXq0n+3R?= =?us-ascii?Q?GSXI/s6b+Uo2vE2s8J1Lr2MNH1ksenaTgTfuTblFzPmGQuo149HXycrc6fsl?= =?us-ascii?Q?1D4EWxCjO6ByGZl/yBGFFAqItKMwm/7CX91cZQQvCQEY4oyVt02aGLicbQb7?= =?us-ascii?Q?8XW2Wf5TaSv1bjcywOIA5jPphgGzkJQYrlE46QdR4mGL09L32LPvpTWQOY1q?= =?us-ascii?Q?5/i4ePaDFDaBlUhVLV0hHFTMl1cslY4MEXXH4N5Rg1IFOkV1Ut9qrXUahTSZ?= =?us-ascii?Q?Zbnn/2ynwrfBXg+fa9Q8JvfmQNs8QiUtev+bDYvfJAh8RF3Dot1yoLsrlKDS?= =?us-ascii?Q?Vwg/2jDHW9NHE/a/8iqV5t6C/f6y7AtWXogAUGYp7BwJwex9AEsi2Aitfh06?= =?us-ascii?Q?MFIyo3yVDH9ma/YC6DHDaShIMBAALZ3964WmFUBjosXa9EyEzIGTgf8MDcZ9?= =?us-ascii?Q?DqoklCyS+jcAqVdFugsA1EvqBuRV3iWY1anmQuLg6bVbKy+f6Agf8Nb7g1Fx?= =?us-ascii?Q?+fjV+2GbduoWfhAz3DI/cF4QZUFDPWZaA32qO5Z6Q2iBAy+KBbroirbWrjAS?= =?us-ascii?Q?JV9xXjZVXAy7cptM/pfPpi2rERl+wJdFuHATXHbhg+PujMtVFOD2RwEbawPW?= =?us-ascii?Q?fbhw0kZ4TgZsFX8sNaBco6Rcf2sQLRD8hWCQeJbR0cgA25pDR0xy6dwZu1RF?= =?us-ascii?Q?fH3iCo=3D?= X-Microsoft-Exchange-Diagnostics: 1;AM4PR05MB1537;5:apAWmoWovjwaOLNqV5DwjjObM09yruAqXskiYZoaKhDoGEhsCX3AIjHCJgJ+aTolsUQUTDIEOShOPTHC7PM05AiGPjvKYTGBwyTct2It2V0+CMI/Ta6GCFdO53fJnLyU2WQ2yG6BFJuG2zikcDVaAg==;24:CBTruju+FsFP7guGPnhp92nAoBaF/Mkl/1qTYtR9o5/3eeyJImAR/ALa/uoFKn+MnmNB0EBF6RK02R5GJa5vqdwc2IdHVTZfWLs5ya7Qdko=;7:exzWpa6LK4SUNYiaUn5kG7dtXq60nPvWjSOA5LvP2DG6vsIO27tEKhhouZH0cHkoag+RSE4b/b+BDhjyp/pGOnP9asddfRBs3ptqg9XGAfgIjphZMXhUkJu3+vmtbHCKfjw44i54zcv8zXd5V2Zr45OBnJJ9fKNw5McGpeIxqqLv4hograucI+WBvUn7Ml6C SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Apr 2016 07:36:13.7280 (UTC) X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=a652971c-7d2e-4d9b-a6a4-d149256f461b;Ip=[193.47.165.134];Helo=[mtlcas13.mtl.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM4PR05MB1537 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1763 Lines: 46 From: Elad Kanfi The tx interrupt is of edge type, and in case such interrupt is triggered while it is masked it will not be handled even after tx interrupts are re-enabled in the end of NAPI poll. This will cause tx network to stop in the following scenario: * Rx is being handled, hence interrupts are masked. * Tx interrupt is triggered after checking if there is some tx to handle and before re-enabling the interrupts. In this situation only rx transaction will release tx requests. In order to handle the tx that was missed( if there was one ), a NAPI reschdule was added after enabling the interrupts. Signed-off-by: Elad Kanfi Acked-by: Noam Camus --- drivers/net/ethernet/ezchip/nps_enet.c | 12 ++++++++++++ 1 files changed, 12 insertions(+), 0 deletions(-) diff --git a/drivers/net/ethernet/ezchip/nps_enet.c b/drivers/net/ethernet/ezchip/nps_enet.c index 8cf3cde..5eaede1 100644 --- a/drivers/net/ethernet/ezchip/nps_enet.c +++ b/drivers/net/ethernet/ezchip/nps_enet.c @@ -199,6 +199,18 @@ static int nps_enet_poll(struct napi_struct *napi, int budget) nps_enet_reg_set(priv, NPS_ENET_REG_BUF_INT_ENABLE, buf_int_enable_value); + + /* in case we will get a tx interrupt while interrupts + * are masked, we will lose it since the tx is edge interrupt. + * specifically, while executing the code section above, + * between nps_enet_tx_handler and the interrupts enable, all + * tx requests will be stuck until we will get an rx interrupt. + * the two code lines below will solve this situation by + * re-adding ourselves to the poll list. + */ + + if (nps_enet_is_tx_pending(priv)) + napi_reschedule(napi); } return work_done; -- 1.7.1