CC: kbuild-...@lists.01.org
CC: linux-ker...@vger.kernel.org
TO: Youri Querry <youri.querr...@nxp.com>
CC: Li Yang <leoyang...@nxp.com>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   9cb1fd0efd195590b828b9b865421ad345a4a145
commit: 3b2abda7d28c69f564c1157b9b9c21ef40092ee9 soc: fsl: dpio: Replace QMAN 
array mode with ring mode enqueue
date:   3 months ago
:::::: branch date: 22 hours ago
:::::: commit date: 3 months ago
compiler: gcc-7 (Ubuntu 7.5.0-6ubuntu2) 7.5.0
reproduce (this is a W=1 build):
        git checkout 3b2abda7d28c69f564c1157b9b9c21ef40092ee9
        # 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: kbuild test robot <l...@intel.com>


cppcheck warnings: (new ones prefixed by >>)

>> drivers/soc/fsl/dpio/qbman-portal.c:702:26: warning: Local variable 'd' 
>> shadows outer argument [shadowArgument]
      struct qbman_eq_desc *d = (struct qbman_eq_desc *)p;
                            ^
   drivers/soc/fsl/dpio/qbman-portal.c:652:39: note: Shadowed declaration
             const struct qbman_eq_desc *d,
                                         ^
   drivers/soc/fsl/dpio/qbman-portal.c:702:26: note: Shadow variable
      struct qbman_eq_desc *d = (struct qbman_eq_desc *)p;
                            ^
   drivers/soc/fsl/dpio/qbman-portal.c:785:26: warning: Local variable 'd' 
shadows outer argument [shadowArgument]
      struct qbman_eq_desc *d = (struct qbman_eq_desc *)p;
                            ^
   drivers/soc/fsl/dpio/qbman-portal.c:736:34: note: Shadowed declaration
        const struct qbman_eq_desc *d,
                                    ^
   drivers/soc/fsl/dpio/qbman-portal.c:785:26: note: Shadow variable
      struct qbman_eq_desc *d = (struct qbman_eq_desc *)p;
                            ^

# 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=3b2abda7d28c69f564c1157b9b9c21ef40092ee9
git remote add linus 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git remote update linus
git checkout 3b2abda7d28c69f564c1157b9b9c21ef40092ee9
vim +/d +702 drivers/soc/fsl/dpio/qbman-portal.c

