From patchwork Thu Mar 9 23:48:23 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tom Lendacky X-Patchwork-Id: 737188 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 3vfRt82HcHz9s7h for ; Fri, 10 Mar 2017 10:48:32 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=amdcloud.onmicrosoft.com header.i=@amdcloud.onmicrosoft.com header.b="zpRcPzbE"; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753873AbdCIXsa (ORCPT ); Thu, 9 Mar 2017 18:48:30 -0500 Received: from mail-bl2nam02on0047.outbound.protection.outlook.com ([104.47.38.47]:23887 "EHLO NAM02-BL2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752332AbdCIXs2 (ORCPT ); Thu, 9 Mar 2017 18:48:28 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector1-amd-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=a1YR5iFcyREZs7XxaYK3FIHOFWBXsjc5O0FNVEoO+kY=; b=zpRcPzbEaxSJQdDzIdEDby7SIK10JbB+J8B0lGRDyZNaaqxjf0XyMMw7RsqZx5rlLU4X4FjFY3MzGeLV0HcoOZkgmTuBD+7OWk92aW46v1rndS2qBqQ+Ziu2zO0tIEiytKEKN5M42bxjsufZlK52i26r83JiFOV7VY2F2jxF89Y= Authentication-Results: vger.kernel.org; dkim=none (message not signed) header.d=none; vger.kernel.org; dmarc=none action=none header.from=amd.com; Received: from tlendack-t1.amdoffice.net (165.204.77.1) by BN6PR12MB1140.namprd12.prod.outlook.com (10.168.226.142) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.947.12; Thu, 9 Mar 2017 23:48:25 +0000 From: Tom Lendacky Subject: [PATCH net] amd-xgbe: Enable IRQs only if napi_complete_done() is true To: CC: David Miller , Jeremy Linton Date: Thu, 9 Mar 2017 17:48:23 -0600 Message-ID: <20170309234823.11010.87592.stgit@tlendack-t1.amdoffice.net> User-Agent: StGit/0.17.1-dirty MIME-Version: 1.0 X-Originating-IP: [165.204.77.1] X-ClientProxiedBy: BN6PR15CA0011.namprd15.prod.outlook.com (10.172.204.149) To BN6PR12MB1140.namprd12.prod.outlook.com (10.168.226.142) X-MS-Office365-Filtering-Correlation-Id: a7480ea1-c49d-4b9a-6cba-08d46746c785 X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(48565401081); SRVR:BN6PR12MB1140; X-Microsoft-Exchange-Diagnostics: 1; BN6PR12MB1140; 3:vSjKYSFEaHtUNh4S2YkAH0WmQlxdq6vw5dNB/bIjYEixpO4pKPLTCzqYAC8tS+1lAABOG0R5/10FAAbHFyj70V2RS29c0Oc6V/Sviz0tpHeor42gSkX3S/gh/lY4Yayqkuu6DOqKJ9Fm2rIPVKfwtH1br5LsUeBLnjB6X/B09A7eqCoGHhDVnq8tZgqWaEXWsAbeLFgd9FLOIAOtrc/cJjn8bRBDDxF4UohSHo1Ea9HEmAVi1qqNhA0sJobRm1QrJvLnOo/sPijXBIjqPbhfD3QJcHp2bhlTmvyqAxcvRNo=; 25:AC1rguclNkebpeD3vwJh6TZ/4fEmyL//S3V3acnTvuxwPz96USsldodv9nr8on3R/0/yZX3XZ/9n/tw2I5fEKn8DJxYVkYCp5cupUEo+1vkDcB+aUpTZHeqdVzUVsbfgpEP9WaKQcd7Mj7LLKEFdpFhUByc4fkZxqZvBtmPoHCbPhrgKWFitaI2CGWQAsslbOHLrpNls4J2/GXQxCZnVkq9GfMnkQc8dF0ZQMEkyoMbGV8PAPVlk/gGW7zvK0y1bTJs126ItQmr1J/5fuA8TOKZXNfJuWuB9ck3MrvDDy+uMc0ZJL7PvkhixLTYA5OCM+sNWr3mYVTtSdzcTHd/yAmIJOiQY9mQ45/iqP8ev/zYl+sseFEgPITbBex1gCoos1m2uWvN3vwaQ7Ft6dLnJ6VUgVoONBYyyP3WVZDVe+rZFH+R+amGHAuf1VKcSMiyvKJYtVOOYegtiXGrv98RDQA== X-Microsoft-Exchange-Diagnostics: 1; BN6PR12MB1140; 31:eA3KiTcD2CWNCLSldz8rJZpI+kJERAfIksuihCFjFnNUltxytKnARUDJQtiIR9z0YPLmJYXD/aik+5mCUoxJ8wlYhFdLXfGshP80V070h+piCVsL8fyVN5W7c/trCMlBkO4Du8/lX0e8y0oDnpXvT2b65KHzffDwDP9DHs4M2Hf4mDnep3FMl5UOZV0nN61uID1oe9hUNwSlxiiep0p8Xv22HH+QLL4WSroV/ygHdBPqgAx6h5LrqWT+2+nNa7lQW5doywS3YmoJ7adqcqpcoQ==; 20:C8xhY72NYZA74Gsf+29wJbBqzQTwHjlIxX2rbhDE1Cp9pX3SHBVunMCcHrJ7zkk+aq0xRUZIrWemTB3/x0REDGTdrXSrkDH4pZpHHRRHdFBeMmAb/shUMP7foKoL+wSdIkayyOe1dHxLuiesH8XSblNnJaBuymzkCJ4EP0vfuV1d4OD9TMWAMEPVbmuFjyBRRRXRvp4fL0rWKO7tJ46J7sjd93U6U+jZR1eK0anizXfScjlYbyEeHpYuOJVK3ePzAIrzzzC7yL/+KWyYWl/knMXbrluv+KoTHeo/rcrHpPkCDRqEiX8+CHV22h4rlGvK2UggAPL9/31RcBgR53cDWMJn8gJki4QDTKLi6va6sLftnlWZxlX/l/6Oh71Hw0NRI6KVXbg14VbU530PoU+iEyHeA0yj66E/apBGIZGVysgcFeW+wxM6aFr6jZljTPbcoht7TQUwQk9m60PoM2sqt7KwQfiVm9gQWjrDyDhyaPc7etixYe1Uol1EFsukPP9o X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(180628864354917)(767451399110); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(8121501046)(5005006)(3002001)(10201501046)(6055026)(6041248)(20161123555025)(20161123558025)(20161123560025)(20161123564025)(20161123562025)(6072148); SRVR:BN6PR12MB1140; BCL:0; PCL:0; RULEID:; SRVR:BN6PR12MB1140; X-Microsoft-Exchange-Diagnostics: 1; BN6PR12MB1140; 4:KxPD2eLB/RGs+L7E2czb5KD+EKujQ4/HDHzjH7Qz4PNvoCcGff5ozsbEga3JLVj/Ie6ed93Rx3XGtw2DG4a5ACdIJcQxHLBuKcb5OFwEli+mVqopICl6mYN+zXfPfszgDZmxNj42xXjhh94FbSsuE0xIPwoGeRz/O8GJhAgRniEcnq81TLu6j+PSo5RKAHc2C/Q/NlufCe/NSMuppXOImQRN4ueXmr3thl4/kR9go8AssLyjAXnhqFLFyBpIJ1htP47mEIvVW9utOyDMDmdtvlPStbjNGfGZJBYB8VBmfvHxHezkrBUZN0tfPH5hn+DCNB7maU+EATa6k+CqbAaDb5WgdhyeY3Kh7IK6Qul88a3Ip3OjsigOdfqFsjriLB4n8uzJQ3HK/dW1+Ey7Y747XptLFO1sLhctCXxmPlHTllU0vukobl91DVXs6CKBdzlV1mfOzgq3HcZzGXDcyTqE/i2p0gFeLcuS0qaz/APVy3OeeY3oFWlFUfRPePOHXy3BL06mkwtNSJfsCBjao+yRvHbFDQoytJvG9rL6aCDu0ltM6OhOcXcFd/aowW+HfXpZg2wsos9KMtHopCp5GYMnKuwOw1onFB3jYlQNILGD2TFPr5po28ALwBqIPi+Kr+9R1410Z+FFan74t3ijne/itXA/zo8i+Uk7nRwteW0NI+HBLH2QdZZzig6cCheZ+jFylDeQSTNybbMZ6V/D4J4teg== X-Forefront-PRVS: 0241D5F98C X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(39450400003)(39850400002)(39840400002)(39860400002)(97746001)(25786008)(6506006)(55016002)(54356999)(50986999)(103116003)(305945005)(53936002)(4001350100001)(230700001)(189998001)(7736002)(50466002)(81166006)(4326008)(38730400002)(8676002)(110136004)(6116002)(3846002)(66066001)(2906002)(23676002)(6916009)(1076002)(47776003)(33646002)(2351001)(5660300001)(86362001)(42186005)(9686003)(54906002)(53416004)(71626007); DIR:OUT; SFP:1101; SCL:1; SRVR:BN6PR12MB1140; H:tlendack-t1.amdoffice.net; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtCTjZQUjEyTUIxMTQwOzIzOklpNlBhVXdTaUxRWFNOWEN1TkVndjdXTS92?= =?utf-8?B?dlQraDBGb0dubDVtd0xQMTNuL0hPL0xsa0tsbWk4bjV6cXYyREFwdDg1UXRE?= =?utf-8?B?SDRENkdkZTNFYUhMMXMxSjdDbURXZlY2bitqNVl5aEE3Qmd6QUZsdGlZMmVX?= =?utf-8?B?RmRRampVM2pJeVJHdmh5MEFYd0ZtVVd2Syt4T1BDU0xsVnpiVU9vSWc4Qit1?= =?utf-8?B?M29naDkxejk1a09Vd21STTFFWmduWEQvTnNITWloWnAvL2k3YzdCblVOYjZk?= =?utf-8?B?Qno0NEFrZmZQaTNlWVk3OWlROU1oaDl6K0NlNThpZW95YlNac3o0NlVPcDcv?= =?utf-8?B?aHZRa0VXV1V2Q3dUSXcvd0s5ZDh0eklRMmlJR0VxOGdIQnd5YW50NzRXbUxj?= =?utf-8?B?Q3g2S2VEYzdHMGZqMm45dzU1MmxCdU9Ra28xVG1ieDh3Nm9QSGkzUUJQYjF3?= =?utf-8?B?UEVMMWVJQTIyR3hsZXBxS2dkVitFa0dweVFkU0xhTVBPZmJqOFhRKy9BMitC?= =?utf-8?B?dEIzdjQrVXNSdVVJaDFJdHhnWmtQNSsyYU1PSnpQcEtEUE0wZzJld0U5Q0VO?= =?utf-8?B?a3RGSnp4aHg3MDhZOHVRZGlrcURrQnpwclJwRjc3WXBmQmFDaUlJSVgyTTVm?= =?utf-8?B?dGp0WGQxUmhmVEN0d2xmbC9rVFdvbDE0R1R1ZTRxR29HckkrVFZUb2x0MVMr?= =?utf-8?B?RjBSTGRZdGNpSHQ4SHlYOTBXY0dBbEh3Z0hGN3cvUjU5bGl0b1Z2bXBCZ0Jr?= =?utf-8?B?ZWgxZW1nb1BRZERDMWI2QzZGOFRpQloreEsyWlhLQ1BSQndhdlZwYXRkUEY4?= =?utf-8?B?VkhqN3NIQnh2anZqMkZLNTJxZFBCaHpQWk55N0o0SXRlVXZQWlg3SW5pRzY5?= =?utf-8?B?OXkxQWt6RVpGajVwZ0YydFZYL2dUV2tJL3YvbDJNN3NqdkxYK3grbDhZWVBQ?= =?utf-8?B?VStRNlBNdGpvc3ExRXB1RzZTU0cwa1JKQjNFVDFOUXRFWFBBZyt6VHpqbG5B?= =?utf-8?B?L2tURXppenZLbjdPKzFkR0dBdlE1OTJVdTBWVldpYmMvTjNnSGhqVkJaa2U5?= =?utf-8?B?S2RsSGxlR1JhT2ZSRnhSY0Nod1BocVR0RHFlZWpCa3VyQXVvRmFIeFdVWkhV?= =?utf-8?B?ME9kd2RLN2VxQmIvRXlhdFV6Mk14ZHR2S0tiYnJuTjR0S2VKQjVTZWY2d3pH?= =?utf-8?B?eVZtN0lvbytZcllzZE5nQUxCVkU4OVJzQitrTnBDczhKT21GWGg1V1cyRE1J?= =?utf-8?B?STB0SXJSOUhGZUh4elQ0L25weTE3enpIYWJ2di8wYWF4ZENKSnZkYUlleGlL?= =?utf-8?B?dWcxYkZqL3MwaHBqZEdXMXFSM1BmazdjQ0VkeFRPZzIwOSs0aTRKSStNOW1D?= =?utf-8?B?Q1NMUjloYlJiZDBWMVREanJxTk1Oc0h5UnUxdmRleEF2QnNiV0xLa2xMOFpy?= =?utf-8?Q?Z67vdU=3D?= X-Microsoft-Exchange-Diagnostics: 1; BN6PR12MB1140; 6:doNNiYqb1efo1Iqg/GKk3WZnwEs4Xqf7lLB2zJtAe3Si+XnGmGWlD2oQv3Z8NAcJRA1LX1O+1zgtgn8h5963nuAM81ktCh45fajOwnrbkzXcAGJ0czng3zullBgvPFMQDJjNfbc4XxDP8aMxpD9W1WIrix9spVDtGDjEVk2yl8tIhoWtEcp+iSw7gpueyfh54o5kRcnbiS8Rlo1VkvxSMKVziGgLNyl3tv9ers97eFCHBdaE7MPLvfHe1/FI00us7xpTdW8VH2pdaSZ/B1pgBPhXhKLeCKXODUIY5FfKmSXyNDm197JnG4SmFbEQ+JgcIEASa+KbbtSOMbsAIoHw4s2nYYSq5hm1IFHoEsJpm0CWWDtsjaycz37qaUp23H9PRVaR1RaCXeYVJGGr6eK/3q9vv7euwDWqDemMl18Ds8I=; 5:KKeJexRqnbvueOvOtfcaw1U12JRiMBjMgLub5vLQ23Vp1gkCWCrciSFag1sppwS3RfKVWxQzd5Ht1i1QhQDMCOj4zj9dCAW8nEUCpMZwyYJijTycOoZu+HWNi75037v5JaXOlrShqMe0VlBjJEN1mA==; 24:ICNehAW4L/Fxv06sPwosX3/L037K/mdDmQvetBZOsRuGedUwm2jkDEQUWa0z+ugrGyal6Wg93krbrOJrU/No7XVDmUchzBmR0LYGPTJS6Cc= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BN6PR12MB1140; 7:WME2IQz3tpczlhL1zogPozzS+Trcktq19HE7niDIN+7k9D0zp0xMbdai8O6vpphcCSW/lCzsLBldPR90wXnk8d60pcGNxSGkg6u27+Hg6Wj2HCtq1ti+6YMu7flR6khJ6/c26InkUJAIIyccQCURD+ipnTbTkF6ZkDT/z13LnwjOvfLTty+aJb1GiC04mpM++/pYU8swQSSmuDHNZVlqE9ztWg7zAy2fhAFG5ceTzyWN659EaGZWWhL4Kd+Yl7B2wKdEl4Husm7a3141PEe/7DOYLCHZynUOpo4DjJMnRm7qpqVH/Ivkduo94yPwnwimbzMhqoJXdhBaXtpITQoo3w==; 20:iM2KYzP6ZzQfYZJ8HTSnykPptds0M+cn7qZFZNxQBfATmMi6xqltm0vTMTYFOJUZOQvEjqeSWDBovUbu7j9CCyy1EEmABwtU3zirchX7+kSx3v1TlJioBg27LNAP7BGQ6W8wzcuttElV3MxX3sGtfScbzAYLQu1Kaq4NZribKBKyJq0ZYTsB7dUQcsFnac6woRmgnC/xphogywzaKG4WEh0b9aGRQfj6XddFXjFf5Inh4T79LPHjHa4OWPFP15HV X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Mar 2017 23:48:25.6142 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR12MB1140 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Depending on the hardware, the amd-xgbe driver may use disable_irq_nosync() and enable_irq() when an interrupt is received to process Rx packets. If the napi_complete_done() return value isn't checked an unbalanced enable for the IRQ could result, generating a warning stack trace. Update the driver to only enable interrupts if napi_complete_done() returns true. Reported-by: Jeremy Linton Signed-off-by: Tom Lendacky Tested-by: Jeremy Linton --- drivers/net/ethernet/amd/xgbe/xgbe-drv.c | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-drv.c b/drivers/net/ethernet/amd/xgbe/xgbe-drv.c index 248f60d..ffea985 100644 --- a/drivers/net/ethernet/amd/xgbe/xgbe-drv.c +++ b/drivers/net/ethernet/amd/xgbe/xgbe-drv.c @@ -2272,10 +2272,7 @@ static int xgbe_one_poll(struct napi_struct *napi, int budget) processed = xgbe_rx_poll(channel, budget); /* If we processed everything, we are done */ - if (processed < budget) { - /* Turn off polling */ - napi_complete_done(napi, processed); - + if ((processed < budget) && napi_complete_done(napi, processed)) { /* Enable Tx and Rx interrupts */ if (pdata->channel_irq_mode) xgbe_enable_rx_tx_int(pdata, channel); @@ -2317,10 +2314,7 @@ static int xgbe_all_poll(struct napi_struct *napi, int budget) } while ((processed < budget) && (processed != last_processed)); /* If we processed everything, we are done */ - if (processed < budget) { - /* Turn off polling */ - napi_complete_done(napi, processed); - + if ((processed < budget) && napi_complete_done(napi, processed)) { /* Enable Tx and Rx interrupts */ xgbe_enable_rx_tx_ints(pdata); }