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 <vasundhara-v.vo...@broadcom.com>
:::::: CC: David S. Miller <da...@davemloft.net>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Attachment: .config.gz
Description: application/gzip

Reply via email to