From patchwork Sat Sep 23 00:12:43 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Manlunas, Felix" X-Patchwork-Id: 817741 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="JiRsSN6y"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3xzW5q19bLz9t16 for ; Sat, 23 Sep 2017 10:13:19 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752158AbdIWAMv (ORCPT ); Fri, 22 Sep 2017 20:12:51 -0400 Received: from mail-dm3nam03on0043.outbound.protection.outlook.com ([104.47.41.43]:10627 "EHLO NAM03-DM3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751845AbdIWAMu (ORCPT ); Fri, 22 Sep 2017 20:12:50 -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=ZSqSPgWXjX6IlQwKmuNHyzZLhC+158uztgCzxYj1VQw=; b=JiRsSN6yk6hZknfxjpWndNTLaFFm8bQjRlEC+d4vXCkFiVFmYtt6UwJ0pP1Z50TU3xuvn3s8Fx4aDaC91kh0KUDjrXb2UyLJYizlnlpan2W2rR/GnbWW84MaNoSx/gLp+IeKElAPM/rgHx157x1vgxVq9a6eZ1m8xzkJwnZKWwQ= 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.20.77.7; Sat, 23 Sep 2017 00:12:46 +0000 Date: Fri, 22 Sep 2017 17:12:43 -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, ricardo.farrington@cavium.com Subject: [PATCH net-next 1/3] liquidio: allow override of firmware present in flash Message-ID: <20170923001243.GA1485@felix-thinkpad.cavium.com> References: <20170923001206.GA1458@felix-thinkpad.cavium.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20170923001206.GA1458@felix-thinkpad.cavium.com> User-Agent: Mutt/1.6.1 (2016-04-27) X-Originating-IP: [50.233.148.156] X-ClientProxiedBy: MWHPR04CA0087.namprd04.prod.outlook.com (10.174.173.28) To MWHPR07MB3181.namprd07.prod.outlook.com (10.172.96.139) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 9e4e164e-8444-4bfe-a00e-08d50217d1a6 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(300000503095)(300135400095)(2017052603199)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:MWHPR07MB3181; X-Microsoft-Exchange-Diagnostics: 1; MWHPR07MB3181; 3:2v00CWsjCgKolHhunanXIFe1v7yVoYBc+eQFUo/XDDHVhSrOic7KYXJUMBUoJGi+0++aWV4NnkAis78qDPFkoHxoGfXHbTl4XnvbCBkSggjozIdkFtUZ4t4EU5tTYNLRIt5aAIGlMVmWeeEspX75CfYHw4EywdfopCwOnQAniOJcqhOLDZdqw7X7p3n4oj5fNJ4VkmHSyh42m3mS7cuBzoASARW1F13o6EP7hdOeT8FZiNq5XKINL+N7q+ZerAY5; 25:SYliZFp0pZ8L9JxyAsw+W+wF9/A+i6iEXi/r4oARIchr4CkIii3ABdiKH/2cLi11LYy6tGoPSXdgcE7ok8RhluGprsfOhX3fI3kEhG3VDAowJtv/906p0WLs+oYGs8j+1K0JvNDm37evmyfxjJfBuoTZPISZErDznY0oFFSYZmwORBrnISU3Uo1xfipTSDPMg2L/7vkY4osrilNF4X4O12W5KGrgu0itj6L4LOOXZ265UBOrcbvOW2L1bx4VsPBA83iTlcOj+daNrMYxTktqa7ioNbfHApH5gRgUrxpeWY3STk89plGNwmqROVywXuZClknViAf+H/HKCH0emdED5g==; 31:8+S3M8lB+wQTRUd33ZvLkbICos417CCKwR/NeMThbIbETYhrScpM+LR+kupoXY50niAu8nYVzHlYFDaB3NkGWyaeq64xV044Ovb138B5WBQvPxdUOWEKmcYCFIEUQSnI2wJu05EqbQ/7ng3ha9HnKfRjx5yaskBikbuKL2q42vBbbbl5E6BYCPa932T6Rq0bvzp9DRvOeqJvPx8jea22T3jQQwHVAn7deHxBiJQaijw= X-MS-TrafficTypeDiagnostic: MWHPR07MB3181: X-Microsoft-Exchange-Diagnostics: 1; MWHPR07MB3181; 20:9zXjLG5A+Hfj0tc5N2e17PZJfS9qK/JjuV5oH4r/iV522F3Nrvpoz2W18jHEm04aaz0esP0dqacf/cXa4YT7Fbg6Cybvr5xVapr14/xDfDGxuQEqY+q2JKu2pElBbK/EnYEu3mwQ3mxUeh5AiEToJtfWhVBD1IFcJ1xduXG/GK28F1/XQ3hz5YQTBmdUsZgHZBcTHhzgrjaq0md549U6/fnB8d08I+H8AIcpxATfqk4b3D6cNcTZPabdmYcpXAzNXHf0lo4s+rhR/ArKNZPjOTH+gBU0z/Q4wzXbsfWc8EUZcUzBULtia3jdOK2D7hgtJupH63qxcT+9YSTvQt/trOwMAmYKW34lZGSFiwmi4Aiei5oqHMEGkG0XjHBUijR9Ep9w1OBB5zTcdv8hxtK7uhjE4DeWC3v8mcLLzR8fBg0DNH5WrfJwwdjGcPFD8mVz84jqY/1QR59B2bfwy3G1V0nuLRA233FbP9Q1MJC+trQbLgOJGa5d36VUyeeoi129; 4:xVMVr7UEQ92RIQ7AhsRe66b62gaTUH6W/yGtZYB3eSjSzdfE0aurG8VW/QCCfCNba5L92JJZ0vuF/ARcap8xWLz3SLPuay/9tKCtphj1i2V7wYZd58E8+fZQ92UyFKtOm8KGZh0zuIStNynhtuyipPq1qEv3pqmHJJTCOsiYEaHuqWqskBANJKQTAzHXeQBgOZ064yAVcmaNBmx5ZdDHP5pNV7UqtwmffNiLBQT6xP85w8Wf1YNdwLcZ2jSBarT9 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)(2401047)(8121501046)(5005006)(10201501046)(93006095)(93001095)(3002001)(100000703101)(100105400095)(6041248)(20161123558100)(20161123555025)(20161123562025)(20161123564025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123560025)(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: 0439571D1D X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6069001)(6009001)(376002)(346002)(199003)(189002)(76176999)(6666003)(189998001)(6486002)(83506001)(50466002)(2361001)(47776003)(2351001)(105586002)(106356001)(2906002)(76506005)(16586007)(86362001)(58126008)(66066001)(33656002)(68736007)(316002)(16526017)(107886003)(4326008)(101416001)(478600001)(7736002)(5660300001)(54356999)(8676002)(97736004)(1076002)(50986999)(3846002)(72206003)(6916009)(81166006)(8936002)(25786009)(2950100002)(6116002)(6496005)(23726003)(81156014)(53936002)(305945005)(18370500001); DIR:OUT; SFP:1101; SCL:1; SRVR:MWHPR07MB3181; H:localhost; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: 1; MWHPR07MB3181; 23:x5NR5kDHU9y4DFubjvQp7y3bKW61c2OvmEjFerinWwCHZlYP1PSThhT93aIEfbclzeBXq4X7Lbi5VzE5YbncTgiJrWB4KXICvl/20ygWe4KahZ7IfXivtRhNJL3PEWb7VLvIeZgD7IF/tQROKrMjfPld3nBduktue+ek8XPd+2qb9s5oZdxiHWZbbEZYi35lFN7y0lRpQqDpoO8nFVpNJsV13OQkR1e5nt8/aZCCMQUox6pU/RwNGhITqForr8R/lLLQI2z12Edw9ZxS7QrbOpcaUIWn9lyivmWEqmY0zkLs6VAL62TpZ/QdyKEHdMMsdHsJ6lFRvtvKFuOtaNY9agDlMA7j0G4Xof0Re6dNTVWOHuPoFnTq2RiVKNM5WC6bjJUhuldURD9TyNKvuHIN2bed212bOASfwlPkUi4D6N+bqjwQt1r/CfoGuX21d7AdLwbMRvc7Q6qpWBOz6iEwnqgkbH5YuWotD7/u5TCmuEOLgppKla0adMp1QaGT+X1+UOR8fq79VvKrwytZO9tF6nAFxF6R+UI9CWJYqj2hQHIzWQDD5uB1L3iEAnKrTcAHnuLs77pmQJT4svN5FgCU6KScQvwhoY9toJFFsT9uA5tCKYV6izBJ+2AP0HmJPyBnmVqPo/QTrjf1oA/ej15/1VoDPRzgDw/4FHGIfEXk/NfSAEFEGLij8W+gQt3XyimlTkM4ua02rNXOCVJyPaCb6jgSYQ57vA36ETXZfqrmE8jg+TB7JCeDp4+QfOLgKyLiuLDjOGSYBYh62G1UEH3QMahv+g+5Qc6SOY+svqGn11ld+pVESLmBOMRSpfdTs0brCiEBz5osmYiRzncriKg1xQk+XF20/VQvDtO0207PytOw1D55NZlKoIIAcfidJnZNFMpTlCHC5gu6I/Kwz21DPa0DJt1RDrDa/6p9LN6r9Dpo4dLIfV7mqC1i4ckfLlKwAZ7ZZiXciVAAnbSIl2DB13/i97TmkLytB5WhUGJGwQxllBWs0RZZblqe9a1DAozAHUuemvvseYYnvyz8BWz85LryB8Kmkq7QzJTMv4f0OY51Gvfs8/34dfOIquzBN9LCGcPvFGTXRpLwLfkLX0yOWC9n/k+jX8MdCUKbSbkRI4RxgRpQ4x6PT4bVYZ7//t07M9rMDUZO/3DbNvi+LtqhP1hpfx2ExwLWvKD/aMRVIKjOOLry7qd0yU4eCQ+xnASh X-Microsoft-Exchange-Diagnostics: 1; MWHPR07MB3181; 6:gvLgTV3g1SqirtUAMZBNl+cgqJ0iRaKmM7zvZI19b+/skqhw8US0jzloUp5cI58B1N5w7JRlMmctjqHV/WOy8RenMDCXTpIt5X7Mmi87THkxTQDz03hKcN4YWYFi8Ys0rn8dLNakGoMTQTUTHG4BFc5l9XczmFZYuaLp+vB3hHe8ZLgIFzUmjEkzLUv1isqBd2uYFPVB8sryCz1xcWt8hgJYXPtr6Ll/y8MY1epHeqv4fBeYNTmyQwn5IgNG3pIYxovMrC1I4hXaLLKbaqBMI5eTZgpaF6gofinYQ6FRwA5W/y1gckXKlqZkt5lZOv0kxbvW+lsGgMjYRTo0wEL6Uw==; 5:UPrSlQooeliaSGywp6bJ6G2LowEFRnEIRDqC1PLVXNWQ4EuiubGblValF14253+Ne2SRRhGGciBGycmwWinGjZiWdyX0S9uD1ckYd/qomp2TAe8z/GAFNu6EC/qKYoVs2Ng7Gn2Nu1jWObyUSUFKrA==; 24:3RnooTAVT4x+YKQ/o+XTaNHMD6pO7kDmP7prOplAh7yhnpv87xDY2YY2Qxw10ZvjEad7YusxBzy1GXBgZgJlGrP7yEXbQFjIFgJMaM3cJJE=; 7:UXtclTI3p+yS+al7Vd3LuSqMBwvBDbwyGrKANe8ZIrPB41XuCilBEUZpVNQ1Q8UuIaJI8y+npbnAW7QN09nU0SDD6Qu9J6DbSkL4C9/RswRPAkq15e57hFNttCNv/yuOYJ88SjAIoRQJJsD1P7Slk+BizV7xyPtWcyfz9EM7uWQsJnRFCFjnjyoBmOj4Vt7ja7/aaz8YaPt6wswU/tVYVKBwY1q+3QZu8OchFQSwKs0= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Sep 2017 00:12:46.6560 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: MWHPR07MB3181 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Rick Farrington Signed-off-by: Rick Farrington Signed-off-by: Felix Manlunas --- drivers/net/ethernet/cavium/liquidio/lio_main.c | 68 ++++++++++++++-------- .../net/ethernet/cavium/liquidio/liquidio_image.h | 1 + .../net/ethernet/cavium/liquidio/octeon_device.c | 11 +++- .../net/ethernet/cavium/liquidio/octeon_device.h | 10 ++++ 4 files changed, 64 insertions(+), 26 deletions(-) diff --git a/drivers/net/ethernet/cavium/liquidio/lio_main.c b/drivers/net/ethernet/cavium/liquidio/lio_main.c index e7f5494..ce08f71 100644 --- a/drivers/net/ethernet/cavium/liquidio/lio_main.c +++ b/drivers/net/ethernet/cavium/liquidio/lio_main.c @@ -59,9 +59,9 @@ module_param(debug, int, 0644); MODULE_PARM_DESC(debug, "NETIF_MSG debug bits"); -static char fw_type[LIO_MAX_FW_TYPE_LEN] = LIO_FW_NAME_TYPE_NIC; +static char fw_type[LIO_MAX_FW_TYPE_LEN] = LIO_FW_NAME_TYPE_AUTO; module_param_string(fw_type, fw_type, sizeof(fw_type), 0444); -MODULE_PARM_DESC(fw_type, "Type of firmware to be loaded. Default \"nic\". Use \"none\" to load firmware from flash."); +MODULE_PARM_DESC(fw_type, "Type of firmware to be loaded (default is \"auto\"), which uses firmware in flash, if present, else loads \"nic\"."); static u32 console_bitmask; module_param(console_bitmask, int, 0644); @@ -1115,10 +1115,10 @@ static int liquidio_watchdog(void *param) return 0; } -static bool fw_type_is_none(void) +static bool fw_type_is_auto(void) { - return strncmp(fw_type, LIO_FW_NAME_TYPE_NONE, - sizeof(LIO_FW_NAME_TYPE_NONE)) == 0; + return strncmp(fw_type, LIO_FW_NAME_TYPE_AUTO, + sizeof(LIO_FW_NAME_TYPE_AUTO)) == 0; } /** @@ -1302,7 +1302,7 @@ static void octeon_destroy_resources(struct octeon_device *oct) * Implementation note: only soft-reset the device * if it is a CN6XXX OR the LAST CN23XX device. */ - if (fw_type_is_none()) + if (atomic_read(oct->adapter_fw_state) == FW_IS_PRELOADED) octeon_pci_flr(oct); else if (OCTEON_CN6XXX(oct) || !refcount) oct->fn_list.soft_reset(oct); @@ -1934,7 +1934,7 @@ static int load_firmware(struct octeon_device *oct) char fw_name[LIO_MAX_FW_FILENAME_LEN]; char *tmp_fw_type; - if (fw_type[0] == '\0') + if (fw_type_is_auto()) tmp_fw_type = LIO_FW_NAME_TYPE_NIC; else tmp_fw_type = fw_type; @@ -3882,9 +3882,9 @@ static void nic_starter(struct work_struct *work) static int octeon_device_init(struct octeon_device *octeon_dev) { int j, ret; - int fw_loaded = 0; char bootcmd[] = "\n"; char *dbg_enb = NULL; + enum lio_fw_state fw_state; struct octeon_device_priv *oct_priv = (struct octeon_device_priv *)octeon_dev->priv; atomic_set(&octeon_dev->status, OCT_DEV_BEGIN_STATE); @@ -3916,24 +3916,40 @@ static int octeon_device_init(struct octeon_device *octeon_dev) octeon_dev->app_mode = CVM_DRV_INVALID_APP; - if (OCTEON_CN23XX_PF(octeon_dev)) { - if (!cn23xx_fw_loaded(octeon_dev) && !fw_type_is_none()) { - fw_loaded = 0; - /* Do a soft reset of the Octeon device. */ - if (octeon_dev->fn_list.soft_reset(octeon_dev)) - return 1; - /* things might have changed */ - if (!cn23xx_fw_loaded(octeon_dev)) - fw_loaded = 0; - else - fw_loaded = 1; - } else { - fw_loaded = 1; - } - } else if (octeon_dev->fn_list.soft_reset(octeon_dev)) { - return 1; + /* CN23XX supports preloaded firmware if the following is true: + * + * The adapter indicates that firmware is currently running AND + * 'fw_type' is 'auto'. + * + * (default state is NEEDS_TO_BE_LOADED, override it if appropriate). + */ + if (OCTEON_CN23XX_PF(octeon_dev) && + cn23xx_fw_loaded(octeon_dev) && fw_type_is_auto()) { + atomic_cmpxchg(octeon_dev->adapter_fw_state, + FW_NEEDS_TO_BE_LOADED, FW_IS_PRELOADED); } + /* If loading firmware, only first device of adapter needs to do so. */ + fw_state = atomic_cmpxchg(octeon_dev->adapter_fw_state, + FW_NEEDS_TO_BE_LOADED, + FW_IS_BEING_LOADED); + + /* Here, [local variable] 'fw_state' is set to one of: + * + * FW_IS_PRELOADED: No firmware is to be loaded (see above) + * FW_NEEDS_TO_BE_LOADED: The driver's first instance will load + * firmware to the adapter. + * FW_IS_BEING_LOADED: The driver's second instance will not load + * firmware to the adapter. + */ + + /* Prior to f/w load, perform a soft reset of the Octeon device; + * if error resetting, return w/error. + */ + if (fw_state == FW_NEEDS_TO_BE_LOADED) + if (octeon_dev->fn_list.soft_reset(octeon_dev)) + return 1; + /* Initialize the dispatch mechanism used to push packets arriving on * Octeon Output queues. */ @@ -4063,7 +4079,7 @@ static int octeon_device_init(struct octeon_device *octeon_dev) atomic_set(&octeon_dev->status, OCT_DEV_IO_QUEUES_DONE); - if ((!OCTEON_CN23XX_PF(octeon_dev)) || !fw_loaded) { + if (fw_state == FW_NEEDS_TO_BE_LOADED) { dev_dbg(&octeon_dev->pci_dev->dev, "Waiting for DDR initialization...\n"); if (!ddr_timeout) { dev_info(&octeon_dev->pci_dev->dev, @@ -4125,6 +4141,8 @@ static int octeon_device_init(struct octeon_device *octeon_dev) dev_err(&octeon_dev->pci_dev->dev, "Could not load firmware to board\n"); return 1; } + + atomic_set(octeon_dev->adapter_fw_state, FW_HAS_BEEN_LOADED); } handshake[octeon_dev->octeon_id].init_ok = 1; diff --git a/drivers/net/ethernet/cavium/liquidio/liquidio_image.h b/drivers/net/ethernet/cavium/liquidio/liquidio_image.h index 78a3685..5bf5e87 100644 --- a/drivers/net/ethernet/cavium/liquidio/liquidio_image.h +++ b/drivers/net/ethernet/cavium/liquidio/liquidio_image.h @@ -24,6 +24,7 @@ #define LIO_FW_BASE_NAME "lio_" #define LIO_FW_NAME_SUFFIX ".bin" #define LIO_FW_NAME_TYPE_NIC "nic" +#define LIO_FW_NAME_TYPE_AUTO "auto" #define LIO_FW_NAME_TYPE_NONE "none" #define LIO_MAX_FIRMWARE_VERSION_LEN 16 diff --git a/drivers/net/ethernet/cavium/liquidio/octeon_device.c b/drivers/net/ethernet/cavium/liquidio/octeon_device.c index 29d53b1..e4aa339 100644 --- a/drivers/net/ethernet/cavium/liquidio/octeon_device.c +++ b/drivers/net/ethernet/cavium/liquidio/octeon_device.c @@ -541,6 +541,7 @@ static struct octeon_device *octeon_device[MAX_OCTEON_DEVICES]; static atomic_t adapter_refcounts[MAX_OCTEON_DEVICES]; +static atomic_t adapter_fw_states[MAX_OCTEON_DEVICES]; static u32 octeon_device_count; /* locks device array (i.e. octeon_device[]) */ @@ -770,6 +771,10 @@ int octeon_register_device(struct octeon_device *oct, oct->adapter_refcount = &adapter_refcounts[oct->octeon_id]; atomic_set(oct->adapter_refcount, 0); + /* Like the reference count, the f/w state is shared 'per-adapter' */ + oct->adapter_fw_state = &adapter_fw_states[oct->octeon_id]; + atomic_set(oct->adapter_fw_state, FW_NEEDS_TO_BE_LOADED); + spin_lock(&octeon_devices_lock); for (idx = (int)oct->octeon_id - 1; idx >= 0; idx--) { if (!octeon_device[idx]) { @@ -780,11 +785,15 @@ int octeon_register_device(struct octeon_device *oct, atomic_inc(oct->adapter_refcount); return 1; /* here, refcount is guaranteed to be 1 */ } - /* if another device is at same bus/dev, use its refcounter */ + /* If another device is at same bus/dev, use its refcounter + * (and f/w state variable). + */ if ((octeon_device[idx]->loc.bus == bus) && (octeon_device[idx]->loc.dev == dev)) { oct->adapter_refcount = octeon_device[idx]->adapter_refcount; + oct->adapter_fw_state = + octeon_device[idx]->adapter_fw_state; break; } } diff --git a/drivers/net/ethernet/cavium/liquidio/octeon_device.h b/drivers/net/ethernet/cavium/liquidio/octeon_device.h index 894af19..33d19c4 100644 --- a/drivers/net/ethernet/cavium/liquidio/octeon_device.h +++ b/drivers/net/ethernet/cavium/liquidio/octeon_device.h @@ -50,6 +50,13 @@ enum octeon_pci_swap_mode { OCTEON_PCI_32BIT_LW_SWAP = 3 }; +enum lio_fw_state { + FW_IS_PRELOADED = 0, + FW_NEEDS_TO_BE_LOADED = 1, + FW_IS_BEING_LOADED = 2, + FW_HAS_BEEN_LOADED = 3, +}; + enum { OCTEON_CONFIG_TYPE_DEFAULT = 0, NUM_OCTEON_CONFS, @@ -557,6 +564,9 @@ struct octeon_device { } loc; atomic_t *adapter_refcount; /* reference count of adapter */ + + atomic_t *adapter_fw_state; /* per-adapter, lio_fw_state */ + bool ptp_enable; }; From patchwork Sat Sep 23 00:12:47 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Manlunas, Felix" X-Patchwork-Id: 817742 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="A5bfqd59"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3xzW5q72xmz9sNw for ; Sat, 23 Sep 2017 10:13:19 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752183AbdIWAM4 (ORCPT ); Fri, 22 Sep 2017 20:12:56 -0400 Received: from mail-sn1nam01on0087.outbound.protection.outlook.com ([104.47.32.87]:5728 "EHLO NAM01-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751845AbdIWAMw (ORCPT ); Fri, 22 Sep 2017 20:12:52 -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=/ZJ4E4nb/XqtQVBxyQRL4Vw21YsIiiXkWgAmjQC4oA8=; b=A5bfqd593JF4shjQV05ovAT6QkMKedDOSn3hONa7u1cYZWAvhXSxPIjO1/GZT+cPm0QgjmFrxaDyH2x8QE3U6lnZTzwSSliHHW2HRlzUvvKKxEEVsZVbyv/XEcY8oCPl/BMSP2/YLq38gD/Co5B2z9apVoSVteuDTrMEcJKK3hE= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Felix.Manlunas@cavium.com; Received: from localhost (50.233.148.156) by BN6PR07MB3169.namprd07.prod.outlook.com (10.172.105.139) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.77.7; Sat, 23 Sep 2017 00:12:50 +0000 Date: Fri, 22 Sep 2017 17:12:47 -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, ricardo.farrington@cavium.com Subject: [PATCH net-next 2/3] liquidio: verify firmware version when auto-loaded from flash. Message-ID: <20170923001247.GA1496@felix-thinkpad.cavium.com> References: <20170923001206.GA1458@felix-thinkpad.cavium.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20170923001206.GA1458@felix-thinkpad.cavium.com> User-Agent: Mutt/1.6.1 (2016-04-27) X-Originating-IP: [50.233.148.156] X-ClientProxiedBy: MWHPR22CA0037.namprd22.prod.outlook.com (10.168.250.151) To BN6PR07MB3169.namprd07.prod.outlook.com (10.172.105.139) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 63ad1d24-87f8-49b9-e38e-08d50217d423 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(300000503095)(300135400095)(2017052603199)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:BN6PR07MB3169; X-Microsoft-Exchange-Diagnostics: 1; BN6PR07MB3169; 3:yIaPWdW5KejnB4dr/pPW6DAXSuheIWwDQe3/8UzNFFWcbvvqC4f8WMffJlTfarCI+po+67yv4smGCd0bty6Qfp88kOAJ33vd4ncGlbbDw6R+NrqCvw9EIZXWofwLarBhf/lNwmvTllSI7qcenICo7CQMx81lWYii0T1ZrhTYX8xF8jeaneYc6rv5C6rymHx4ZN6raWx3+YBLuwaD/GUQ/mn3/W9gcIKK/9s8DJ2ZShElBDfF3TNPrwENEgb/Y8PH; 25:rpqJUSIb2yF9JnEjj1VX/8vsX2mLjsP4iHr4JFVs98AC/j7f88Gl1yV6h0Nmxn0tGvg2aVoKnbN6jPaWrkSyJvrpUvmKZydjg/ueB8KzPTNZtn7+mG8zsNRW+OIJjBJryNPLT0AbLZPHS0UizQO2hI8+xqLyn+sXBZ0PfnQhmuBEhjxGULRdNJ+B7v2uiyFxIvD3OKhXdoCov9W+DK6tmoxx2LWnTUaejJd4fMKgX+cHdJYAq5BKhmgyTc6K5Hqiw+ZizQAND8txWjDa4TZOQXSxGvq9T2CEr56ziVssc7HYzJaJVtUTT38jI7sOBCQyDptLVSF8YmICc+suJOT23w==; 31:RZ2aWKLQ44govJtYSYeOpS0z996hjsViERsapoZSUNLF7Pa9sXROM5LCHsW1s51dZCSRTSCdfrYsRjBvYqNOA8u0U9SDfvslnoW8NP/zYLM0NLFQj9CZ4y4ti1g61kjQ/UEhIMLZNpceuzIz7QBYV0029km9akFmyMmlpnA+it3K4o8o63Ry5u4E3SZHt6j0QJ8ny7shJb0NAv6v5cngc+mOKPf3/MD0F+aBu6MjrLY= X-MS-TrafficTypeDiagnostic: BN6PR07MB3169: X-Microsoft-Exchange-Diagnostics: 1; BN6PR07MB3169; 20:H0vsnq5D9n6+o+/zOkMRpXi8II5/NNkSOm0kQepl1fZ4j3XbbrdgvnwgA9K5ngdwsVeJ71MCj3+NEKoya3Qs+AQ0pq5elASVaMO+1ZLE15vod3I4Y5HmLr+Bvl0jexgdDL/O6B6orbtif/X9m5OBVn6itoJNLf201uxWZtDdpQtbUO1YIcFb7RJqSC7CoJi+x/PjDWfJedQTEW1KP3+X/MVJngYjAJkE0Al2gmH92V/wX/vbpktSf1w63jZxEdom2h9dHzyRaEIBJjSKgk2K+KGFja17AgndrWk+UAMZze/wIWwsWjQSdMKqcwBawHmwt/YP93DocbIIvzf1whhyKqvqAqh7+GTNIT+6FzpbiXCpmnp6OpUpy21c2ehguXCb/dZX/5y8sAZcXQC0b/0haHBL9JT8FyF1na1rv6zZLT10B1e3Bhn1gCYdYQwUoLWmaS2dGfHwt10JO4hHAORZQDYr79m3mlyMs4Ce0lelUMMNcx1dD7Zgye1450U0Vu3q; 4:wybjGT7OTcPF3TSaOdrQbrjJA1jWECINGuPgoGaM7fX/1kjJ8JOfex8A0SAHaZkfO+sgfzXMFEwfjPGJrg44MfQ90kZ7fakRdYjIsyZpq7Swxb0j5BARMzpBpSmnaGNtr15OAGc4jbb7m3dwdbMIgU2Y1W+1+p0V6B1oj5dHHsT9fB9MQwcFFz2vco71cN+EmBtqrBk1hQp7s04dU5BzxuuCupyu0SYCCg04Qo3540/9j42k4UjQwnfOo8Ua8jTB 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)(2401047)(8121501046)(5005006)(93006095)(93001095)(3002001)(100000703101)(100105400095)(10201501046)(6041248)(20161123564025)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(20161123560025)(20161123558100)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:BN6PR07MB3169; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:BN6PR07MB3169; X-Forefront-PRVS: 0439571D1D X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6009001)(6069001)(346002)(376002)(199003)(189002)(189998001)(16526017)(15650500001)(316002)(66066001)(2361001)(2351001)(2950100002)(6916009)(72206003)(76176999)(83506001)(25786009)(54356999)(97736004)(6666003)(6486002)(47776003)(101416001)(50986999)(106356001)(478600001)(2906002)(5660300001)(1076002)(81166006)(58126008)(105586002)(6116002)(4326008)(8936002)(76506005)(33656002)(8676002)(3846002)(68736007)(6496005)(50466002)(23726003)(107886003)(305945005)(53936002)(7736002)(86362001)(81156014)(16586007)(18370500001); DIR:OUT; SFP:1101; SCL:1; SRVR:BN6PR07MB3169; H:localhost; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: 1; BN6PR07MB3169; 23:w6M9xTMlznLEl+RgfW4GaJiO+iiGl8LG4Wd1h9MoNffnn97kyKwjGfrJadwNeM3tc+la6yIAxrrcC/c70a5o0boReGbQ8MG9F5f2wl8lrYevo7yShsXRJNyjmZFB/2PdA1PXcEVCadYbn4she2Yo7o922ZZp8SxZ6eVQZpbgvm3HaduM3mmEz58+xhz+Ubn4sfip1N3zHWP/HSMoDk24sJWJ20Zw5zaHbtg2ZfaamIF2157JJ02yNGEgf33xoGy0OtzGfktIlt4K0hGJN+Z1siv/1+xE+Ul0iCTzi3CgKfLXPmhvuGVYXkrQ1hx11KAHkW/r0xHqbLdtbnOtVH0tEE5s/7cti6g+26Vs5nvgJHUrlwjlRcs3CwMAvClW51a2zdLtdkfh7nTup7z5KE+fn98CbiXTZCC8z7fIqJZFulLTzNAGg19JW8yk/9QdYI9ZMSCw3MQ2QuWdMKirHLYlvQSpm5XG0MZ8rdQ6j/Bf1ckMtPplg3dRt8RwUSf0Ro1E7H0a/ARQU7Pp7jO9IhxSNPP7QTSqojNjbX8IeNzL8dh8cnECNmdaXju6+FIOBGtrBWiEufuFbLD7cUtCEn89J9lFR0zF+SbbLuVD0vo66c00y9237OJQsz+he08fowHQ51KgxwoGx7ScVbHLp3ri0y7KAk5/91cQcjjDYZLaw9LKzMO/ql+VR5Y5Ic/HN947AdbXKNv/vqPGDQpa7oChLDqJWblYq+hU2GoebG4DHqOCgTVgK0rWWvJCx8biyn7tH2j9eZYsYXWLKZT2VfBHaCY5HsM5m1BYdz/1DmDX6kzomoy2TUG6It3odA5Xw+epZvEGsxXhx9Gup5h9gQgM8VGMtu0gvZ/nGDN1xfQyao/RZfKWnqqLthHj4Ky4GcVyNRi+MyniDA1QoO6trNk+1n+2z3afCTC/f9ILOLtWJmBDihJh5qXFRWAU4Be9a9M7A9c2lkObLX1bAhGm1snoP1Q6rFlClYuz8qBDDfNIsgfz+9cLNDKBer4xuyhdr4rDkSJGQ8zbDkPojiAbeIdz2/+SRx39bq8ck+64tHT+4xvf8jUVDVauC2IkpVA+kA2IHvNrIXOSxc+ZfaXmUID+V4PdgFaQyGvQdo4L62OD+z2TqQ8hpxM0EG6H9QGGmtfsYK3ytvX36TS2IkLl3h3maIvhV52uSCia3FWAd0VnMZVMGC/Ij0vy3nRomI8GCLD2MV5J7711Pc5NaCQLlTlzCQ== X-Microsoft-Exchange-Diagnostics: 1; BN6PR07MB3169; 6:p3a5/tnVs1cfd3g1TbWRS/ttiMoVXvHXSlSJnrN1DtB6YNRXq6kNKU4b6Ei3p/xZMIX/eFWFiTTMPuc0qhxvrZ7N75F+yfyvX0YC0JzrQqR2K4a8FKfkIgCFbfg5KkxlO2E788yNL1dYRq+55s7wT9CKuX0JL6v2qh41CfAmBr0Md3CXo9EhHMV2yAD355T52K+XZcTMqbKaZlWuaP4FZOVgYrWlz8lH9rE6dCTewMd4ldIiBlb2sjxLnBDd+/UXAgb53dJdG9xWrMA5K+VBG9rUsr8EG1I/KIolgzt7A/olZiQvUnfT6qlbUfJ7rr37RTY5i1e+gr9UReoTs77o2w==; 5:ZD8qSndXRq8Llm4IwPr6dnah/WgdcdnSDE/66NrJcHF4pdhDuMu29VlLZ48AR0ghaYat03lmhsTrS1M3bnTrWyqhVQaEI158fSfG1/6n1teQ670Y6zQm3vxtm1H/94fFjCEqHr8RwaGQFlIzKhSNtg==; 24:K91OJmbPjucP4Z8rD/7WaB5QWHuTpHzr57ZnP6lpBIMI+wMVqYYepk8VwPlh2Mzo9t1RrnY9UpDZmBwOjKNB/QnjuLeAuhT96cficxlm7VY=; 7:F34RJh9/+nEw2rU43o0mXldXUSUGctzdQB9u6aQtDkdDCfNArXhW4q1f6FGSRnbkBL+BdMRlWWXIym6jkk5DbdcCuycngZ/Tu2JPsGYmZg60NAZBucXJuCJ2NRbANaygWVNWWe5YbvROSmwiOSJQjg+SqubgvmqDUvx35udqe7DT9aS8fHlKpU1WZy+aeMaBonG8j9IkJEeecBgJE1KzuJy4bdGw4GY36Sy3o3/pJI0= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Sep 2017 00:12:50.7699 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR07MB3169 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Rick Farrington Signed-off-by: Rick Farrington Signed-off-by: Felix Manlunas --- drivers/net/ethernet/cavium/liquidio/lio_main.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/cavium/liquidio/lio_main.c b/drivers/net/ethernet/cavium/liquidio/lio_main.c index ce08f71..a3c9867 100644 --- a/drivers/net/ethernet/cavium/liquidio/lio_main.c +++ b/drivers/net/ethernet/cavium/liquidio/lio_main.c @@ -3303,7 +3303,7 @@ static int setup_nic_devices(struct octeon_device *octeon_dev) { struct lio *lio = NULL; struct net_device *netdev; - u8 mac[6], i, j; + u8 mac[6], i, j, *fw_ver; struct octeon_soft_command *sc; struct liquidio_if_cfg_context *ctx; struct liquidio_if_cfg_resp *resp; @@ -3414,6 +3414,22 @@ static int setup_nic_devices(struct octeon_device *octeon_dev) goto setup_nic_dev_fail; } + /* Verify f/w version (in case of 'auto' loading from flash) */ + fw_ver = octeon_dev->fw_info.liquidio_firmware_version; + if (memcmp(LIQUIDIO_BASE_VERSION, + fw_ver, + strlen(LIQUIDIO_BASE_VERSION))) { + dev_err(&octeon_dev->pci_dev->dev, + "Unmatched firmware version. Expected %s.x, got %s.\n", + LIQUIDIO_BASE_VERSION, fw_ver); + goto setup_nic_dev_fail; + } else if (atomic_read(octeon_dev->adapter_fw_state) == + FW_IS_PRELOADED) { + dev_info(&octeon_dev->pci_dev->dev, + "Using auto-loaded firmware version %s.\n", + fw_ver); + } + octeon_swap_8B_data((u64 *)(&resp->cfg_info), (sizeof(struct liquidio_if_cfg_info)) >> 3); From patchwork Sat Sep 23 00:12:51 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Manlunas, Felix" X-Patchwork-Id: 817743 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="DSkanzBX"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3xzW5r4RYhz9t16 for ; Sat, 23 Sep 2017 10:13:20 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752254AbdIWANA (ORCPT ); Fri, 22 Sep 2017 20:13:00 -0400 Received: from mail-bl2nam02on0086.outbound.protection.outlook.com ([104.47.38.86]:46912 "EHLO NAM02-BL2-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752179AbdIWAM4 (ORCPT ); Fri, 22 Sep 2017 20:12:56 -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=q4LL5POzZARy3ddXRAI5s3ALFCqXLs2lgldN0D33V4A=; b=DSkanzBXsp6i2J+v+XxRHjG6b5Drm4rFsa8lGnFr0q/FWeg9PQ8fGjrOyV4ni2OfqcNqusSJ3P5jbvo6YoCsV327CklQFq/msuOK0Ja7MBvQ+myRsU5TNd2eNUEGYf+aine0XLGN6QZBzd1GXOhbwiD9611TbInSW/W98+5sUpE= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Felix.Manlunas@cavium.com; Received: from localhost (50.233.148.156) by CY4PR07MB3175.namprd07.prod.outlook.com (10.172.115.141) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.77.7; Sat, 23 Sep 2017 00:12:53 +0000 Date: Fri, 22 Sep 2017 17:12:51 -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, ricardo.farrington@cavium.com Subject: [PATCH net-next 3/3] liquidio: update module parameter fw_type to reflect firmware type loaded Message-ID: <20170923001251.GA1507@felix-thinkpad.cavium.com> References: <20170923001206.GA1458@felix-thinkpad.cavium.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20170923001206.GA1458@felix-thinkpad.cavium.com> User-Agent: Mutt/1.6.1 (2016-04-27) X-Originating-IP: [50.233.148.156] X-ClientProxiedBy: MWHPR1001CA0022.namprd10.prod.outlook.com (10.174.165.35) To CY4PR07MB3175.namprd07.prod.outlook.com (10.172.115.141) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 1f72a526-4fa9-443a-adc7-08d50217d5e9 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(300000503095)(300135400095)(2017052603199)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:CY4PR07MB3175; X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3175; 3:Z4E8jABG7WVx3VdwCt+Trw4U5C8xwZS/UiocKAbGqSPZ/OBAWjcrkw2GNsRDqeGXkw9LN+sAfFlRmvDC01XJfH1NlkravPPyiGhyrMZdpDusYETm0K2GOjxX0GYlDIpnRSVXRq3iJV9QgoSkg1xvPulpqRHSN93JHqkslUBRUSjPcvkQd3YFT6T5qDtvQrqF44hv5+P+GpMfmG2JasPZuGKY+p6cqR0FgZ1l4MEwEV2uuPc7HCPAJCI/FoCU2Hls; 25:z7zLpoKA5hlBfwA+sRVV8WMxgh6LQeD7kx/DiFb5jJtifCk5jIa6/LKdOT4FAp6XE6zlAOKMgIW5vVyjkAi24YVlb+Fz9FFLd6CF58D+J4YhcL99sGjIeqCd3+nc/Pa1dzssOhFxYbOIUgSRm4OgSQYMR/Njj0y51ebLFcbHA/UrFSYb8VxmL4YCM86JOsQmx1YYVuda5kYU0SlYP8U0bRHX27zs2zDWWVCD7iQkNBJfOuyair6YaIltTJVluvUjMcjp0EyROjl1Z9FNMfjrOC2pcxiRTVHa1Au67JvWbvk3CWrjnTlUXI4iS1oUz9qU3RELx2iewpq4ccfeVtUMIA==; 31:zSexBVfyB6EiBbbtbI7L+8OI8sU3JzRTu4Y9/ipTRWyVG2HdnEt4CebsVN0a5CwJ99T5MsHa+/58SPpKTN+2V8VNCBQZKvr6BsRYm597M85WCU0Y3bmkoTN0StKD8b7HmKsvkJmDrHDU8tcqPI6oD34UByZbINgp8wo47bSjciEF50UE203h6fLFlSExMxK+mytHdYYiuPMgEqX+huuWW2QCoBdzf7/fY6kamAZhhPo= X-MS-TrafficTypeDiagnostic: CY4PR07MB3175: X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3175; 20:4lG7qR/E6WL+m51bG9twgZv8ARsQV3hYIZ4e9SDTTtXTq4oZ7+dYLU657YmjtrDIZLfvSemYBApgxbYB0gxgXejixu0m2B949Bidce2yVppobBRb/DvuGKpSMKsZUgD4zslqy295imDVBw4/T/1A/fWXzUqfOF4BHBjo9BpiDSRaLVfg+NE1OGSWUwGOoK0940teaPlDCv6t8SbKeEnbZQUTE+F6FEYmHpTxmNbHZv0E2mcRqUelHsPkNU6BChQRea/iim/ndE+CdKF/nn+EH837sW/h3fsbce+5o/lw0f0sAutLwhQso4u4yYQq7FZghIrA3G+fSMHg9BuSgjezrqe03KGt3ZlIaayCY2lNVYl4TtjqAanllxZN1yHqvVyCgSCHF5DW1bBwjQiKAvIjJFy4nV2rtQBH0N2Gj1hOCD/52+z+mGmVHC+De8U0VyAat8VAIIwj/eJJqrTq1KNcoHVZZL8nBXtbfcW43taPxEl9ig5514MBtdkD8leBR4Ci; 4:k8pVJMpq029r1tkZzFhFpWyMQUDfAynpCxLMh9Sd0HEYlo3ZeCP8cOF+P+TPpYeSOASvlV7afU3MsMduv2u8DO3w7gWRG8NgVfyDrFgiDX8BwuI+AGJSVUq6gIpylgdWq8PYx4zX5X3P3bs2u9VPUwzxrUKu+b+YKCUbvQEIlBgxIEv51q/1cdKosWvDD7uvJ6jxhw87/tHTXh6s2nPqvLMNmGL7XT3s0nQIIlUrxI+9gtLYDdYUhwuIZpWH0UNU 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)(2401047)(5005006)(8121501046)(100000703101)(100105400095)(10201501046)(93006095)(93001095)(3002001)(6041248)(20161123562025)(20161123558100)(20161123555025)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123564025)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:CY4PR07MB3175; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:CY4PR07MB3175; X-Forefront-PRVS: 0439571D1D X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6069001)(6009001)(346002)(376002)(199003)(189002)(16586007)(72206003)(47776003)(66066001)(50986999)(81156014)(8936002)(25786009)(478600001)(33656002)(81166006)(101416001)(7736002)(97736004)(8676002)(76176999)(2906002)(4326008)(54356999)(53936002)(83506001)(50466002)(76506005)(58126008)(305945005)(107886003)(6916009)(16526017)(2950100002)(68736007)(316002)(86362001)(105586002)(106356001)(5660300001)(6496005)(6486002)(23726003)(1076002)(3846002)(2361001)(6116002)(2351001)(189998001)(18370500001); DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR07MB3175; H:localhost; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3175; 23:7wUi/vlecnmLVlHgNHLjHOHHZdBSvZ8emV1awseT1qmV6hgI6YVFtZ55MyPSebMwIBX6/0OTiA/8bm4WfAZBUgUKKOhe6IYk57ZaYSsHfg0hKCPkORaJgKODIhznUx4JCbkITnZcGmd/0grSaQqm0tlNdjqYJbSTkhrCC0cXf+LRwAc/wQmol8yJNckuUjXqLR8DPmavmneL6hoLOlksffzk5IN5bSqLanvL5+obqeX2/tsq+NP+O4s+4pxFSC2tf8di4Cqy4jMM+BhpC7HO28FBsoV/aSmr4l16aL8Hmlzg918QSXK+a/oSE/JN5nFlJotei3dfZvViYTyRQPTICM9/AnmwqhI3qexW3UFV3ZyRKfQx2yClLS6nry7gAxJyXnK55Dex+f8pjN3HAq12t8VOgNjrull8d0UeIVUWwTZUhl9ILhcXa7A/oE8gylvuG1twNQ7jGS225xpm6xPfHK4zs5lfqPU+7JZuVaBcG9djcdHIw4ChhCXvfsiayzHUXOBBw+6WKOJST9MnH4S01ocbgvRcp2mrofKx1oGJ5H1lJfZQtYsuXul/yGbei4Hm6JXZPDIzGzC6XCYsdqopwmaCL2ozx7NQkOKQzZ4NkAmNDL/+mCvHP/+vIfXhMxJE/i/bl3Y9SxpKkOgsf6rnTQRzlqxr1tTAA+iVv6sP52R1mMfaWVUnxuqt6b1lfq1pFQoJvWL+cU0ejPVP+0LDpmWl/W5cSxLd2OhhHDgh4yYIow7oQVck63rsGbs/ZyL6jrQ8AS3Kh97av5jslLm5ErbHEBOmDy5GXB3yZ8wTuKbbvukPSEfctQEgZqrBwcI67oPlFsrz2VDQ+2sgC4JMWf5jSD//KFUMDgwlan8Cvo6V7ffyLCq0rnngBQp2pRvkFUJC2ALCipEFNxGTU3KRyDz/QxUCTHOkiVONysZi95riAd2q9Fu3tY67R8PdrQGoJhoTZ4B1ONqj0JOCoUwHpy0vzNUypq7+iq4yocPHjuxty0+DSl/UkJuIs+D+l8Kfbh6cdk882YLoug/DAby4YZaKvaDd5Qm2jrkTUqwb0y0LLvzaOU0x1TJ3SQsv9seJOBudbHwpJl/6E7bn7mlDVq7xNnBOeBuZL/rEXE8RxZC4OEdaLPmgYRLFtUT5htzlWcl0ArjEWqXOTp98TQKV7KFK0TDsogthlTIb7CR2NRU= X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3175; 6:l/Wq6PMCWhvMf2fk/rWjIQ8ENZ7WFj2J8eNJitDTI1YYgeYLQjt57+E4AUe/2eP3ivWVczf0sScx18Kfm7wsh9Z/ZsseR27e1pEa0qGWryPmS3wBp2S6Xw2Gx9W2uL/mtDBIs55S79uL+yO2PCUk64CwG7cDT5NMJRuI7NOeFtN83qBxhK+cVJ+LFyNKy7ojLJpPZl9yuVFqjsUudDotYysw7oIaJIotg8KJmOfyn5Gw4Q3JTNEgva8agubQltVdx/LuwoGhjAdvWUp43cogeMHfxTHhVPN9ujfskhcijkSFBBEafmHt6qc/DI6ZO/OlzgddR9pgWjden1DHURfUJA==; 5:NyjybdeVS9FWU25wxazPUA6OP3F3OVeWq+wwLCHy/Qgz6pGmHwl1aNofknNQBehKy9wnvDBjHVMKuPJ1SOxN9wgS0I8C28GDH+Oicl8orQX+QD0Q1oJhJh30FAVQW4AdKHIU0I2reU/frNMWxYC+qA==; 24:vGBq9H7ovi2XfWAJ4Y+vyAEBunw3jBt1WYb5NbALUuKfgqFamIKZM/Sd7A+RaXgKZHqcO5zCYpQ5oOjcsLVKsDvQmLc2fjlpC7kkVat6Tyc=; 7:acYWRsSMdrpb/LLFxScuXxQZxX+lkvhRqkh6lwQqZiBL2li00mrcBUgG3F9PYJoUJ9NMvp01Yc5wlQrZ4hKQv9S5ZpITWBbpbH7nptjG0vs1lfv2TUQ5vzxd/JIq0CtMv5R/v6rGqI9To/R+D/XkQoax8cKTTYRqEjqcy0oAV8ThQiWwOTcwlnb+oKeV/2VxKurPdBE+dw8TdGt7TKpPY+6kzz8BOaTtuGbQYWZr4j0= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Sep 2017 00:12:53.7595 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR07MB3175 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Rick Farrington Signed-off-by: Rick Farrington Signed-off-by: Felix Manlunas --- drivers/net/ethernet/cavium/liquidio/lio_main.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/cavium/liquidio/lio_main.c b/drivers/net/ethernet/cavium/liquidio/lio_main.c index a3c9867..963803b 100644 --- a/drivers/net/ethernet/cavium/liquidio/lio_main.c +++ b/drivers/net/ethernet/cavium/liquidio/lio_main.c @@ -1934,10 +1934,12 @@ static int load_firmware(struct octeon_device *oct) char fw_name[LIO_MAX_FW_FILENAME_LEN]; char *tmp_fw_type; - if (fw_type_is_auto()) + if (fw_type_is_auto()) { tmp_fw_type = LIO_FW_NAME_TYPE_NIC; - else + strncpy(fw_type, tmp_fw_type, sizeof(fw_type)); + } else { tmp_fw_type = fw_type; + } sprintf(fw_name, "%s%s%s_%s%s", LIO_FW_DIR, LIO_FW_BASE_NAME, octeon_get_conf(oct)->card_name, tmp_fw_type,