From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.5 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,MENTIONS_GIT_HOSTING,SPF_PASS,URIBL_BLOCKED, USER_AGENT_MUTT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 811E5C169C4 for ; Fri, 8 Feb 2019 11:00:19 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 14BDF21927 for ; Fri, 8 Feb 2019 11:00:19 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727766AbfBHLAR (ORCPT ); Fri, 8 Feb 2019 06:00:17 -0500 Received: from mga11.intel.com ([192.55.52.93]:11731 "EHLO mga11.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726205AbfBHLAR (ORCPT ); Fri, 8 Feb 2019 06:00:17 -0500 X-Amp-Result: UNKNOWN X-Amp-Original-Verdict: FILE UNKNOWN X-Amp-File-Uploaded: False Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga102.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 08 Feb 2019 03:00:15 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.58,347,1544515200"; d="gz'50?scan'50,208,50";a="318680310" Received: from lkp-server01.sh.intel.com (HELO lkp-server01) ([10.239.97.150]) by fmsmga005.fm.intel.com with ESMTP; 08 Feb 2019 03:00:10 -0800 Received: from kbuild by lkp-server01 with local (Exim 4.89) (envelope-from ) id 1gs3tB-0002K4-MT; Fri, 08 Feb 2019 19:00:09 +0800 Date: Fri, 8 Feb 2019 19:00:02 +0800 From: kbuild test robot To: Vasundhara Volam Cc: kbuild-all@01.org, davem@davemloft.net, michael.chan@broadcom.com, jiri@mellanox.com, netdev@vger.kernel.org Subject: Re: [PATCH net-next 1/2] Revert "devlink: Add a generic wake_on_lan port parameter" Message-ID: <201902081826.0KmqBJJs%fengguang.wu@intel.com> References: <1549617190-387130-2-git-send-email-vasundhara-v.volam@broadcom.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="TB36FDmn/VVEgNH/" Content-Disposition: inline In-Reply-To: <1549617190-387130-2-git-send-email-vasundhara-v.volam@broadcom.com> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org --TB36FDmn/VVEgNH/ Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Hi Vasundhara, Thank you for the patch! Yet something to improve: [auto build test ERROR on net-next/master] url: https://github.com/0day-ci/linux/commits/Vasundhara-Volam/Revert-wake_on_lan-devlink-parameter/20190208-181949 config: i386-randconfig-x000-201905 (attached as .config) compiler: gcc-8 (Debian 8.2.0-14) 8.2.0 reproduce: # save the attached .config to linux build tree make ARCH=i386 Note: the linux-review/Vasundhara-Volam/Revert-wake_on_lan-devlink-parameter/20190208-181949 HEAD caa636fa491621c75cb625cb981adfe514368a45 builds fine. It only hurts bisectibility. All error/warnings (new ones prefixed by >>): >> drivers/net//ethernet/broadcom/bnxt/bnxt_devlink.c:41:3: error: 'DEVLINK_PARAM_GENERIC_ID_WOL' undeclared here (not in a function); did you mean 'DEVLINK_PARAM_GENERIC_ID_MAX'? {DEVLINK_PARAM_GENERIC_ID_WOL, NVM_OFF_WOL, BNXT_NVM_PORT_CFG, 1}, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ DEVLINK_PARAM_GENERIC_ID_MAX drivers/net//ethernet/broadcom/bnxt/bnxt_devlink.c: In function 'bnxt_hwrm_nvm_req': >> drivers/net//ethernet/broadcom/bnxt/bnxt_devlink.c:76:20: warning: comparison between pointer and integer nvm_param.id != DEVLINK_PARAM_GENERIC_ID_WOL) ^~ drivers/net//ethernet/broadcom/bnxt/bnxt_devlink.c: In function 'bnxt_dl_wol_validate': >> drivers/net//ethernet/broadcom/bnxt/bnxt_devlink.c:174:28: error: 'DEVLINK_PARAM_WAKE_MAGIC' undeclared (first use in this function); did you mean 'DEVLINK_PARAM_CMODE_MAX'? if (val.vu8 && val.vu8 != DEVLINK_PARAM_WAKE_MAGIC) { ^~~~~~~~~~~~~~~~~~~~~~~~ DEVLINK_PARAM_CMODE_MAX drivers/net//ethernet/broadcom/bnxt/bnxt_devlink.c:174:28: note: each undeclared identifier is reported only once for each function it appears in drivers/net//ethernet/broadcom/bnxt/bnxt_devlink.c:174:25: warning: comparison between pointer and integer if (val.vu8 && val.vu8 != DEVLINK_PARAM_WAKE_MAGIC) { ^~ In file included from drivers/net//ethernet/broadcom/bnxt/bnxt.h:23, from drivers/net//ethernet/broadcom/bnxt/bnxt_devlink.c:13: drivers/net//ethernet/broadcom/bnxt/bnxt_devlink.c: At top level: >> include/net/devlink.h:404:8: warning: initialization of 'unsigned int' from 'const struct bnxt_dl_nvm_param *' makes integer from pointer without a cast [-Wint-conversion] .id = DEVLINK_PARAM_GENERIC_ID_##_id, \ ^~~~~~~~~~~~~~~~~~~~~~~~~ drivers/net//ethernet/broadcom/bnxt/bnxt_devlink.c:206:2: note: in expansion of macro 'DEVLINK_PARAM_GENERIC' DEVLINK_PARAM_GENERIC(WOL, BIT(DEVLINK_PARAM_CMODE_PERMANENT), ^~~~~~~~~~~~~~~~~~~~~ include/net/devlink.h:404:8: note: (near initialization for 'bnxt_dl_port_params[0].id') .id = DEVLINK_PARAM_GENERIC_ID_##_id, \ ^~~~~~~~~~~~~~~~~~~~~~~~~ drivers/net//ethernet/broadcom/bnxt/bnxt_devlink.c:206:2: note: in expansion of macro 'DEVLINK_PARAM_GENERIC' DEVLINK_PARAM_GENERIC(WOL, BIT(DEVLINK_PARAM_CMODE_PERMANENT), ^~~~~~~~~~~~~~~~~~~~~ >> include/net/devlink.h:404:8: error: initializer element is not constant .id = DEVLINK_PARAM_GENERIC_ID_##_id, \ ^~~~~~~~~~~~~~~~~~~~~~~~~ drivers/net//ethernet/broadcom/bnxt/bnxt_devlink.c:206:2: note: in expansion of macro 'DEVLINK_PARAM_GENERIC' DEVLINK_PARAM_GENERIC(WOL, BIT(DEVLINK_PARAM_CMODE_PERMANENT), ^~~~~~~~~~~~~~~~~~~~~ include/net/devlink.h:404:8: note: (near initialization for 'bnxt_dl_port_params[0].id') .id = DEVLINK_PARAM_GENERIC_ID_##_id, \ ^~~~~~~~~~~~~~~~~~~~~~~~~ drivers/net//ethernet/broadcom/bnxt/bnxt_devlink.c:206:2: note: in expansion of macro 'DEVLINK_PARAM_GENERIC' DEVLINK_PARAM_GENERIC(WOL, BIT(DEVLINK_PARAM_CMODE_PERMANENT), ^~~~~~~~~~~~~~~~~~~~~ >> include/net/devlink.h:405:10: error: 'DEVLINK_PARAM_GENERIC_WOL_NAME' undeclared here (not in a function); did you mean 'DEVLINK_PARAM_GENERIC_ID_MAX'? .name = DEVLINK_PARAM_GENERIC_##_id##_NAME, \ ^~~~~~~~~~~~~~~~~~~~~~ drivers/net//ethernet/broadcom/bnxt/bnxt_devlink.c:206:2: note: in expansion of macro 'DEVLINK_PARAM_GENERIC' DEVLINK_PARAM_GENERIC(WOL, BIT(DEVLINK_PARAM_CMODE_PERMANENT), ^~~~~~~~~~~~~~~~~~~~~ >> include/net/devlink.h:405:10: error: initialization of 'const char *' from incompatible pointer type 'const struct bnxt_dl_nvm_param *' [-Werror=incompatible-pointer-types] .name = DEVLINK_PARAM_GENERIC_##_id##_NAME, \ ^~~~~~~~~~~~~~~~~~~~~~ drivers/net//ethernet/broadcom/bnxt/bnxt_devlink.c:206:2: note: in expansion of macro 'DEVLINK_PARAM_GENERIC' DEVLINK_PARAM_GENERIC(WOL, BIT(DEVLINK_PARAM_CMODE_PERMANENT), ^~~~~~~~~~~~~~~~~~~~~ include/net/devlink.h:405:10: note: (near initialization for 'bnxt_dl_port_params[0].name') .name = DEVLINK_PARAM_GENERIC_##_id##_NAME, \ ^~~~~~~~~~~~~~~~~~~~~~ drivers/net//ethernet/broadcom/bnxt/bnxt_devlink.c:206:2: note: in expansion of macro 'DEVLINK_PARAM_GENERIC' DEVLINK_PARAM_GENERIC(WOL, BIT(DEVLINK_PARAM_CMODE_PERMANENT), ^~~~~~~~~~~~~~~~~~~~~ include/net/devlink.h:405:10: error: initializer element is not constant .name = DEVLINK_PARAM_GENERIC_##_id##_NAME, \ ^~~~~~~~~~~~~~~~~~~~~~ drivers/net//ethernet/broadcom/bnxt/bnxt_devlink.c:206:2: note: in expansion of macro 'DEVLINK_PARAM_GENERIC' DEVLINK_PARAM_GENERIC(WOL, BIT(DEVLINK_PARAM_CMODE_PERMANENT), ^~~~~~~~~~~~~~~~~~~~~ include/net/devlink.h:405:10: note: (near initialization for 'bnxt_dl_port_params[0].name') .name = DEVLINK_PARAM_GENERIC_##_id##_NAME, \ ^~~~~~~~~~~~~~~~~~~~~~ drivers/net//ethernet/broadcom/bnxt/bnxt_devlink.c:206:2: note: in expansion of macro 'DEVLINK_PARAM_GENERIC' DEVLINK_PARAM_GENERIC(WOL, BIT(DEVLINK_PARAM_CMODE_PERMANENT), ^~~~~~~~~~~~~~~~~~~~~ >> include/net/devlink.h:406:10: error: 'DEVLINK_PARAM_GENERIC_WOL_TYPE' undeclared here (not in a function); did you mean 'DEVLINK_PARAM_GENERIC_ID_MAX'? .type = DEVLINK_PARAM_GENERIC_##_id##_TYPE, \ ^~~~~~~~~~~~~~~~~~~~~~ drivers/net//ethernet/broadcom/bnxt/bnxt_devlink.c:206:2: note: in expansion of macro 'DEVLINK_PARAM_GENERIC' DEVLINK_PARAM_GENERIC(WOL, BIT(DEVLINK_PARAM_CMODE_PERMANENT), ^~~~~~~~~~~~~~~~~~~~~ >> include/net/devlink.h:406:10: error: incompatible types when initializing type 'enum devlink_param_type' using type 'const struct bnxt_dl_nvm_param *' .type = DEVLINK_PARAM_GENERIC_##_id##_TYPE, \ ^~~~~~~~~~~~~~~~~~~~~~ drivers/net//ethernet/broadcom/bnxt/bnxt_devlink.c:206:2: note: in expansion of macro 'DEVLINK_PARAM_GENERIC' DEVLINK_PARAM_GENERIC(WOL, BIT(DEVLINK_PARAM_CMODE_PERMANENT), ^~~~~~~~~~~~~~~~~~~~~ cc1: some warnings being treated as errors -- drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c:41:3: error: 'DEVLINK_PARAM_GENERIC_ID_WOL' undeclared here (not in a function); did you mean 'DEVLINK_PARAM_GENERIC_ID_MAX'? {DEVLINK_PARAM_GENERIC_ID_WOL, NVM_OFF_WOL, BNXT_NVM_PORT_CFG, 1}, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ DEVLINK_PARAM_GENERIC_ID_MAX drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c: In function 'bnxt_hwrm_nvm_req': drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c:76:20: warning: comparison between pointer and integer nvm_param.id != DEVLINK_PARAM_GENERIC_ID_WOL) ^~ drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c: In function 'bnxt_dl_wol_validate': drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c:174:28: error: 'DEVLINK_PARAM_WAKE_MAGIC' undeclared (first use in this function); did you mean 'DEVLINK_PARAM_CMODE_MAX'? if (val.vu8 && val.vu8 != DEVLINK_PARAM_WAKE_MAGIC) { ^~~~~~~~~~~~~~~~~~~~~~~~ DEVLINK_PARAM_CMODE_MAX drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c:174:28: note: each undeclared identifier is reported only once for each function it appears in drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c:174:25: warning: comparison between pointer and integer if (val.vu8 && val.vu8 != DEVLINK_PARAM_WAKE_MAGIC) { ^~ In file included from drivers/net/ethernet/broadcom/bnxt/bnxt.h:23, from drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c:13: drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c: At top level: >> include/net/devlink.h:404:8: warning: initialization of 'unsigned int' from 'const struct bnxt_dl_nvm_param *' makes integer from pointer without a cast [-Wint-conversion] .id = DEVLINK_PARAM_GENERIC_ID_##_id, \ ^~~~~~~~~~~~~~~~~~~~~~~~~ drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c:206:2: note: in expansion of macro 'DEVLINK_PARAM_GENERIC' DEVLINK_PARAM_GENERIC(WOL, BIT(DEVLINK_PARAM_CMODE_PERMANENT), ^~~~~~~~~~~~~~~~~~~~~ include/net/devlink.h:404:8: note: (near initialization for 'bnxt_dl_port_params[0].id') .id = DEVLINK_PARAM_GENERIC_ID_##_id, \ ^~~~~~~~~~~~~~~~~~~~~~~~~ drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c:206:2: note: in expansion of macro 'DEVLINK_PARAM_GENERIC' DEVLINK_PARAM_GENERIC(WOL, BIT(DEVLINK_PARAM_CMODE_PERMANENT), ^~~~~~~~~~~~~~~~~~~~~ >> include/net/devlink.h:404:8: error: initializer element is not constant .id = DEVLINK_PARAM_GENERIC_ID_##_id, \ ^~~~~~~~~~~~~~~~~~~~~~~~~ drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c:206:2: note: in expansion of macro 'DEVLINK_PARAM_GENERIC' DEVLINK_PARAM_GENERIC(WOL, BIT(DEVLINK_PARAM_CMODE_PERMANENT), ^~~~~~~~~~~~~~~~~~~~~ include/net/devlink.h:404:8: note: (near initialization for 'bnxt_dl_port_params[0].id') .id = DEVLINK_PARAM_GENERIC_ID_##_id, \ ^~~~~~~~~~~~~~~~~~~~~~~~~ drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c:206:2: note: in expansion of macro 'DEVLINK_PARAM_GENERIC' DEVLINK_PARAM_GENERIC(WOL, BIT(DEVLINK_PARAM_CMODE_PERMANENT), ^~~~~~~~~~~~~~~~~~~~~ >> include/net/devlink.h:405:10: error: 'DEVLINK_PARAM_GENERIC_WOL_NAME' undeclared here (not in a function); did you mean 'DEVLINK_PARAM_GENERIC_ID_MAX'? .name = DEVLINK_PARAM_GENERIC_##_id##_NAME, \ ^~~~~~~~~~~~~~~~~~~~~~ drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c:206:2: note: in expansion of macro 'DEVLINK_PARAM_GENERIC' DEVLINK_PARAM_GENERIC(WOL, BIT(DEVLINK_PARAM_CMODE_PERMANENT), ^~~~~~~~~~~~~~~~~~~~~ >> include/net/devlink.h:405:10: error: initialization of 'const char *' from incompatible pointer type 'const struct bnxt_dl_nvm_param *' [-Werror=incompatible-pointer-types] .name = DEVLINK_PARAM_GENERIC_##_id##_NAME, \ ^~~~~~~~~~~~~~~~~~~~~~ drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c:206:2: note: in expansion of macro 'DEVLINK_PARAM_GENERIC' DEVLINK_PARAM_GENERIC(WOL, BIT(DEVLINK_PARAM_CMODE_PERMANENT), ^~~~~~~~~~~~~~~~~~~~~ include/net/devlink.h:405:10: note: (near initialization for 'bnxt_dl_port_params[0].name') .name = DEVLINK_PARAM_GENERIC_##_id##_NAME, \ ^~~~~~~~~~~~~~~~~~~~~~ drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c:206:2: note: in expansion of macro 'DEVLINK_PARAM_GENERIC' DEVLINK_PARAM_GENERIC(WOL, BIT(DEVLINK_PARAM_CMODE_PERMANENT), ^~~~~~~~~~~~~~~~~~~~~ include/net/devlink.h:405:10: error: initializer element is not constant .name = DEVLINK_PARAM_GENERIC_##_id##_NAME, \ ^~~~~~~~~~~~~~~~~~~~~~ drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c:206:2: note: in expansion of macro 'DEVLINK_PARAM_GENERIC' DEVLINK_PARAM_GENERIC(WOL, BIT(DEVLINK_PARAM_CMODE_PERMANENT), ^~~~~~~~~~~~~~~~~~~~~ include/net/devlink.h:405:10: note: (near initialization for 'bnxt_dl_port_params[0].name') .name = DEVLINK_PARAM_GENERIC_##_id##_NAME, \ ^~~~~~~~~~~~~~~~~~~~~~ drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c:206:2: note: in expansion of macro 'DEVLINK_PARAM_GENERIC' DEVLINK_PARAM_GENERIC(WOL, BIT(DEVLINK_PARAM_CMODE_PERMANENT), ^~~~~~~~~~~~~~~~~~~~~ >> include/net/devlink.h:406:10: error: 'DEVLINK_PARAM_GENERIC_WOL_TYPE' undeclared here (not in a function); did you mean 'DEVLINK_PARAM_GENERIC_ID_MAX'? .type = DEVLINK_PARAM_GENERIC_##_id##_TYPE, \ ^~~~~~~~~~~~~~~~~~~~~~ drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c:206:2: note: in expansion of macro 'DEVLINK_PARAM_GENERIC' DEVLINK_PARAM_GENERIC(WOL, BIT(DEVLINK_PARAM_CMODE_PERMANENT), ^~~~~~~~~~~~~~~~~~~~~ >> include/net/devlink.h:406:10: error: incompatible types when initializing type 'enum devlink_param_type' using type 'const struct bnxt_dl_nvm_param *' .type = DEVLINK_PARAM_GENERIC_##_id##_TYPE, \ ^~~~~~~~~~~~~~~~~~~~~~ drivers/net/ethernet/broadcom/bnxt/bnxt_devlink.c:206:2: note: in expansion of macro 'DEVLINK_PARAM_GENERIC' DEVLINK_PARAM_GENERIC(WOL, BIT(DEVLINK_PARAM_CMODE_PERMANENT), ^~~~~~~~~~~~~~~~~~~~~ cc1: some warnings being treated as errors vim +41 drivers/net//ethernet/broadcom/bnxt/bnxt_devlink.c 2dc0865e Vasundhara Volam 2018-10-04 28 6354b95e Vasundhara Volam 2018-07-04 29 static const struct bnxt_dl_nvm_param nvm_params[] = { 6354b95e Vasundhara Volam 2018-07-04 30 {DEVLINK_PARAM_GENERIC_ID_ENABLE_SRIOV, NVM_OFF_ENABLE_SRIOV, 6354b95e Vasundhara Volam 2018-07-04 31 BNXT_NVM_SHARED_CFG, 1}, 7d859234 Vasundhara Volam 2018-10-04 32 {DEVLINK_PARAM_GENERIC_ID_IGNORE_ARI, NVM_OFF_IGNORE_ARI, 7d859234 Vasundhara Volam 2018-10-04 33 BNXT_NVM_SHARED_CFG, 1}, f399e849 Vasundhara Volam 2018-10-04 34 {DEVLINK_PARAM_GENERIC_ID_MSIX_VEC_PER_PF_MAX, f399e849 Vasundhara Volam 2018-10-04 35 NVM_OFF_MSIX_VEC_PER_PF_MAX, BNXT_NVM_SHARED_CFG, 10}, f399e849 Vasundhara Volam 2018-10-04 36 {DEVLINK_PARAM_GENERIC_ID_MSIX_VEC_PER_PF_MIN, f399e849 Vasundhara Volam 2018-10-04 37 NVM_OFF_MSIX_VEC_PER_PF_MIN, BNXT_NVM_SHARED_CFG, 7}, 2dc0865e Vasundhara Volam 2018-10-04 38 {BNXT_DEVLINK_PARAM_ID_GRE_VER_CHECK, NVM_OFF_DIS_GRE_VER_CHECK, 2dc0865e Vasundhara Volam 2018-10-04 39 BNXT_NVM_SHARED_CFG, 1}, 782a624d Vasundhara Volam 2019-01-28 40 782a624d Vasundhara Volam 2019-01-28 @41 {DEVLINK_PARAM_GENERIC_ID_WOL, NVM_OFF_WOL, BNXT_NVM_PORT_CFG, 1}, 6354b95e Vasundhara Volam 2018-07-04 42 }; 6354b95e Vasundhara Volam 2018-07-04 43 6354b95e Vasundhara Volam 2018-07-04 44 static int bnxt_hwrm_nvm_req(struct bnxt *bp, u32 param_id, void *msg, 6354b95e Vasundhara Volam 2018-07-04 45 int msg_len, union devlink_param_value *val) 6354b95e Vasundhara Volam 2018-07-04 46 { 6fc92c33 Michael Chan 2018-08-05 47 struct hwrm_nvm_get_variable_input *req = msg; 6354b95e Vasundhara Volam 2018-07-04 48 void *data_addr = NULL, *buf = NULL; 6354b95e Vasundhara Volam 2018-07-04 49 struct bnxt_dl_nvm_param nvm_param; 6354b95e Vasundhara Volam 2018-07-04 50 int bytesize, idx = 0, rc, i; 6354b95e Vasundhara Volam 2018-07-04 51 dma_addr_t data_dma_addr; 6354b95e Vasundhara Volam 2018-07-04 52 6354b95e Vasundhara Volam 2018-07-04 53 /* Get/Set NVM CFG parameter is supported only on PFs */ 6354b95e Vasundhara Volam 2018-07-04 54 if (BNXT_VF(bp)) 6354b95e Vasundhara Volam 2018-07-04 55 return -EPERM; 6354b95e Vasundhara Volam 2018-07-04 56 6354b95e Vasundhara Volam 2018-07-04 57 for (i = 0; i < ARRAY_SIZE(nvm_params); i++) { 6354b95e Vasundhara Volam 2018-07-04 58 if (nvm_params[i].id == param_id) { 6354b95e Vasundhara Volam 2018-07-04 59 nvm_param = nvm_params[i]; 6354b95e Vasundhara Volam 2018-07-04 60 break; 6354b95e Vasundhara Volam 2018-07-04 61 } 6354b95e Vasundhara Volam 2018-07-04 62 } 6354b95e Vasundhara Volam 2018-07-04 63 65fac4fe zhong jiang 2018-09-18 64 if (i == ARRAY_SIZE(nvm_params)) 65fac4fe zhong jiang 2018-09-18 65 return -EOPNOTSUPP; 65fac4fe zhong jiang 2018-09-18 66 6354b95e Vasundhara Volam 2018-07-04 67 if (nvm_param.dir_type == BNXT_NVM_PORT_CFG) 6354b95e Vasundhara Volam 2018-07-04 68 idx = bp->pf.port_id; 6354b95e Vasundhara Volam 2018-07-04 69 else if (nvm_param.dir_type == BNXT_NVM_FUNC_CFG) 6354b95e Vasundhara Volam 2018-07-04 70 idx = bp->pf.fw_fid - BNXT_FIRST_PF_FID; 6354b95e Vasundhara Volam 2018-07-04 71 6354b95e Vasundhara Volam 2018-07-04 72 bytesize = roundup(nvm_param.num_bits, BITS_PER_BYTE) / BITS_PER_BYTE; f399e849 Vasundhara Volam 2018-10-04 73 switch (bytesize) { f399e849 Vasundhara Volam 2018-10-04 74 case 1: 782a624d Vasundhara Volam 2019-01-28 75 if (nvm_param.num_bits == 1 && 782a624d Vasundhara Volam 2019-01-28 @76 nvm_param.id != DEVLINK_PARAM_GENERIC_ID_WOL) 6354b95e Vasundhara Volam 2018-07-04 77 buf = &val->vbool; f399e849 Vasundhara Volam 2018-10-04 78 else f399e849 Vasundhara Volam 2018-10-04 79 buf = &val->vu8; f399e849 Vasundhara Volam 2018-10-04 80 break; f399e849 Vasundhara Volam 2018-10-04 81 case 2: f399e849 Vasundhara Volam 2018-10-04 82 buf = &val->vu16; f399e849 Vasundhara Volam 2018-10-04 83 break; f399e849 Vasundhara Volam 2018-10-04 84 case 4: f399e849 Vasundhara Volam 2018-10-04 85 buf = &val->vu32; f399e849 Vasundhara Volam 2018-10-04 86 break; f399e849 Vasundhara Volam 2018-10-04 87 default: f399e849 Vasundhara Volam 2018-10-04 88 return -EFAULT; f399e849 Vasundhara Volam 2018-10-04 89 } 6354b95e Vasundhara Volam 2018-07-04 90 750afb08 Luis Chamberlain 2019-01-04 91 data_addr = dma_alloc_coherent(&bp->pdev->dev, bytesize, 6354b95e Vasundhara Volam 2018-07-04 92 &data_dma_addr, GFP_KERNEL); 6354b95e Vasundhara Volam 2018-07-04 93 if (!data_addr) 6354b95e Vasundhara Volam 2018-07-04 94 return -ENOMEM; 6354b95e Vasundhara Volam 2018-07-04 95 6fc92c33 Michael Chan 2018-08-05 96 req->dest_data_addr = cpu_to_le64(data_dma_addr); 6354b95e Vasundhara Volam 2018-07-04 97 req->data_len = cpu_to_le16(nvm_param.num_bits); 6354b95e Vasundhara Volam 2018-07-04 98 req->option_num = cpu_to_le16(nvm_param.offset); 6354b95e Vasundhara Volam 2018-07-04 99 req->index_0 = cpu_to_le16(idx); 6354b95e Vasundhara Volam 2018-07-04 100 if (idx) 6354b95e Vasundhara Volam 2018-07-04 101 req->dimensions = cpu_to_le16(1); 6354b95e Vasundhara Volam 2018-07-04 102 6fc92c33 Michael Chan 2018-08-05 103 if (req->req_type == cpu_to_le16(HWRM_NVM_SET_VARIABLE)) 6354b95e Vasundhara Volam 2018-07-04 104 memcpy(data_addr, buf, bytesize); 6354b95e Vasundhara Volam 2018-07-04 105 6354b95e Vasundhara Volam 2018-07-04 106 rc = hwrm_send_message(bp, msg, msg_len, HWRM_CMD_TIMEOUT); 6fc92c33 Michael Chan 2018-08-05 107 if (!rc && req->req_type == cpu_to_le16(HWRM_NVM_GET_VARIABLE)) 6354b95e Vasundhara Volam 2018-07-04 108 memcpy(buf, data_addr, bytesize); 6354b95e Vasundhara Volam 2018-07-04 109 6354b95e Vasundhara Volam 2018-07-04 110 dma_free_coherent(&bp->pdev->dev, bytesize, data_addr, data_dma_addr); 3a1d52a5 Vasundhara Volam 2018-10-04 111 if (rc == HWRM_ERR_CODE_RESOURCE_ACCESS_DENIED) { 3a1d52a5 Vasundhara Volam 2018-10-04 112 netdev_err(bp->dev, "PF does not have admin privileges to modify NVM config\n"); 3a1d52a5 Vasundhara Volam 2018-10-04 113 return -EACCES; 3a1d52a5 Vasundhara Volam 2018-10-04 114 } else if (rc) { 6354b95e Vasundhara Volam 2018-07-04 115 return -EIO; 3a1d52a5 Vasundhara Volam 2018-10-04 116 } 6354b95e Vasundhara Volam 2018-07-04 117 return 0; 6354b95e Vasundhara Volam 2018-07-04 118 } 6354b95e Vasundhara Volam 2018-07-04 119 6354b95e Vasundhara Volam 2018-07-04 120 static int bnxt_dl_nvm_param_get(struct devlink *dl, u32 id, 6354b95e Vasundhara Volam 2018-07-04 121 struct devlink_param_gset_ctx *ctx) 6354b95e Vasundhara Volam 2018-07-04 122 { 6354b95e Vasundhara Volam 2018-07-04 123 struct hwrm_nvm_get_variable_input req = {0}; 6354b95e Vasundhara Volam 2018-07-04 124 struct bnxt *bp = bnxt_get_bp_from_dl(dl); 2dc0865e Vasundhara Volam 2018-10-04 125 int rc; 6354b95e Vasundhara Volam 2018-07-04 126 6354b95e Vasundhara Volam 2018-07-04 127 bnxt_hwrm_cmd_hdr_init(bp, &req, HWRM_NVM_GET_VARIABLE, -1, -1); 2dc0865e Vasundhara Volam 2018-10-04 128 rc = bnxt_hwrm_nvm_req(bp, id, &req, sizeof(req), &ctx->val); 2dc0865e Vasundhara Volam 2018-10-04 129 if (!rc) 2dc0865e Vasundhara Volam 2018-10-04 130 if (id == BNXT_DEVLINK_PARAM_ID_GRE_VER_CHECK) 2dc0865e Vasundhara Volam 2018-10-04 131 ctx->val.vbool = !ctx->val.vbool; 2dc0865e Vasundhara Volam 2018-10-04 132 2dc0865e Vasundhara Volam 2018-10-04 133 return rc; 6354b95e Vasundhara Volam 2018-07-04 134 } 6354b95e Vasundhara Volam 2018-07-04 135 6354b95e Vasundhara Volam 2018-07-04 136 static int bnxt_dl_nvm_param_set(struct devlink *dl, u32 id, 6354b95e Vasundhara Volam 2018-07-04 137 struct devlink_param_gset_ctx *ctx) 6354b95e Vasundhara Volam 2018-07-04 138 { 6354b95e Vasundhara Volam 2018-07-04 139 struct hwrm_nvm_set_variable_input req = {0}; 6354b95e Vasundhara Volam 2018-07-04 140 struct bnxt *bp = bnxt_get_bp_from_dl(dl); 6354b95e Vasundhara Volam 2018-07-04 141 6354b95e Vasundhara Volam 2018-07-04 142 bnxt_hwrm_cmd_hdr_init(bp, &req, HWRM_NVM_SET_VARIABLE, -1, -1); 2dc0865e Vasundhara Volam 2018-10-04 143 2dc0865e Vasundhara Volam 2018-10-04 144 if (id == BNXT_DEVLINK_PARAM_ID_GRE_VER_CHECK) 2dc0865e Vasundhara Volam 2018-10-04 145 ctx->val.vbool = !ctx->val.vbool; 2dc0865e Vasundhara Volam 2018-10-04 146 6354b95e Vasundhara Volam 2018-07-04 147 return bnxt_hwrm_nvm_req(bp, id, &req, sizeof(req), &ctx->val); 6354b95e Vasundhara Volam 2018-07-04 148 } 6354b95e Vasundhara Volam 2018-07-04 149 f399e849 Vasundhara Volam 2018-10-04 150 static int bnxt_dl_msix_validate(struct devlink *dl, u32 id, f399e849 Vasundhara Volam 2018-10-04 151 union devlink_param_value val, f399e849 Vasundhara Volam 2018-10-04 152 struct netlink_ext_ack *extack) f399e849 Vasundhara Volam 2018-10-04 153 { 5fc7c12f Gustavo A. R. Silva 2018-10-05 154 int max_val = -1; f399e849 Vasundhara Volam 2018-10-04 155 f399e849 Vasundhara Volam 2018-10-04 156 if (id == DEVLINK_PARAM_GENERIC_ID_MSIX_VEC_PER_PF_MAX) f399e849 Vasundhara Volam 2018-10-04 157 max_val = BNXT_MSIX_VEC_MAX; f399e849 Vasundhara Volam 2018-10-04 158 f399e849 Vasundhara Volam 2018-10-04 159 if (id == DEVLINK_PARAM_GENERIC_ID_MSIX_VEC_PER_PF_MIN) f399e849 Vasundhara Volam 2018-10-04 160 max_val = BNXT_MSIX_VEC_MIN_MAX; f399e849 Vasundhara Volam 2018-10-04 161 5fc7c12f Gustavo A. R. Silva 2018-10-05 162 if (val.vu32 > max_val) { f399e849 Vasundhara Volam 2018-10-04 163 NL_SET_ERR_MSG_MOD(extack, "MSIX value is exceeding the range"); f399e849 Vasundhara Volam 2018-10-04 164 return -EINVAL; f399e849 Vasundhara Volam 2018-10-04 165 } f399e849 Vasundhara Volam 2018-10-04 166 f399e849 Vasundhara Volam 2018-10-04 167 return 0; f399e849 Vasundhara Volam 2018-10-04 168 } f399e849 Vasundhara Volam 2018-10-04 169 782a624d Vasundhara Volam 2019-01-28 170 static int bnxt_dl_wol_validate(struct devlink *dl, u32 id, 782a624d Vasundhara Volam 2019-01-28 171 union devlink_param_value val, 782a624d Vasundhara Volam 2019-01-28 172 struct netlink_ext_ack *extack) 782a624d Vasundhara Volam 2019-01-28 173 { 782a624d Vasundhara Volam 2019-01-28 @174 if (val.vu8 && val.vu8 != DEVLINK_PARAM_WAKE_MAGIC) { 782a624d Vasundhara Volam 2019-01-28 175 NL_SET_ERR_MSG_MOD(extack, "WOL type is not supported"); 782a624d Vasundhara Volam 2019-01-28 176 return -EINVAL; 782a624d Vasundhara Volam 2019-01-28 177 } 782a624d Vasundhara Volam 2019-01-28 178 return 0; 782a624d Vasundhara Volam 2019-01-28 179 } 782a624d Vasundhara Volam 2019-01-28 180 :::::: The code at line 41 was first introduced by commit :::::: 782a624d00fa22e7499f5abc29747501ec671313 bnxt_en: Add bnxt_en initial port params table and register it :::::: TO: Vasundhara Volam :::::: CC: David S. Miller --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation --TB36FDmn/VVEgNH/ Content-Type: application/gzip Content-Disposition: attachment; filename=".config.gz" Content-Transfer-Encoding: base64 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 Gl2LDAIA --TB36FDmn/VVEgNH/--