All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Palmer Dabbelt <palmer@dabbelt.com>
Cc: oe-kbuild-all@lists.linux.dev, linux-kernel@vger.kernel.org,
	Alexandre Ghiti <alexghiti@rivosinc.com>
Subject: drivers/scsi/qedf/qedf_main.c:2218:18: sparse: sparse: incorrect type in assignment (different base types)
Date: Sun, 24 May 2026 00:18:11 +0800	[thread overview]
Message-ID: <202605240047.9AdZeK4d-lkp@intel.com> (raw)

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   79bd2dded182b1d458b18e62684b7f82ffc682e5
commit: 2aa5801ada29948ce510fc8b1e3b3ec8162423e2 RISC-V: uaccess: Wrap the get_user_8 uaccess macro
date:   12 months ago
config: riscv-randconfig-r133-20260523 (https://download.01.org/0day-ci/archive/20260524/202605240047.9AdZeK4d-lkp@intel.com/config)
compiler: clang version 23.0.0git (https://github.com/llvm/llvm-project 5bac06718f502014fade905512f1d26d578a18f3)
sparse: v0.6.5-rc1
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260524/202605240047.9AdZeK4d-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Fixes: 2aa5801ada29 ("RISC-V: uaccess: Wrap the get_user_8 uaccess macro")
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202605240047.9AdZeK4d-lkp@intel.com/

sparse warnings: (new ones prefixed by >>)
   WARNING: invalid argument to '-march': '_zacas_zabha'
>> drivers/scsi/qedf/qedf_main.c:2218:18: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short [usertype] prod_idx @@     got restricted __le16 @@
   drivers/scsi/qedf/qedf_main.c:2218:18: sparse:     expected unsigned short [usertype] prod_idx
   drivers/scsi/qedf/qedf_main.c:2218:18: sparse:     got restricted __le16
   drivers/scsi/qedf/qedf_main.c:2247:18: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned short [usertype] prod_idx @@     got restricted __le16 @@
   drivers/scsi/qedf/qedf_main.c:2247:18: sparse:     expected unsigned short [usertype] prod_idx
   drivers/scsi/qedf/qedf_main.c:2247:18: sparse:     got restricted __le16
>> drivers/scsi/qedf/qedf_main.c:2264:33: sparse: sparse: restricted __le32 degrades to integer
   drivers/scsi/qedf/qedf_main.c:2282:26: sparse: sparse: restricted __le32 degrades to integer
>> drivers/scsi/qedf/qedf_main.c:2513:20: sparse: sparse: incorrect type in assignment (different base types) @@     expected unsigned int [usertype] fr_crc @@     got restricted __le32 [addressable] [usertype] fcoe_crc32 @@
   drivers/scsi/qedf/qedf_main.c:2513:20: sparse:     expected unsigned int [usertype] fr_crc
   drivers/scsi/qedf/qedf_main.c:2513:20: sparse:     got restricted __le32 [addressable] [usertype] fcoe_crc32
   drivers/scsi/qedf/qedf_main.c:2709:34: sparse: sparse: restricted __le32 degrades to integer
   drivers/scsi/qedf/qedf_main.c:2824:25: sparse: sparse: restricted __le32 degrades to integer
   drivers/scsi/qedf/qedf_main.c:2827:18: sparse: sparse: restricted __le32 degrades to integer
   drivers/scsi/qedf/qedf_main.c: note: in included file (through include/scsi/libfcoe.h, drivers/scsi/qedf/qedf.h):
   include/scsi/fc/fc_fcoe.h:89:36: sparse: sparse: cast truncates bits from constant value (efc becomes fc)
   include/scsi/fc/fc_fcoe.h:90:23: sparse: sparse: cast truncates bits from constant value (efc00 becomes 0)
   drivers/scsi/qedf/qedf_main.c:1868:15: sparse: sparse: memcpy with byte count of 119872

vim +2218 drivers/scsi/qedf/qedf_main.c

61d8658b4a435e Dupuis, Chad     2017-02-15  2202  
61d8658b4a435e Dupuis, Chad     2017-02-15  2203  static bool qedf_fp_has_work(struct qedf_fastpath *fp)
61d8658b4a435e Dupuis, Chad     2017-02-15  2204  {
61d8658b4a435e Dupuis, Chad     2017-02-15  2205  	struct qedf_ctx *qedf = fp->qedf;
61d8658b4a435e Dupuis, Chad     2017-02-15  2206  	struct global_queue *que;
61d8658b4a435e Dupuis, Chad     2017-02-15  2207  	struct qed_sb_info *sb_info = fp->sb_info;
fb09a1ed5c6e50 Shai Malin       2021-10-04  2208  	struct status_block *sb = sb_info->sb_virt;
61d8658b4a435e Dupuis, Chad     2017-02-15  2209  	u16 prod_idx;
61d8658b4a435e Dupuis, Chad     2017-02-15  2210  
61d8658b4a435e Dupuis, Chad     2017-02-15  2211  	/* Get the pointer to the global CQ this completion is on */
61d8658b4a435e Dupuis, Chad     2017-02-15  2212  	que = qedf->global_queues[fp->sb_id];
61d8658b4a435e Dupuis, Chad     2017-02-15  2213  
61d8658b4a435e Dupuis, Chad     2017-02-15  2214  	/* Be sure all responses have been written to PI */
61d8658b4a435e Dupuis, Chad     2017-02-15  2215  	rmb();
61d8658b4a435e Dupuis, Chad     2017-02-15  2216  
61d8658b4a435e Dupuis, Chad     2017-02-15  2217  	/* Get the current firmware producer index */
61d8658b4a435e Dupuis, Chad     2017-02-15 @2218  	prod_idx = sb->pi_array[QEDF_FCOE_PARAMS_GL_RQ_PI];
61d8658b4a435e Dupuis, Chad     2017-02-15  2219  
61d8658b4a435e Dupuis, Chad     2017-02-15  2220  	return (que->cq_prod_idx != prod_idx);
61d8658b4a435e Dupuis, Chad     2017-02-15  2221  }
61d8658b4a435e Dupuis, Chad     2017-02-15  2222  
61d8658b4a435e Dupuis, Chad     2017-02-15  2223  /*
61d8658b4a435e Dupuis, Chad     2017-02-15  2224   * Interrupt handler code.
61d8658b4a435e Dupuis, Chad     2017-02-15  2225   */
61d8658b4a435e Dupuis, Chad     2017-02-15  2226  
61d8658b4a435e Dupuis, Chad     2017-02-15  2227  /* Process completion queue and copy CQE contents for deferred processesing
61d8658b4a435e Dupuis, Chad     2017-02-15  2228   *
61d8658b4a435e Dupuis, Chad     2017-02-15  2229   * Return true if we should wake the I/O thread, false if not.
61d8658b4a435e Dupuis, Chad     2017-02-15  2230   */
61d8658b4a435e Dupuis, Chad     2017-02-15  2231  static bool qedf_process_completions(struct qedf_fastpath *fp)
61d8658b4a435e Dupuis, Chad     2017-02-15  2232  {
61d8658b4a435e Dupuis, Chad     2017-02-15  2233  	struct qedf_ctx *qedf = fp->qedf;
61d8658b4a435e Dupuis, Chad     2017-02-15  2234  	struct qed_sb_info *sb_info = fp->sb_info;
fb09a1ed5c6e50 Shai Malin       2021-10-04  2235  	struct status_block *sb = sb_info->sb_virt;
61d8658b4a435e Dupuis, Chad     2017-02-15  2236  	struct global_queue *que;
61d8658b4a435e Dupuis, Chad     2017-02-15  2237  	u16 prod_idx;
61d8658b4a435e Dupuis, Chad     2017-02-15  2238  	struct fcoe_cqe *cqe;
61d8658b4a435e Dupuis, Chad     2017-02-15  2239  	struct qedf_io_work *io_work;
61d8658b4a435e Dupuis, Chad     2017-02-15  2240  	unsigned int cpu;
61d8658b4a435e Dupuis, Chad     2017-02-15  2241  	struct qedf_ioreq *io_req = NULL;
61d8658b4a435e Dupuis, Chad     2017-02-15  2242  	u16 xid;
61d8658b4a435e Dupuis, Chad     2017-02-15  2243  	u16 new_cqes;
61d8658b4a435e Dupuis, Chad     2017-02-15  2244  	u32 comp_type;
61d8658b4a435e Dupuis, Chad     2017-02-15  2245  
61d8658b4a435e Dupuis, Chad     2017-02-15  2246  	/* Get the current firmware producer index */
61d8658b4a435e Dupuis, Chad     2017-02-15  2247  	prod_idx = sb->pi_array[QEDF_FCOE_PARAMS_GL_RQ_PI];
61d8658b4a435e Dupuis, Chad     2017-02-15  2248  
61d8658b4a435e Dupuis, Chad     2017-02-15  2249  	/* Get the pointer to the global CQ this completion is on */
61d8658b4a435e Dupuis, Chad     2017-02-15  2250  	que = qedf->global_queues[fp->sb_id];
61d8658b4a435e Dupuis, Chad     2017-02-15  2251  
61d8658b4a435e Dupuis, Chad     2017-02-15  2252  	/* Calculate the amount of new elements since last processing */
61d8658b4a435e Dupuis, Chad     2017-02-15  2253  	new_cqes = (prod_idx >= que->cq_prod_idx) ?
61d8658b4a435e Dupuis, Chad     2017-02-15  2254  	    (prod_idx - que->cq_prod_idx) :
61d8658b4a435e Dupuis, Chad     2017-02-15  2255  	    0x10000 - que->cq_prod_idx + prod_idx;
61d8658b4a435e Dupuis, Chad     2017-02-15  2256  
61d8658b4a435e Dupuis, Chad     2017-02-15  2257  	/* Save producer index */
61d8658b4a435e Dupuis, Chad     2017-02-15  2258  	que->cq_prod_idx = prod_idx;
61d8658b4a435e Dupuis, Chad     2017-02-15  2259  
61d8658b4a435e Dupuis, Chad     2017-02-15  2260  	while (new_cqes) {
61d8658b4a435e Dupuis, Chad     2017-02-15  2261  		fp->completions++;
61d8658b4a435e Dupuis, Chad     2017-02-15  2262  		cqe = &que->cq[que->cq_cons_idx];
61d8658b4a435e Dupuis, Chad     2017-02-15  2263  
61d8658b4a435e Dupuis, Chad     2017-02-15 @2264  		comp_type = (cqe->cqe_data >> FCOE_CQE_CQE_TYPE_SHIFT) &
61d8658b4a435e Dupuis, Chad     2017-02-15  2265  		    FCOE_CQE_CQE_TYPE_MASK;
61d8658b4a435e Dupuis, Chad     2017-02-15  2266  
61d8658b4a435e Dupuis, Chad     2017-02-15  2267  		/*
61d8658b4a435e Dupuis, Chad     2017-02-15  2268  		 * Process unsolicited CQEs directly in the interrupt handler
61d8658b4a435e Dupuis, Chad     2017-02-15  2269  		 * sine we need the fastpath ID
61d8658b4a435e Dupuis, Chad     2017-02-15  2270  		 */
61d8658b4a435e Dupuis, Chad     2017-02-15  2271  		if (comp_type == FCOE_UNSOLIC_CQE_TYPE) {
61d8658b4a435e Dupuis, Chad     2017-02-15  2272  			QEDF_INFO(&(qedf->dbg_ctx), QEDF_LOG_UNSOL,
61d8658b4a435e Dupuis, Chad     2017-02-15  2273  			   "Unsolicated CQE.\n");
61d8658b4a435e Dupuis, Chad     2017-02-15  2274  			qedf_process_unsol_compl(qedf, fp->sb_id, cqe);
61d8658b4a435e Dupuis, Chad     2017-02-15  2275  			/*
61d8658b4a435e Dupuis, Chad     2017-02-15  2276  			 * Don't add a work list item.  Increment consumer
61d8658b4a435e Dupuis, Chad     2017-02-15  2277  			 * consumer index and move on.
61d8658b4a435e Dupuis, Chad     2017-02-15  2278  			 */
61d8658b4a435e Dupuis, Chad     2017-02-15  2279  			goto inc_idx;
61d8658b4a435e Dupuis, Chad     2017-02-15  2280  		}
61d8658b4a435e Dupuis, Chad     2017-02-15  2281  
61d8658b4a435e Dupuis, Chad     2017-02-15  2282  		xid = cqe->cqe_data & FCOE_CQE_TASK_ID_MASK;
61d8658b4a435e Dupuis, Chad     2017-02-15  2283  		io_req = &qedf->cmd_mgr->cmds[xid];
61d8658b4a435e Dupuis, Chad     2017-02-15  2284  
61d8658b4a435e Dupuis, Chad     2017-02-15  2285  		/*
61d8658b4a435e Dupuis, Chad     2017-02-15  2286  		 * Figure out which percpu thread we should queue this I/O
61d8658b4a435e Dupuis, Chad     2017-02-15  2287  		 * on.
61d8658b4a435e Dupuis, Chad     2017-02-15  2288  		 */
61d8658b4a435e Dupuis, Chad     2017-02-15  2289  		if (!io_req)
b8c7dd15ceb87e Jesse Brandeburg 2024-06-11  2290  			/* If there is not io_req associated with this CQE
61d8658b4a435e Dupuis, Chad     2017-02-15  2291  			 * just queue it on CPU 0
61d8658b4a435e Dupuis, Chad     2017-02-15  2292  			 */
61d8658b4a435e Dupuis, Chad     2017-02-15  2293  			cpu = 0;
61d8658b4a435e Dupuis, Chad     2017-02-15  2294  		else {
61d8658b4a435e Dupuis, Chad     2017-02-15  2295  			cpu = io_req->cpu;
61d8658b4a435e Dupuis, Chad     2017-02-15  2296  			io_req->int_cpu = smp_processor_id();
61d8658b4a435e Dupuis, Chad     2017-02-15  2297  		}
61d8658b4a435e Dupuis, Chad     2017-02-15  2298  
61d8658b4a435e Dupuis, Chad     2017-02-15  2299  		io_work = mempool_alloc(qedf->io_mempool, GFP_ATOMIC);
61d8658b4a435e Dupuis, Chad     2017-02-15  2300  		if (!io_work) {
61d8658b4a435e Dupuis, Chad     2017-02-15  2301  			QEDF_WARN(&(qedf->dbg_ctx), "Could not allocate "
61d8658b4a435e Dupuis, Chad     2017-02-15  2302  				   "work for I/O completion.\n");
61d8658b4a435e Dupuis, Chad     2017-02-15  2303  			continue;
61d8658b4a435e Dupuis, Chad     2017-02-15  2304  		}
61d8658b4a435e Dupuis, Chad     2017-02-15  2305  		memset(io_work, 0, sizeof(struct qedf_io_work));
61d8658b4a435e Dupuis, Chad     2017-02-15  2306  
61d8658b4a435e Dupuis, Chad     2017-02-15  2307  		INIT_WORK(&io_work->work, qedf_fp_io_handler);
61d8658b4a435e Dupuis, Chad     2017-02-15  2308  
61d8658b4a435e Dupuis, Chad     2017-02-15  2309  		/* Copy contents of CQE for deferred processing */
61d8658b4a435e Dupuis, Chad     2017-02-15  2310  		memcpy(&io_work->cqe, cqe, sizeof(struct fcoe_cqe));
61d8658b4a435e Dupuis, Chad     2017-02-15  2311  
61d8658b4a435e Dupuis, Chad     2017-02-15  2312  		io_work->qedf = fp->qedf;
61d8658b4a435e Dupuis, Chad     2017-02-15  2313  		io_work->fp = NULL; /* Only used for unsolicited frames */
61d8658b4a435e Dupuis, Chad     2017-02-15  2314  
61d8658b4a435e Dupuis, Chad     2017-02-15  2315  		queue_work_on(cpu, qedf_io_wq, &io_work->work);
61d8658b4a435e Dupuis, Chad     2017-02-15  2316  
61d8658b4a435e Dupuis, Chad     2017-02-15  2317  inc_idx:
61d8658b4a435e Dupuis, Chad     2017-02-15  2318  		que->cq_cons_idx++;
61d8658b4a435e Dupuis, Chad     2017-02-15  2319  		if (que->cq_cons_idx == fp->cq_num_entries)
61d8658b4a435e Dupuis, Chad     2017-02-15  2320  			que->cq_cons_idx = 0;
61d8658b4a435e Dupuis, Chad     2017-02-15  2321  		new_cqes--;
61d8658b4a435e Dupuis, Chad     2017-02-15  2322  	}
61d8658b4a435e Dupuis, Chad     2017-02-15  2323  
61d8658b4a435e Dupuis, Chad     2017-02-15  2324  	return true;
61d8658b4a435e Dupuis, Chad     2017-02-15  2325  }
61d8658b4a435e Dupuis, Chad     2017-02-15  2326  

:::::: The code at line 2218 was first introduced by commit
:::::: 61d8658b4a435eac729966cc94cdda077a8df5cd scsi: qedf: Add QLogic FastLinQ offload FCoE driver framework.

:::::: TO: Dupuis, Chad <chad.dupuis@cavium.com>
:::::: CC: Martin K. Petersen <martin.petersen@oracle.com>

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

                 reply	other threads:[~2026-05-23 16:18 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202605240047.9AdZeK4d-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=alexghiti@rivosinc.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=oe-kbuild-all@lists.linux.dev \
    --cc=palmer@dabbelt.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.