lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [day] [month] [year] [list]
Date:   Sun, 9 Aug 2020 03:02:55 +0800
From:   kernel test robot <lkp@...el.com>
To:     Youri Querry <youri.querry_1@....com>
Cc:     kbuild-all@...ts.01.org, linux-kernel@...r.kernel.org,
        Li Yang <leoyang.li@....com>
Subject: drivers/soc/fsl/dpio/qbman-portal.c:661:11: warning: variable
 'addr_cena' set but not used

Hi Youri,

FYI, the error/warning still remains.

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   11030fe96b57ad843518b0e9430f3cd4b3610ce2
commit: 3b2abda7d28c69f564c1157b9b9c21ef40092ee9 soc: fsl: dpio: Replace QMAN array mode with ring mode enqueue
date:   6 months ago
config: i386-randconfig-r036-20200809 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
reproduce (this is a W=1 build):
        git checkout 3b2abda7d28c69f564c1157b9b9c21ef40092ee9
        # save the attached .config to linux build tree
        make W=1 ARCH=i386 

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

All warnings (new ones prefixed by >>):

   drivers/soc/fsl/dpio/qbman-portal.c: In function 'qbman_swp_enqueue_multiple_direct':
>> drivers/soc/fsl/dpio/qbman-portal.c:661:11: warning: variable 'addr_cena' set but not used [-Wunused-but-set-variable]
     661 |  uint64_t addr_cena;
         |           ^~~~~~~~~
   drivers/soc/fsl/dpio/qbman-portal.c: In function 'qbman_swp_enqueue_multiple_desc_direct':
   drivers/soc/fsl/dpio/qbman-portal.c:869:14: warning: cast from pointer to integer of different size [-Wpointer-to-int-cast]
     869 |  addr_cena = (uint64_t)s->addr_cena;
         |              ^
   drivers/soc/fsl/dpio/qbman-portal.c:825:11: warning: variable 'addr_cena' set but not used [-Wunused-but-set-variable]
     825 |  uint64_t addr_cena;
         |           ^~~~~~~~~

vim +/addr_cena +661 drivers/soc/fsl/dpio/qbman-portal.c

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

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

Download attachment ".config.gz" of type "application/gzip" (46319 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