mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* drivers/net/wireless/intel/iwlwifi/iwl-trans.c:154:34: sparse: sparse: incorrect type in assignment (different address spaces)
@ 2021-01-14 22:20 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2021-01-14 22:20 UTC (permalink / raw)
  To: Mordechay Goodstein; +Cc: kbuild-all, linux-kernel, Luca Coelho

[-- Attachment #1: Type: text/plain, Size: 6567 bytes --]

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   65f0d2414b7079556fbbcc070b3d1c9f9587606d
commit: 0cd1ad2d7fd41e0de4969fd1dd0aa846c99830d1 iwlwifi: move all bus-independent TX functions to common code
date:   4 months ago
config: i386-randconfig-s002-20210115 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.0
reproduce:
        # apt-get install sparse
        # sparse version: v0.6.3-208-g46a52ca4-dirty
        # https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=0cd1ad2d7fd41e0de4969fd1dd0aa846c99830d1
        git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout 0cd1ad2d7fd41e0de4969fd1dd0aa846c99830d1
        # save the attached .config to linux build tree
        make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' ARCH=i386 

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


"sparse warnings: (new ones prefixed by >>)"
   drivers/net/wireless/intel/iwlwifi/iwl-trans.c: note: in included file (through drivers/net/wireless/intel/iwlwifi/fw/img.h, drivers/net/wireless/intel/iwlwifi/iwl-trans.h):
   drivers/net/wireless/intel/iwlwifi/fw/file.h:330:19: sparse: sparse: mixed bitwiseness
   drivers/net/wireless/intel/iwlwifi/fw/file.h:485:19: sparse: sparse: mixed bitwiseness
   drivers/net/wireless/intel/iwlwifi/iwl-trans.c: note: in included file:
   drivers/net/wireless/intel/iwlwifi/iwl-trans.h:788:52: sparse: sparse: array of flexible structures
>> drivers/net/wireless/intel/iwlwifi/iwl-trans.c:154:34: sparse: sparse: incorrect type in assignment (different address spaces) @@     expected struct iwl_tso_hdr_page *tso_hdr_page @@     got struct iwl_tso_hdr_page [noderef] __percpu * @@
   drivers/net/wireless/intel/iwlwifi/iwl-trans.c:154:34: sparse:     expected struct iwl_tso_hdr_page *tso_hdr_page
   drivers/net/wireless/intel/iwlwifi/iwl-trans.c:154:34: sparse:     got struct iwl_tso_hdr_page [noderef] __percpu *
>> drivers/net/wireless/intel/iwlwifi/iwl-trans.c:169:25: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got struct iwl_tso_hdr_page * @@
   drivers/net/wireless/intel/iwlwifi/iwl-trans.c:169:25: sparse:     expected void const [noderef] __percpu *__vpp_verify
   drivers/net/wireless/intel/iwlwifi/iwl-trans.c:169:25: sparse:     got struct iwl_tso_hdr_page *
>> drivers/net/wireless/intel/iwlwifi/iwl-trans.c:175:32: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void [noderef] __percpu *__pdata @@     got struct iwl_tso_hdr_page *tso_hdr_page @@
   drivers/net/wireless/intel/iwlwifi/iwl-trans.c:175:32: sparse:     expected void [noderef] __percpu *__pdata
   drivers/net/wireless/intel/iwlwifi/iwl-trans.c:175:32: sparse:     got struct iwl_tso_hdr_page *tso_hdr_page
--
   drivers/net/wireless/intel/iwlwifi/queue/tx.c: note: in included file (through drivers/net/wireless/intel/iwlwifi/fw/img.h, drivers/net/wireless/intel/iwlwifi/iwl-trans.h, ...):
   drivers/net/wireless/intel/iwlwifi/fw/file.h:330:19: sparse: sparse: mixed bitwiseness
   drivers/net/wireless/intel/iwlwifi/fw/file.h:485:19: sparse: sparse: mixed bitwiseness
   drivers/net/wireless/intel/iwlwifi/queue/tx.c: note: in included file (through drivers/net/wireless/intel/iwlwifi/iwl-devtrace.h, drivers/net/wireless/intel/iwlwifi/iwl-io.h):
   drivers/net/wireless/intel/iwlwifi/iwl-trans.h:788:52: sparse: sparse: array of flexible structures
>> drivers/net/wireless/intel/iwlwifi/queue/tx.c:354:38: sparse: sparse: incorrect type in initializer (different address spaces) @@     expected void const [noderef] __percpu *__vpp_verify @@     got struct iwl_tso_hdr_page * @@
   drivers/net/wireless/intel/iwlwifi/queue/tx.c:354:38: sparse:     expected void const [noderef] __percpu *__vpp_verify
   drivers/net/wireless/intel/iwlwifi/queue/tx.c:354:38: sparse:     got struct iwl_tso_hdr_page *

vim +154 drivers/net/wireless/intel/iwlwifi/iwl-trans.c

   110	
   111		trans->dev = dev;
   112		trans->ops = ops;
   113		trans->num_rx_queues = 1;
   114	
   115		if (trans->trans_cfg->device_family >= IWL_DEVICE_FAMILY_AX210)
   116			trans->txqs.bc_tbl_size = sizeof(struct iwl_gen3_bc_tbl);
   117		else
   118			trans->txqs.bc_tbl_size = sizeof(struct iwlagn_scd_bc_tbl);
   119		/*
   120		 * For gen2 devices, we use a single allocation for each byte-count
   121		 * table, but they're pretty small (1k) so use a DMA pool that we
   122		 * allocate here.
   123		 */
   124		if (trans->trans_cfg->gen2) {
   125			trans->txqs.bc_pool = dmam_pool_create("iwlwifi:bc", dev,
   126							       trans->txqs.bc_tbl_size,
   127							       256, 0);
   128			if (!trans->txqs.bc_pool)
   129				return NULL;
   130		}
   131	
   132		if (trans->trans_cfg->use_tfh) {
   133			trans->txqs.tfd.addr_size = 64;
   134			trans->txqs.tfd.max_tbs = IWL_TFH_NUM_TBS;
   135			trans->txqs.tfd.size = sizeof(struct iwl_tfh_tfd);
   136		} else {
   137			trans->txqs.tfd.addr_size = 36;
   138			trans->txqs.tfd.max_tbs = IWL_NUM_OF_TBS;
   139			trans->txqs.tfd.size = sizeof(struct iwl_tfd);
   140		}
   141		trans->max_skb_frags = IWL_TRANS_MAX_FRAGS(trans);
   142	
   143		snprintf(trans->dev_cmd_pool_name, sizeof(trans->dev_cmd_pool_name),
   144			 "iwl_cmd_pool:%s", dev_name(trans->dev));
   145		trans->dev_cmd_pool =
   146			kmem_cache_create(trans->dev_cmd_pool_name,
   147					  txcmd_size, txcmd_align,
   148					  SLAB_HWCACHE_ALIGN, NULL);
   149		if (!trans->dev_cmd_pool)
   150			return NULL;
   151	
   152		WARN_ON(!ops->wait_txq_empty && !ops->wait_tx_queues_empty);
   153	
 > 154		trans->txqs.tso_hdr_page = alloc_percpu(struct iwl_tso_hdr_page);
   155		if (!trans->txqs.tso_hdr_page) {
   156			kmem_cache_destroy(trans->dev_cmd_pool);
   157			return NULL;
   158		}
   159	
   160		return trans;
   161	}
   162	
   163	void iwl_trans_free(struct iwl_trans *trans)
   164	{
   165		int i;
   166	
   167		for_each_possible_cpu(i) {
   168			struct iwl_tso_hdr_page *p =
 > 169				per_cpu_ptr(trans->txqs.tso_hdr_page, i);
   170	
   171			if (p->page)
   172				__free_page(p->page);
   173		}
   174	
 > 175		free_percpu(trans->txqs.tso_hdr_page);
   176	
   177		kmem_cache_destroy(trans->dev_cmd_pool);
   178	}
   179	

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

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 41428 bytes --]

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2021-01-14 22:21 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-01-14 22:20 drivers/net/wireless/intel/iwlwifi/iwl-trans.c:154:34: sparse: sparse: incorrect type in assignment (different address spaces) kernel test robot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®