From patchwork Sat Aug 12 01:29:15 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Manlunas, Felix" X-Patchwork-Id: 800794 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=CAVIUMNETWORKS.onmicrosoft.com header.i=@CAVIUMNETWORKS.onmicrosoft.com header.b="MM0pClgJ"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3xTkn93DnGz9t2Z for ; Sat, 12 Aug 2017 11:29:33 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752050AbdHLB3b (ORCPT ); Fri, 11 Aug 2017 21:29:31 -0400 Received: from mail-cys01nam02on0048.outbound.protection.outlook.com ([104.47.37.48]:21955 "EHLO NAM02-CY1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752016AbdHLB3W (ORCPT ); Fri, 11 Aug 2017 21:29:22 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=l/7usYh989/QvUJFLP5w8p7mmIb083xOMALvI38x1qQ=; b=MM0pClgJUEHeZ9gAuLVX+pg+wY0aIQMCcC1E+qG1U8udQIq0pKyeBavKfM2onFtbMR9oHJK/bQFgOkIYNErU+nwHPr0PPNgouBYOrkQMb9kxNLbT4fuGEPv35fGRltKGTa4Fh24QADypJseO1P6fWEJ02SiM5UOtGCDlHhs7vic= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Felix.Manlunas@cavium.com; Received: from localhost (50.233.148.156) by MWHPR07MB3181.namprd07.prod.outlook.com (10.172.96.139) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.1.1304.22; Sat, 12 Aug 2017 01:29:20 +0000 Date: Fri, 11 Aug 2017 18:29:15 -0700 From: Felix Manlunas To: davem@davemloft.net Cc: netdev@vger.kernel.org, raghu.vatsavayi@cavium.com, derek.chickles@cavium.com, satananda.burla@cavium.com, intiyaz.basha@cavium.com Subject: [PATCH net-next 5/8] liquidio: moved liquidio_napi_drv_callback to lio_core.c Message-ID: <20170812012915.GA2575@felix-thinkpad.cavium.com> References: <20170812012818.GA2505@felix-thinkpad.cavium.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20170812012818.GA2505@felix-thinkpad.cavium.com> User-Agent: Mutt/1.6.1 (2016-04-27) X-Originating-IP: [50.233.148.156] X-ClientProxiedBy: MWHPR1201CA0013.namprd12.prod.outlook.com (10.174.253.23) To MWHPR07MB3181.namprd07.prod.outlook.com (10.172.96.139) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: b537c791-521b-4345-4e6c-08d4e1218e6b X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(300000503095)(300135400095)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:MWHPR07MB3181; X-Microsoft-Exchange-Diagnostics: 1; MWHPR07MB3181; 3:YrS1xZ6w9CCVtrhi1T9ku7e0JNyF7N16ekIqmPmVmUO/tpi9WmUJdO+vg8VfWrjk5Ql7zIGGctGlTVW8bnixqoQWsPhOHzK+ICWIWwuymXyN8ifGZlRwmehThr3YPJj42oPgUGYvWctRoe4AQB+MDUVQwKya85+CmFSqbLVGs7oAfKiEpB8/UwQtQEcWUYsUMV+kmHD9Was/8T5imcKg786DmnXe+q4JhNqgOe57S+IucMoXX4ffamPrfRxeIUoe; 25:maA2w5I789Os51IZn/0mIy+1EUY7XLWJ+q3TfIwHgbvzsSg5R1YyzppkmXO0jn0bSfrDTJCohF6bvv6rYgxlZ0RWDetmsauJeXo6lB6O9WKBl3hpAWPUttq9KP+HCO12BwVPhB6lVbj5sIbCeZmB39pUgjnQyY/g+fG2fKQz9n95yH5lPfxnAdMg4bcfv30+zf0aV0g7dpRs+JRnS9+BA3uBpm8ZlIAH23AKdI/Jy1CKmNVB5fE1D9C24XWr7GhI3bcUyWo/Wha5CcZc7vjbSIYGbxRcW2w6vOHHvcVTU/Sp0F1QcIb+lQZJ80fubm4ECStXn0pdjCGNHap4Ihf87A==; 31:vKFM60n3iB6Rrm5nVR6B//oVohC21pcUCovypORpIQ9/70SXifN/qRLvyTRWJAYl4ky4/ud/AJenHtqxap/PH4zKRaD/ac1px06Drb16yK4a4PUbhw4Ptpd9xF82LejIvN2FJN/279P8O3D6Lmy/k+lZmYtXIq8LezhSxWFCvOJWJ3bgv0lqsJAJislf/ShFJnOYbq/NyObHtxk5hXGczakS2D4idAJNLCloIr0pDYE= X-MS-TrafficTypeDiagnostic: MWHPR07MB3181: X-Microsoft-Exchange-Diagnostics: 1; MWHPR07MB3181; 20:MCG8Ly8Jqzv8joBLogYRZejoTgHEzmkMHRJmaCy2WVF4TUvn8TGPkZSV8FAcxrLxWHkKwOxsL6D/L2uqp+s9g45o9CnPmtPQP4k9n2lcrJzfyZjQIdUSE9c5km8YnT4jh1VdITm5QZA2A6IHsEAU7e7W6erBa4CFmhKpJeuQdDMPuwwqXhrCcte0T8I0f1x8+789ma1uNwCUpfk+gxuvU2+We50bTUv44FJ3zhMXMVtCoBvWOm8Jn/D/VPoo9tPfV66kvQQnZ6oNdQKx1Wn5IQZ5xCCrPOUkRdmJZboeFARl6pU1z2cDqxqara8ZmCRnHIJbpjxnZh52Pski5Z9h2wK/+/BAFLyiNYr6BJ33b7gAl9Reydi/ZtbG0Sha+uE4xLiG9dFCsQHUzVs4O96JzwlZtgjc6WO379GVdCLTb2weYAcuizUP4p9DCB1NpGJOK+tc51fq9h1mBYd3/MUUdVp+pNwG8I3vpVzGStIU7clP4FkJGBTvRgWfJqf+Glt2; 4:Cxrv0KNirA0ZrZgwto9EmChqn2voHzYKNxr51JTMmeJ9WKNJF3ijoRE9Y4Ajfforp0MuzG7lkHpf/PYqza3kQ7c0YIH4brPgnpa4yWnW3aOyu8fyaVmEX2ZIHcHmeihZYA6U/91X/tV/Vd//VDks3Y5haMXgcmJuCEuGBtSvLvHRqF9wENxxfheW6n6lLE4yWieTBJlNYGBPC5RTqcvEldr/ViwlpcHj2fRvXHg1XHrg593P2Sljur/Jwkw4AsAT X-Exchange-Antispam-Report-Test: UriScan:; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(8121501046)(5005006)(100000703101)(100105400095)(10201501046)(93006095)(93001095)(3002001)(6041248)(20161123562025)(20161123564025)(20161123555025)(20161123560025)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:MWHPR07MB3181; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:MWHPR07MB3181; X-Forefront-PRVS: 039735BC4E X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(7370300001)(4630300001)(6069001)(6009001)(189002)(199003)(81156014)(6916009)(47776003)(2950100002)(23726003)(107886003)(6116002)(53936002)(3846002)(7350300001)(83506001)(33656002)(5660300001)(575784001)(86362001)(110136004)(4001350100001)(1076002)(6496005)(189998001)(66066001)(2361001)(76506005)(8676002)(2906002)(105586002)(25786009)(54356999)(42186005)(76176999)(68736007)(81166006)(478600001)(50986999)(101416001)(106356001)(6486002)(2351001)(305945005)(6666003)(72206003)(97736004)(50466002)(4326008)(7736002)(18370500001); DIR:OUT; SFP:1101; SCL:1; SRVR:MWHPR07MB3181; H:localhost; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; MWHPR07MB3181; 23:FJG+eQuE04G9grTbQ+w07uertKKf9ww6HSP+rpGrk?= =?us-ascii?Q?SENQ/RH6bQAid+9QFV66HCNxwpjiwWwOzYhvfXk5y5KTy3lgWAtXsuVH3H6x?= =?us-ascii?Q?ez9WRGZS1plyjR1DcwN/lcwlKMBvFkD+rfI8ZU5oChWolt0r1kAf7Nhtc3az?= =?us-ascii?Q?9cmKom6s8w08GQ2qarRxb5CjC1/nUTHa8xR8gC63z09gdz7W4mltPB+qHgDI?= =?us-ascii?Q?Mt5kxFwIRfR443UwGfdtYM7Gcaosts27Z9x98omfVMQ/KoqNk0CPOzEmVKuG?= =?us-ascii?Q?OhdAZuU4tGAZ1iH0v1HuIihBMo63gezmo9l6guf75c7EIWbvEhitmQDexVKS?= =?us-ascii?Q?A4syJumdfFrXuGH8VWQlcOu+PWmwoCXa9GThqSB8Fph7sKDo+//oyvh4OCrq?= =?us-ascii?Q?+W7JJJz1veITSxkZgdEVmtq4GlgLjPXsU8yOy+mgOpEk9TMLmH14TYgFPS9W?= =?us-ascii?Q?hLqq6fgiVdJ8le5KGxVQgynBiEHhmNusNcy06Xly+zAF5aIYQm47QF22JxpT?= =?us-ascii?Q?8P7V9PzXG90ZXCp+mYB7WC6oOu7hOa/9jF2TPYZHzJGE6v1XwMcxnSlNfthI?= =?us-ascii?Q?ZQ0tUBl9otWOtb6kTrC1X2OLxB8rE6IC2AQoOdEWnaJ9ZVP/UIEu5OwN5bHv?= =?us-ascii?Q?adRGod/nsyy/FywzKrlykPptzMuBTFwAlxDs+LwkmycEG5YntJYekF1FcZNw?= =?us-ascii?Q?X330L736d7WyeNoUyech1/oCBa9VvN0Qt9gBTn7/SGt07+F+sl6DvM3ud5P8?= =?us-ascii?Q?f+a9OgMao8wLsmNGUMcp0GjjJqF3e9Zx4ZuGtyuowpeRYylpdedwyhCazuML?= =?us-ascii?Q?QivroaDzPtYt24EJ1rU4ZHYa5fPstXG9zpAyYnNvJcFZde4ZSivHzf1a2jHr?= =?us-ascii?Q?/JLNumCQgLunmudneZCp2IXNIFPsfeIJGsn6JGzb7OG+GdkWkBzp5JOxMexr?= =?us-ascii?Q?6IFZ1dN+mFAKTjahmSCl6/Dg9O7UJdJlT1BZrGvFTBxakQftz9gpc/Nc6faL?= =?us-ascii?Q?bY92DiGopuU1Bbk9lGQefoID93GP/dc52+zOted9CcLfrOFoXf55u2B2Pggg?= =?us-ascii?Q?1ni8obPfi6qYvMxk3m7BaXPjBvsTnT1yIW0jN/hJaDjAFPwRKWg4qKyiLcW3?= =?us-ascii?Q?iESI0I0yJ3+3LsuTOEBut1kKfc8fm2WmX9U1Aab3JrHIBgq6XMqgqXjfauPv?= =?us-ascii?Q?szvaaCHGRGLwgSOj0SkPf59PPPKqtIsn6Vp0BWQCDdwY0PpZAdxCcnBxrTrO?= =?us-ascii?Q?Da2YglV2Tpxe9orTgI=3D?= X-Microsoft-Exchange-Diagnostics: 1; MWHPR07MB3181; 6:dtsw4ztZvHVL+Fu0adBmhVtIOTvFlAE8Qg82g74cAxR5ySsFCGxV2mSA27GzLCEILoSTxiof07+gT2iNXAvfgWHFNuA1fxBe4c5z2lfq5hmL581hkYQ05APdV4GyoPMcWU9A5UUkKSWGG/IytqnUgJrkz4XqF5DElSPYjaUCdsr7Jq/gLXXaTzZ3VXMQNMKRZ2gYSrADRYR0EBQZJODlh+cUvQbcIiuWs2Bm9wjoTfbRLsQnIfuqqbUsWiZG7MRTB+OKli3mfsxWYQHd+Yb15bT558NspxVeol7urCiDHLca4PGWAEOb5zMeu8eLAU7X3VR4sRcQng+VVbVtW3WzUA==; 5:PpbNJp7pkxUMdc168Drywzb7Y29VIYx202ltNgqG4fbvDKPuAA2aFI5m2FejecDMrGzX3GzC/+y5ipVoNMhENIrnFuG+2qTvdrDpQZaLVaJEPULWDfdSz3omjHCEHOPWzLzgC+dZi94FLk39rT7RSA==; 24:2ed2ZZq0S1hEpGLoUiifOHpPmTM29XuRRCQRjytEeYQfU5ffKZgYBvutLLmvAxKOxl6U9LqCxJ1eP/KlmW4rjvkfEes436JCoguoaiWp/wQ=; 7:kmz2glVz8GsPL7ZajGzU/z5qSG+JSD2+5dlpV01VSpcY5qOJce4KxR7rOfgjKz4TY5nzwpV4wPlTHInVcOOtpSUDd8+es/CHcsnFbpuu6vQJy4sk++Az35oyi1jboZKHBPOHIkJx0yPyxtpW5yV3a3yVhtlNnZyG2x2YtmWp4bhTEGJLslSg9F3hwiSwio2dkYJ5eamMusGfCOFfFqWTcu8eJv7MA4HyJmHn9faQ+Lo= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Aug 2017 01:29:20.4712 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR07MB3181 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Intiyaz Basha Moving common liquidio_napi_drv_callback to lio_core.c Signed-off-by: Intiyaz Basha Signed-off-by: Felix Manlunas --- drivers/net/ethernet/cavium/liquidio/lio_core.c | 39 ++++++++++++++++++++++ drivers/net/ethernet/cavium/liquidio/lio_main.c | 38 --------------------- drivers/net/ethernet/cavium/liquidio/lio_vf_main.c | 13 +------- .../net/ethernet/cavium/liquidio/octeon_network.h | 1 + 4 files changed, 41 insertions(+), 50 deletions(-) diff --git a/drivers/net/ethernet/cavium/liquidio/lio_core.c b/drivers/net/ethernet/cavium/liquidio/lio_core.c index b0b246e..8cba927 100644 --- a/drivers/net/ethernet/cavium/liquidio/lio_core.c +++ b/drivers/net/ethernet/cavium/liquidio/lio_core.c @@ -581,3 +581,42 @@ liquidio_push_packet(u32 octeon_id __attribute__((unused)), recv_buffer_free(skb); } } + +/** + * \brief wrapper for calling napi_schedule + * @param param parameters to pass to napi_schedule + * + * Used when scheduling on different CPUs + */ +static void napi_schedule_wrapper(void *param) +{ + struct napi_struct *napi = param; + + napi_schedule(napi); +} + +/** + * \brief callback when receive interrupt occurs and we are in NAPI mode + * @param arg pointer to octeon output queue + */ +void liquidio_napi_drv_callback(void *arg) +{ + struct octeon_device *oct; + struct octeon_droq *droq = arg; + int this_cpu = smp_processor_id(); + + oct = droq->oct_dev; + + if (OCTEON_CN23XX_PF(oct) || OCTEON_CN23XX_VF(oct) || + droq->cpu_id == this_cpu) { + napi_schedule_irqoff(&droq->napi); + } else { + struct call_single_data *csd = &droq->csd; + + csd->func = napi_schedule_wrapper; + csd->info = &droq->napi; + csd->flags = 0; + + smp_call_function_single_async(droq->cpu_id, csd); + } +} diff --git a/drivers/net/ethernet/cavium/liquidio/lio_main.c b/drivers/net/ethernet/cavium/liquidio/lio_main.c index 68a94c4..4241949 100644 --- a/drivers/net/ethernet/cavium/liquidio/lio_main.c +++ b/drivers/net/ethernet/cavium/liquidio/lio_main.c @@ -2229,44 +2229,6 @@ static void if_cfg_callback(struct octeon_device *oct, } /** - * \brief wrapper for calling napi_schedule - * @param param parameters to pass to napi_schedule - * - * Used when scheduling on different CPUs - */ -static void napi_schedule_wrapper(void *param) -{ - struct napi_struct *napi = param; - - napi_schedule(napi); -} - -/** - * \brief callback when receive interrupt occurs and we are in NAPI mode - * @param arg pointer to octeon output queue - */ -static void liquidio_napi_drv_callback(void *arg) -{ - struct octeon_device *oct; - struct octeon_droq *droq = arg; - int this_cpu = smp_processor_id(); - - oct = droq->oct_dev; - - if (OCTEON_CN23XX_PF(oct) || droq->cpu_id == this_cpu) { - napi_schedule_irqoff(&droq->napi); - } else { - struct call_single_data *csd = &droq->csd; - - csd->func = napi_schedule_wrapper; - csd->info = &droq->napi; - csd->flags = 0; - - smp_call_function_single_async(droq->cpu_id, csd); - } -} - -/** * \brief Entry point for NAPI polling * @param napi NAPI structure * @param budget maximum number of items to process diff --git a/drivers/net/ethernet/cavium/liquidio/lio_vf_main.c b/drivers/net/ethernet/cavium/liquidio/lio_vf_main.c index 013a861..2663bd6 100644 --- a/drivers/net/ethernet/cavium/liquidio/lio_vf_main.c +++ b/drivers/net/ethernet/cavium/liquidio/lio_vf_main.c @@ -1377,17 +1377,6 @@ static void if_cfg_callback(struct octeon_device *oct, } /** - * \brief callback when receive interrupt occurs and we are in NAPI mode - * @param arg pointer to octeon output queue - */ -static void liquidio_vf_napi_drv_callback(void *arg) -{ - struct octeon_droq *droq = arg; - - napi_schedule_irqoff(&droq->napi); -} - -/** * \brief Entry point for NAPI polling * @param napi NAPI structure * @param budget maximum number of items to process @@ -1473,7 +1462,7 @@ static int setup_io_queues(struct octeon_device *octeon_dev, int ifidx) droq_ops.farg = netdev; droq_ops.poll_mode = 1; - droq_ops.napi_fn = liquidio_vf_napi_drv_callback; + droq_ops.napi_fn = liquidio_napi_drv_callback; cpu_id = 0; cpu_id_modulus = num_present_cpus(); diff --git a/drivers/net/ethernet/cavium/liquidio/octeon_network.h b/drivers/net/ethernet/cavium/liquidio/octeon_network.h index 5d78fd6..076fdfc 100644 --- a/drivers/net/ethernet/cavium/liquidio/octeon_network.h +++ b/drivers/net/ethernet/cavium/liquidio/octeon_network.h @@ -484,4 +484,5 @@ liquidio_push_packet(u32 octeon_id __attribute__((unused)), union octeon_rh *rh, void *param, void *arg); +void liquidio_napi_drv_callback(void *arg); #endif