321eecb06bfba0 drivers/staging/fsl-mc/bus/dpio/qbman-portal.c Roy Pledge   
2017-03-13  638  
9d98809711ae0e drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  639  /**
b46fe745e4f610 drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  640   * qbman_swp_enqueue_multiple_direct() - Issue a multi enqueue 
command
9d98809711ae0e drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  641   * using one enqueue descriptor
9d98809711ae0e drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  642   * @s:  the software portal used for enqueue
9d98809711ae0e drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  643   * @d:  the enqueue descriptor
9d98809711ae0e drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  644   * @fd: table pointer of frame descriptor table to be enqueued
3b2abda7d28c69 drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  645   * @flags: table pointer of QBMAN_ENQUEUE_FLAG_DCA flags, not 
used if NULL
9d98809711ae0e drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  646   * @num_frames: number of fd to be enqueued
9d98809711ae0e drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  647   *
9d98809711ae0e drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  648   * Return the number of fd enqueued, or a negative error 
number.
9d98809711ae0e drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  649   */
3b2abda7d28c69 drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  650  static
b46fe745e4f610 drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  651  int qbman_swp_enqueue_multiple_direct(struct qbman_swp *s,
9d98809711ae0e drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  652                                    const struct qbman_eq_desc 
*d,
9d98809711ae0e drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  653                                    const struct dpaa2_fd *fd,
9d98809711ae0e drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  654                                    uint32_t *flags,
9d98809711ae0e drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  655                                    int num_frames)
9d98809711ae0e drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  656  {
3b2abda7d28c69 drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  657      uint32_t *p = NULL;
3b2abda7d28c69 drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  658      const uint32_t *cl = (uint32_t *)d;
3b2abda7d28c69 drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  659      uint32_t eqcr_ci, eqcr_pi, half_mask, full_mask;
3b2abda7d28c69 drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  660      int i, num_enqueued = 0;
3b2abda7d28c69 drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  661      uint64_t addr_cena;
3b2abda7d28c69 drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  662  
3b2abda7d28c69 drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  663      spin_lock(&s->access_spinlock);
3b2abda7d28c69 drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  664      half_mask = (s->eqcr.pi_ci_mask>>1);
3b2abda7d28c69 drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  665      full_mask = s->eqcr.pi_ci_mask;
3b2abda7d28c69 drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  666  
3b2abda7d28c69 drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  667      if (!s->eqcr.available) {
3b2abda7d28c69 drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  668              eqcr_ci = s->eqcr.ci;
3b2abda7d28c69 drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  669              p = s->addr_cena + QBMAN_CENA_SWP_EQCR_CI;
3b2abda7d28c69 drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  670              s->eqcr.ci = qbman_read_register(s, 
QBMAN_CINH_SWP_EQCR_CI);
3b2abda7d28c69 drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  671  
3b2abda7d28c69 drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  672              s->eqcr.available = 
qm_cyc_diff(s->eqcr.pi_ring_size,
3b2abda7d28c69 drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  673                                      eqcr_ci, s->eqcr.ci);
3b2abda7d28c69 drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  674              if (!s->eqcr.available) {
3b2abda7d28c69 drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  675                      spin_unlock(&s->access_spinlock);
3b2abda7d28c69 drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  676                      return 0;
3b2abda7d28c69 drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  677              }
3b2abda7d28c69 drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  678      }
3b2abda7d28c69 drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  679  
3b2abda7d28c69 drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  680      eqcr_pi = s->eqcr.pi;
3b2abda7d28c69 drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  681      num_enqueued = (s->eqcr.available < num_frames) ?
3b2abda7d28c69 drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  682                      s->eqcr.available : num_frames;
3b2abda7d28c69 drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  683      s->eqcr.available -= num_enqueued;
3b2abda7d28c69 drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  684      /* Fill in the EQCR ring */
3b2abda7d28c69 drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  685      for (i = 0; i < num_enqueued; i++) {
3b2abda7d28c69 drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  686              p = (s->addr_cena + QBMAN_CENA_SWP_EQCR(eqcr_pi & 
half_mask));
3b2abda7d28c69 drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  687              /* Skip copying the verb */
3b2abda7d28c69 drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  688              memcpy(&p[1], &cl[1], EQ_DESC_SIZE_WITHOUT_FD - 1);
3b2abda7d28c69 drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  689              memcpy(&p[EQ_DESC_SIZE_FD_START/sizeof(uint32_t)],
3b2abda7d28c69 drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  690                     &fd[i], sizeof(*fd));
3b2abda7d28c69 drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  691              eqcr_pi++;
3b2abda7d28c69 drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  692      }
3b2abda7d28c69 drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  693  
3b2abda7d28c69 drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  694      dma_wmb();
9d98809711ae0e drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  695  
3b2abda7d28c69 drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  696      /* Set the verb byte, have to substitute in the valid-bit 
*/
3b2abda7d28c69 drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  697      eqcr_pi = s->eqcr.pi;
3b2abda7d28c69 drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  698      for (i = 0; i < num_enqueued; i++) {
3b2abda7d28c69 drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  699              p = (s->addr_cena + QBMAN_CENA_SWP_EQCR(eqcr_pi & 
half_mask));
3b2abda7d28c69 drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  700              p[0] = cl[0] | s->eqcr.pi_vb;
3b2abda7d28c69 drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  701              if (flags && (flags[i] & QBMAN_ENQUEUE_FLAG_DCA)) {
3b2abda7d28c69 drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12 @702                      struct qbman_eq_desc *d = (struct 
qbman_eq_desc *)p;
3b2abda7d28c69 drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  703  
3b2abda7d28c69 drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  704                      d->dca = (1 << 
QB_ENQUEUE_CMD_DCA_EN_SHIFT) |
3b2abda7d28c69 drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  705                              ((flags[i]) & 
QBMAN_EQCR_DCA_IDXMASK);
3b2abda7d28c69 drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  706              }
3b2abda7d28c69 drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  707              eqcr_pi++;
3b2abda7d28c69 drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  708              if (!(eqcr_pi & half_mask))
3b2abda7d28c69 drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  709                      s->eqcr.pi_vb ^= QB_VALID_BIT;
9d98809711ae0e drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  710      }
9d98809711ae0e drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  711  
3b2abda7d28c69 drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  712      /* Flush all the cacheline without load/store in between */
3b2abda7d28c69 drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  713      eqcr_pi = s->eqcr.pi;
3b2abda7d28c69 drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  714      addr_cena = (size_t)s->addr_cena;
3b2abda7d28c69 drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  715      for (i = 0; i < num_enqueued; i++)
3b2abda7d28c69 drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  716              eqcr_pi++;
3b2abda7d28c69 drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  717      s->eqcr.pi = eqcr_pi & full_mask;
3b2abda7d28c69 drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  718      spin_unlock(&s->access_spinlock);
3b2abda7d28c69 drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  719  
3b2abda7d28c69 drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  720      return num_enqueued;
9d98809711ae0e drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  721  }
9d98809711ae0e drivers/soc/fsl/dpio/qbman-portal.c            Youri Querry 
2019-12-12  722  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-...@lists.01.org
_______________________________________________
kbuild mailing list -- kbuild@lists.01.org
To unsubscribe send an email to kbuild-le...@lists.01.org

Reply via email to