Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752510AbcDZHgN (ORCPT ); Tue, 26 Apr 2016 03:36:13 -0400 Received: from mail-am1on0084.outbound.protection.outlook.com ([157.56.112.84]:43514 "EHLO emea01-am1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752448AbcDZHgL (ORCPT ); Tue, 26 Apr 2016 03:36:11 -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 0/3] Net driver bugs fix and code style Date: Tue, 26 Apr 2016 10:35:23 +0300 Message-ID: <1461656126-22226-1-git-send-email-noamca@mellanox.com> X-Mailer: git-send-email 1.7.1 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--7.119500-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)(4001430100002)(19580405001)(19580395003)(5003940100001)(49486002)(87936001)(86362001)(77096005)(586003)(47776003)(50226001)(101416001)(106466001)(2351001)(4326007)(1220700001)(50466002)(48376002)(1096002)(81166005)(6806005)(229853001)(2906002)(189998001)(50986999)(110136002)(107886002)(36756003)(5008740100001)(11100500001)(92566002)(33646002);DIR:OUT;SFP:1101;SCL:1;SRVR:HE1PR05MB1851;H:mtlcas13.mtl.com;FPR:;SPF:Pass;MLV:sfv;MX:1;A:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;AM1FFO11FD047;1:uXw8a3jrV/BTuX5wQKChAWlNqx27nsYkHkmDPfOOWtuDIqkrb9uPZlAP8Gsg4LXWkVwB+8Xxp2d/+jATTGshkPcVywFQXvZqCYDuorQwYKyMd5GqAsKYg7IDuQHp1TzD9h5sIfEPVG6/3mXKMKTChB7e0XQAKJyEym+0JZ8AdkwokKIdXMbCB+EWN/QgNONGsVcU2pYDP6f+NbFYp1xjtykSZjNHSwJLhwWVTa/aqzcPG5ro+ZmRCGkfakXi5NwRYcZ+X4REiBn/m4y3ad/6ccJG3BEnDKtkpO6IrRvk7FRhYN9MtHZg1QDvtcA1LQNMnxmxajzRXah2V9N8kavggvj8voDTUTa8ln1WeZYvN3dPY75ruKsYhihCOEn3kWul8lrVoU+3T9kJEK15yUJqEYQCXi+5Al3IYsBZCKhT5dxRfbe3blK/ddXHmi1OMiPgRLT3TYfrk5YjiHsYRDmiQIywPVqPWxnbEXB/eHjH9Xva1RAMehWZdFui3BRFJnrM9nc0Ag0BHWtMKmGUzIRAuqdT62kKVh86r+uEbN2TGFQ= X-MS-Office365-Filtering-Correlation-Id: 313d7ff5-024f-462b-5921-08d36da56d38 X-Microsoft-Exchange-Diagnostics: 1;HE1PR05MB1851;2:iQfWOU/7sc9c8EJ0bPjmcmIfRQlTDAkm98TofjCU/r088UrpABfRkD0XqlHs9EBo3JxfYclrThvKbtZP7+8gO9ThNKwW4NVH1/VSK6/ODddRjYkmFp0Tm01QXCRWCNIO2SH3Gz0bvbm5CgBMNp/G5AHqMZv717EMXzMroHeG6WiHChr4EMKe06HpFvSmYuK+;3:UiYM4Kr47HJT/xXu9SolzmPc9Dk9HL7ZSW39UapV30ZUmTg0nmJXiv0wSYym5IrtR63p427k1WTH4F/OCK0G2XtTkgbusLbwbLvUDvSU7j3oYMt0MwOejtLduTKeYtl7X1cL76QcIS+N2LfPVJESxsENzhkR3XW6khQKPX8YCxRgSBpw01/Kmf/uFfjvKmi+KnUR8noWuNUZLZKX1CeTnGfSg18FS5KjwGtK9HxZR0BhXYgd+kXkB7//pzOdQISlPImupgy0dHJSP9UD62t/pA== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(8251501002);SRVR:HE1PR05MB1851; X-Microsoft-Exchange-Diagnostics: 1;HE1PR05MB1851;25:IYL6pTfF8Zvm0waAWchuIiCD5yszSAqq9Y2LJtiKpnDMdw/47kLQMSh0YKlQDKVbvwM5ewbFQNJTlS3qIxZN+oF1jvXPUdAh+EI7WURCeuXRFuVCbuGQkCxTKGVjttKMGmTOjLtiZZeAm11rRS5D0NsMMKC+Lhz3ZjlSYR/laYISn7gH+bnFXWLBBem1xnXZ8EaQ09iVJtd/X1XmeE5dQgWECg1c4/zxOGfR3OcewJFux9uHoGOCCvYXwid6tfANgPg/hmPREFB6XpHFK8geadLchlTFGHyYXJDZiAkHoVNyfqOeEdvHHZA0Fqj7eahh6+lnaBuHis1ZMCIEsg84oLu58BfNzqo6z7NX5uIgVh3IF2Va9VZNBTP2GOItm3vFgLHs7bRLFyOa3MvkU8nFJoVrkBIaATrTUY2NYZs4yg9c+Cb7itwzUzSITnv1J66Fo/mk7YPB6u6FiXbVbcPKyk9H3hKoCVWzyoP4Hnm/0a7cxEeGrAS7X+QWqE6vTbN4auThyQwxwCU9/16nD78QJ5pMjpV7X/byTxXjB0D2dtxuGX9ezyJGwOd4jg/OMZSk2fKXjj3rh6ByYDrHM2QN2SdUID1XbLO6RlLxyhpufTfxbCZTADgEQXyoMx7q++TIjI24XCV5WOBYYsAt5xuTtU7efG8ZuGMsgl+lptUMk367v29e8ARlqjlydOJ6e3+8 X-Microsoft-Exchange-Diagnostics: 1;HE1PR05MB1851;20:Qe72/Uydd02Zt3JWLa8u+1IfQ0j76TsuxUpoy1Qr2D6n89raflbd8z26JDYUwTyMczFnwwT7GxswrmCRvpYFsoNcPoZwa9vL+XzwABGE7qjYm/le4HFKdH33cDkq9ogMSQcucog6TU+nCmL0fOaPVU4PHvkUHllx9KxFfdnjldBaziOkw2Y30AhDLlKabrtQ8WJ2rsDI3tikvL48TZSseYBbd9koPm5SO7N9LIly3LOGdW7tgYTuXuqjbOtsbAIkBsmYy2F/OCPAW+zN/Pgdv3dkBJO1x3Tm8uF3WWvQTBsG4hlknV0XLiNvY7Ra3P2ffFEfYdudB4ONF03Bq+dayS86sddHTghv8encPfQt+LbU5Yc7mcquyG/RmYcSj30ahAwuWQNIXi4ev9vjEy5peUfF8RM8w2I2enLqstIqk1cHsoJbpFbbL5u+0dfCAVgwdUPtOYyrVvtotuCBpFvuJGbfwUZqcxYNOvt3VDPrvJAqdvGW/T4uC3xr10SA6yKn X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(9101521072)(601004)(2401047)(13018025)(8121501046)(5005006)(13023025)(13017025)(13024025)(13015025)(10201501046)(3002001)(6055026);SRVR:HE1PR05MB1851;BCL:0;PCL:0;RULEID:;SRVR:HE1PR05MB1851; X-Microsoft-Exchange-Diagnostics: 1;HE1PR05MB1851;4:7QCABT3GHampDGThNBgr5wBouXRxcfPmCEmHpZverF3yTnI7zSx/o2R/6GDnJyrZ1pbpDnY00Vy+Fnn/rYhwDFzTsAvVvZ51uprCphbMN5+VGpBx2udcMnBtI/9y43Mkdj0Q0zSDy6EUpXRptolk91Co/JGApiAOAgMUfQw6Lc1urBUIru1o7/pBPnSIxpTDnAhZ9mfR6VKWYXt4wjSXeMb7DiuAEvvA564RjakIzfnT6wpMhp7IubTXZdBTP01j8eFLMe5rxgcE5qYY/v0JJY54H3fDmr0HzJc4fYv5H04qRZav+Jtf+0y7+fY9QWcpSkyXlov5F3rQcZxxlLyOWvepWEEJPukXQIqPVlRsCGBAytOMoG42Wiah873rCn3dQRMpYAoGA5/JT0IuVBCMOZVlfmZdilpwDOjX93TMyr73PPmRxchv3jInmdsKZq+v1UcbpX7tcEcQC9cyhhsLg3InwnhzQky+vmgf0v/0crqqYxSbQ94bYo0xcdJT5JN/ X-Forefront-PRVS: 0924C6A0D5 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;HE1PR05MB1851;23:PP5FJuoPXlRmCcE8bjapV7sRnCCYd7JR+eqCKdhvO?= =?us-ascii?Q?NHf2y5FpM4WuhKtMv8Khzm7/02yw+2Aqb+oQqK0mUknjUGGyEEf3kXNLzZKV?= =?us-ascii?Q?mIdlsJJWOKKlR4A6tkCc30zR4RSHzau5gQXolHalkF9RlfLGKr0ro8iT9JUR?= =?us-ascii?Q?LBEpmmohx7j4g/wQa6ecIc9I++rcRcB/Bvzi9MDM10VYk9oVeCOSQQswC6pX?= =?us-ascii?Q?rDfmwyBStFTIA11arHSfzIw7pQfzuthKsx/6PcvY00vGk5gw3DLBEsKJXcrr?= =?us-ascii?Q?CqgJ2G2/FBNF0Qq7yAMUJWw9sOzPoVWFRan/509LpPYrgO1GuW83oXG0LPvC?= =?us-ascii?Q?X355sHInvnfUw1i+cR3RHLO0sqbQ9FgHugIhTjfyhjkvs6dqdcG8p3EYv2xd?= =?us-ascii?Q?FX2dD2dwy7+/yS2iXbN4mOBJLAA03P5+ZqSG16KVCE91vF0jEQJ0qpkxjnZk?= =?us-ascii?Q?YiJei9rEwjQ0GxGNp5oNd51+rM1i3WFfQ3LolaN6Jo3n0eOr/Nc5VKwd+Kyu?= =?us-ascii?Q?H9Bh5gqWA68qWqY7MpLRvbaI/KRNouFfdJnm2HD1GEZmrZBfEJiewX2TEzdh?= =?us-ascii?Q?p4gxn9HnKtDltBEzgOxO/IeIOUhKjLSEsXfWi+0y8qRgxSqeUxmLuxYb10BU?= =?us-ascii?Q?9shL/Hz/viQ+bf2YTg1zYuHuY0R3SciFNrL/CvnL8DEOfq4Qpe8wOW6WIc8c?= =?us-ascii?Q?nu71K4Q7nKxy8MhEmM0PR3NXWLoey0NpHfGCTAKVHhc9t+D3/DhjjNzaJpkQ?= =?us-ascii?Q?XKmVlzbbB/8lMdqgHiHbrE/j0ki2v3B9BCMRhI+/SSp6BrfemGG1vYz5VqNC?= =?us-ascii?Q?XO/373W2XBLuTHVt0XLMpgimiMT9ZbSeRI4ZHGxDefzlSAjqXDJP+07tfiOS?= =?us-ascii?Q?etlwv+YTjCzlXukbqXSTjvnx5W0tSdXzlKe4fVUpTgYxopuztsB4hMxhzBoZ?= =?us-ascii?Q?jMCU2SJCv2EsT0fRFbH/STA75WriWvuQcPN4yC3OajyQBvtbYkcQI84yviZ2?= =?us-ascii?Q?ho=3D?= X-Microsoft-Exchange-Diagnostics: 1;HE1PR05MB1851;5:b2CvOUTTssNMamRtMweLhSYax+QonXnpqq7ZSlzaHPdnjEiaOtuQ++8S8VmfMespjXKD5NS3bZHyqjJSeJQPB99FtGf8UlbFMaV/v2Zz8ob/8Hf2uNp+O6KrhG5QQtoxP0lVz7wkU6HPzw3wX5hGig==;24:pUMk2CFortDHpRpBG4VU4q/5lo1Nrz5TMSdf67BQGcWXlUJBng+PVLAVw6FYKnKxcwGNqvWcrWL46GgYHRrivCOX3JJHUePeRdKCwtMaJzE=;7:XjWFotkQx4iqbFf0LgYDC7oKaW2wVK4c2PqcJZFynFNReaku3Qy+3F9tV5B+D2lkPC++LltOCHERVcrQikv9Yn56jYApz4VZUqRGi7SYumtyVz+kzrdPy4QZZPvhqIC7N0gGmralOK1e0SHIJPAtEqs9pErdBf2MWzT0jQwiV/JmnJ3SOs1RS0VZg/6WGxVZ SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Apr 2016 07:36:05.7252 (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: HE1PR05MB1851 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1146 Lines: 28 From: Elad Kanfi Summary: 1. Bug description: TX done interrupts that arrives while interrupts are masked, during NAPI poll, will not trigger an interrupt handling. Since TX interrupt is of level edge we will lose the TX done interrupt. As a result all pending tx frames will get no service. Solution: Check if there is a pending tx request after unmasking the interrupt and if answer is yes then re-add ourselves to the NAPI poll list. 2. Bug description: CPU-A before sending a frame will set a variable to true. CPU-B that executes the tx done interrupt service routine might read a non valid value of that variable. Solution: Add a memory barrier at the tx sending function. 3. In addition, the check of a valid pending tx request was switched to an inline function to avoid duplicated code. Elad Kanfi (3): net: nps_enet: code style net: nps_enet: Sync access to packet sent flag net: nps_enet: bug fix - handle lost tx interrupts drivers/net/ethernet/ezchip/nps_enet.c | 34 +++++++++++++++++++++++++++---- 1 files changed, 29 insertions(+), 5 deletions(-)