Hi George,

I love your patch! Perhaps something to improve:

[auto build test WARNING on net-next/master]

url:    
https://github.com/0day-ci/linux/commits/George-Cherian/Add-devlink-and-devlink-health-reporters-to/20201102-130844
base:   https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git 
c43fd36f7fec6c227c5e8a8ddd7d3fe97472182f
config: x86_64-allyesconfig (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
reproduce (this is a W=1 build):
        # 
https://github.com/0day-ci/linux/commit/bdffba84e2716a5f218840ac6a80052587e48c59
        git remote add linux-review https://github.com/0day-ci/linux
        git fetch --no-tags linux-review 
George-Cherian/Add-devlink-and-devlink-health-reporters-to/20201102-130844
        git checkout bdffba84e2716a5f218840ac6a80052587e48c59
        # save the attached .config to linux build tree
        make W=1 ARCH=x86_64 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <l...@intel.com>

All warnings (new ones prefixed by >>):

   drivers/net/ethernet/marvell/octeontx2/af/rvu_devlink.c:19:5: warning: no 
previous prototype for 'rvu_report_pair_start' [-Wmissing-prototypes]
      19 | int rvu_report_pair_start(struct devlink_fmsg *fmsg, const char 
*name)
         |     ^~~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/marvell/octeontx2/af/rvu_devlink.c:30:5: warning: no 
previous prototype for 'rvu_report_pair_end' [-Wmissing-prototypes]
      30 | int rvu_report_pair_end(struct devlink_fmsg *fmsg)
         |     ^~~~~~~~~~~~~~~~~~~
>> drivers/net/ethernet/marvell/octeontx2/af/rvu_devlink.c:41:13: warning: no 
>> previous prototype for 'rvu_nix_af_rvu_intr_handler' [-Wmissing-prototypes]
      41 | irqreturn_t rvu_nix_af_rvu_intr_handler(int irq, void *rvu_irq)
         |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/net/ethernet/marvell/octeontx2/af/rvu_devlink.c:65:13: warning: no 
>> previous prototype for 'rvu_nix_af_err_intr_handler' [-Wmissing-prototypes]
      65 | irqreturn_t rvu_nix_af_err_intr_handler(int irq, void *rvu_irq)
         |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/net/ethernet/marvell/octeontx2/af/rvu_devlink.c:107:13: warning: no 
>> previous prototype for 'rvu_nix_af_ras_intr_handler' [-Wmissing-prototypes]
     107 | irqreturn_t rvu_nix_af_ras_intr_handler(int irq, void *rvu_irq)
         |             ^~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/net/ethernet/marvell/octeontx2/af/rvu_devlink.c:208:5: warning: no 
>> previous prototype for 'rvu_nix_register_interrupts' [-Wmissing-prototypes]
     208 | int rvu_nix_register_interrupts(struct rvu *rvu)
         |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/net/ethernet/marvell/octeontx2/af/rvu_devlink.c:376:5: warning: no 
>> previous prototype for 'rvu_nix_health_reporters_create' 
>> [-Wmissing-prototypes]
     376 | int rvu_nix_health_reporters_create(struct rvu_devlink *rvu_dl)
         |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> drivers/net/ethernet/marvell/octeontx2/af/rvu_devlink.c:400:6: warning: no 
>> previous prototype for 'rvu_nix_health_reporters_destroy' 
>> [-Wmissing-prototypes]
     400 | void rvu_nix_health_reporters_destroy(struct rvu_devlink *rvu_dl)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/ethernet/marvell/octeontx2/af/rvu_devlink.c:569:5: warning: no 
previous prototype for 'rvu_npa_register_interrupts' [-Wmissing-prototypes]
     569 | int rvu_npa_register_interrupts(struct rvu *rvu)
         |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~

vim +/rvu_nix_af_rvu_intr_handler +41 
drivers/net/ethernet/marvell/octeontx2/af/rvu_devlink.c

    40  
  > 41  irqreturn_t rvu_nix_af_rvu_intr_handler(int irq, void *rvu_irq)
    42  {
    43          struct rvu_nix_event_cnt *nix_event_count;
    44          struct rvu_devlink *rvu_dl = rvu_irq;
    45          struct rvu *rvu;
    46          int blkaddr;
    47          u64 intr;
    48  
    49          rvu = rvu_dl->rvu;
    50          blkaddr = rvu_get_blkaddr(rvu, BLKTYPE_NIX, 0);
    51          if (blkaddr < 0)
    52                  return IRQ_NONE;
    53  
    54          nix_event_count = rvu_dl->nix_event_cnt;
    55          intr = rvu_read64(rvu, blkaddr, NIX_AF_RVU_INT);
    56  
    57          if (intr & BIT_ULL(0))
    58                  nix_event_count->unmap_slot_count++;
    59  
    60          /* Clear interrupts */
    61          rvu_write64(rvu, blkaddr, NIX_AF_RVU_INT, intr);
    62          return IRQ_HANDLED;
    63  }
    64  
  > 65  irqreturn_t rvu_nix_af_err_intr_handler(int irq, void *rvu_irq)
    66  {
    67          struct rvu_nix_event_cnt *nix_event_count;
    68          struct rvu_devlink *rvu_dl = rvu_irq;
    69          struct rvu *rvu;
    70          int blkaddr;
    71          u64 intr;
    72  
    73          rvu = rvu_dl->rvu;
    74          blkaddr = rvu_get_blkaddr(rvu, BLKTYPE_NIX, 0);
    75          if (blkaddr < 0)
    76                  return IRQ_NONE;
    77  
    78          nix_event_count = rvu_dl->nix_event_cnt;
    79          intr = rvu_read64(rvu, blkaddr, NIX_AF_ERR_INT);
    80  
    81          if (intr & BIT_ULL(14))
    82                  nix_event_count->aq_inst_count++;
    83          if (intr & BIT_ULL(13))
    84                  nix_event_count->aq_res_count++;
    85          if (intr & BIT_ULL(12))
    86                  nix_event_count->aq_db_count++;
    87          if (intr & BIT_ULL(6))
    88                  nix_event_count->rx_on_unmap_pf_count++;
    89          if (intr & BIT_ULL(5))
    90                  nix_event_count->rx_mcast_repl_count++;
    91          if (intr & BIT_ULL(4))
    92                  nix_event_count->rx_mcast_memfault_count++;
    93          if (intr & BIT_ULL(3))
    94                  nix_event_count->rx_mcast_wqe_memfault_count++;
    95          if (intr & BIT_ULL(2))
    96                  nix_event_count->rx_mirror_wqe_memfault_count++;
    97          if (intr & BIT_ULL(1))
    98                  nix_event_count->rx_mirror_pktw_memfault_count++;
    99          if (intr & BIT_ULL(0))
   100                  nix_event_count->rx_mcast_pktw_memfault_count++;
   101  
   102          /* Clear interrupts */
   103          rvu_write64(rvu, blkaddr, NIX_AF_ERR_INT, intr);
   104          return IRQ_HANDLED;
   105  }
   106  
 > 107  irqreturn_t rvu_nix_af_ras_intr_handler(int irq, void *rvu_irq)
   108  {
   109          struct rvu_nix_event_cnt *nix_event_count;
   110          struct rvu_devlink *rvu_dl = rvu_irq;
   111          struct rvu *rvu;
   112          int blkaddr;
   113          u64 intr;
   114  
   115          rvu = rvu_dl->rvu;
   116          blkaddr = rvu_get_blkaddr(rvu, BLKTYPE_NIX, 0);
   117          if (blkaddr < 0)
   118                  return IRQ_NONE;
   119  
   120          nix_event_count = rvu_dl->nix_event_cnt;
   121          intr = rvu_read64(rvu, blkaddr, NIX_AF_RAS);
   122  
   123          if (intr & BIT_ULL(34))
   124                  nix_event_count->poison_aq_inst_count++;
   125          if (intr & BIT_ULL(33))
   126                  nix_event_count->poison_aq_res_count++;
   127          if (intr & BIT_ULL(32))
   128                  nix_event_count->poison_aq_cxt_count++;
   129          if (intr & BIT_ULL(4))
   130                  nix_event_count->rx_mirror_data_poison_count++;
   131          if (intr & BIT_ULL(3))
   132                  nix_event_count->rx_mcast_data_poison_count++;
   133          if (intr & BIT_ULL(2))
   134                  nix_event_count->rx_mirror_wqe_poison_count++;
   135          if (intr & BIT_ULL(1))
   136                  nix_event_count->rx_mcast_wqe_poison_count++;
   137          if (intr & BIT_ULL(0))
   138                  nix_event_count->rx_mce_poison_count++;
   139  
   140          /* Clear interrupts */
   141          rvu_write64(rvu, blkaddr, NIX_AF_RAS, intr);
   142          return IRQ_HANDLED;
   143  }
   144  
   145  static bool rvu_nix_af_request_irq(struct rvu *rvu, int offset,
   146                                     const char *name, irq_handler_t fn)
   147  {
   148          struct rvu_devlink *rvu_dl = rvu->rvu_dl;
   149          int rc;
   150  
   151          WARN_ON(rvu->irq_allocated[offset]);
   152          rvu->irq_allocated[offset] = false;
   153          sprintf(&rvu->irq_name[offset * NAME_SIZE], name);
   154          rc = request_irq(pci_irq_vector(rvu->pdev, offset), fn, 0,
   155                           &rvu->irq_name[offset * NAME_SIZE], rvu_dl);
   156          if (rc)
   157                  dev_warn(rvu->dev, "Failed to register %s irq\n", name);
   158          else
   159                  rvu->irq_allocated[offset] = true;
   160  
   161          return rvu->irq_allocated[offset];
   162  }
   163  
   164  static int rvu_nix_blk_register_interrupts(struct rvu *rvu,
   165                                             int blkaddr)
   166  {
   167          int base;
   168          bool rc;
   169  
   170          /* Get NIX AF MSIX vectors offset. */
   171          base = rvu_read64(rvu, blkaddr, NIX_PRIV_AF_INT_CFG) & 0x3ff;
   172          if (!base) {
   173                  dev_warn(rvu->dev,
   174                           "Failed to get NIX%d NIX_AF_INT vector 
offsets\n",
   175                           blkaddr - BLKADDR_NIX0);
   176                  return 0;
   177          }
   178          /* Register and enable NIX_AF_RVU_INT interrupt */
   179          rc = rvu_nix_af_request_irq(rvu, base +  NIX_AF_INT_VEC_RVU,
   180                                      "NIX_AF_RVU_INT",
   181                                      rvu_nix_af_rvu_intr_handler);
   182          if (!rc)
   183                  goto err;
   184          rvu_write64(rvu, blkaddr, NIX_AF_RVU_INT_ENA_W1S, ~0ULL);
   185  
   186          /* Register and enable NIX_AF_ERR_INT interrupt */
   187          rc = rvu_nix_af_request_irq(rvu, base + NIX_AF_INT_VEC_AF_ERR,
   188                                      "NIX_AF_ERR_INT",
   189                                      rvu_nix_af_err_intr_handler);
   190          if (!rc)
   191                  goto err;
   192          rvu_write64(rvu, blkaddr, NIX_AF_ERR_INT_ENA_W1S, ~0ULL);
   193  
   194          /* Register and enable NIX_AF_RAS interrupt */
   195          rc = rvu_nix_af_request_irq(rvu, base + NIX_AF_INT_VEC_POISON,
   196                                      "NIX_AF_RAS",
   197                                      rvu_nix_af_ras_intr_handler);
   198          if (!rc)
   199                  goto err;
   200          rvu_write64(rvu, blkaddr, NIX_AF_RAS_ENA_W1S, ~0ULL);
   201  
   202          return 0;
   203  err:
   204          rvu_nix_unregister_interrupts(rvu);
   205          return -1;
   206  }
   207  
 > 208  int rvu_nix_register_interrupts(struct rvu *rvu)
   209  {
   210          int blkaddr = 0;
   211  
   212          blkaddr = rvu_get_blkaddr(rvu, blkaddr, 0);
   213          if (blkaddr < 0)
   214                  return blkaddr;
   215  
   216          rvu_nix_blk_register_interrupts(rvu, blkaddr);
   217  
   218          return 0;
   219  }
   220  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-...@lists.01.org

Attachment: .config.gz
Description: application/gzip

Reply via email to