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: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <202309250749.LB7ZUUGJ-lkp@intel.com>
Date: Mon, 25 Sep 2023 07:29:44 +0800
From: kernel test robot <lkp@...el.com>
To: Wen Gu <guwen@...ux.alibaba.com>, kgraul@...ux.ibm.com,
	wenjia@...ux.ibm.com, jaka@...ux.ibm.com, davem@...emloft.net,
	edumazet@...gle.com, kuba@...nel.org, pabeni@...hat.com
Cc: oe-kbuild-all@...ts.linux.dev, wintera@...ux.ibm.com,
	schnelle@...ux.ibm.com, gbayer@...ux.ibm.com, pasic@...ux.ibm.com,
	alibuda@...ux.alibaba.com, tonylu@...ux.alibaba.com,
	dust.li@...ux.alibaba.com, guwen@...ux.alibaba.com,
	linux-s390@...r.kernel.org, netdev@...r.kernel.org,
	linux-kernel@...r.kernel.org
Subject: Re: [PATCH net-next v4 12/18] net/smc: implement DMB-related
 operations of loopback

Hi Wen,

kernel test robot noticed the following build errors:

[auto build test ERROR on net-next/main]

url:    https://github.com/intel-lab-lkp/linux/commits/Wen-Gu/net-smc-decouple-ism_dev-from-SMC-D-device-dump/20230924-231933
base:   net-next/main
patch link:    https://lore.kernel.org/r/1695568613-125057-13-git-send-email-guwen%40linux.alibaba.com
patch subject: [PATCH net-next v4 12/18] net/smc: implement DMB-related operations of loopback
config: mips-allmodconfig (https://download.01.org/0day-ci/archive/20230925/202309250749.LB7ZUUGJ-lkp@intel.com/config)
compiler: mips-linux-gcc (GCC) 13.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20230925/202309250749.LB7ZUUGJ-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
| Reported-by: kernel test robot <lkp@...el.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202309250749.LB7ZUUGJ-lkp@intel.com/

All error/warnings (new ones prefixed by >>):

   net/smc/smc_loopback.c: In function 'smc_lo_register_dmb':
>> net/smc/smc_loopback.c:102:30: error: implicit declaration of function 'vzalloc'; did you mean 'kvzalloc'? [-Werror=implicit-function-declaration]
     102 |         dmb_node->cpu_addr = vzalloc(dmb->dmb_len);
         |                              ^~~~~~~
         |                              kvzalloc
>> net/smc/smc_loopback.c:102:28: warning: assignment to 'void *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
     102 |         dmb_node->cpu_addr = vzalloc(dmb->dmb_len);
         |                            ^
   net/smc/smc_loopback.c: In function 'smc_lo_unregister_dmb':
>> net/smc/smc_loopback.c:159:9: error: implicit declaration of function 'vfree'; did you mean 'kvfree'? [-Werror=implicit-function-declaration]
     159 |         vfree(dmb_node->cpu_addr);
         |         ^~~~~
         |         kvfree
   cc1: some warnings being treated as errors


vim +102 net/smc/smc_loopback.c

    79	
    80	static int smc_lo_register_dmb(struct smcd_dev *smcd, struct smcd_dmb *dmb,
    81				       void *client_priv)
    82	{
    83		struct smc_lo_dmb_node *dmb_node, *tmp_node;
    84		struct smc_lo_dev *ldev = smcd->priv;
    85		int sba_idx, rc;
    86	
    87		/* check space for new dmb */
    88		for_each_clear_bit(sba_idx, ldev->sba_idx_mask, SMC_LODEV_MAX_DMBS) {
    89			if (!test_and_set_bit(sba_idx, ldev->sba_idx_mask))
    90				break;
    91		}
    92		if (sba_idx == SMC_LODEV_MAX_DMBS)
    93			return -ENOSPC;
    94	
    95		dmb_node = kzalloc(sizeof(*dmb_node), GFP_KERNEL);
    96		if (!dmb_node) {
    97			rc = -ENOMEM;
    98			goto err_bit;
    99		}
   100	
   101		dmb_node->sba_idx = sba_idx;
 > 102		dmb_node->cpu_addr = vzalloc(dmb->dmb_len);
   103		if (!dmb_node->cpu_addr) {
   104			rc = -ENOMEM;
   105			goto err_node;
   106		}
   107		dmb_node->len = dmb->dmb_len;
   108		dmb_node->dma_addr = SMC_DMA_ADDR_INVALID;
   109	
   110	again:
   111		/* add new dmb into hash table */
   112		get_random_bytes(&dmb_node->token, sizeof(dmb_node->token));
   113		write_lock(&ldev->dmb_ht_lock);
   114		hash_for_each_possible(ldev->dmb_ht, tmp_node, list, dmb_node->token) {
   115			if (tmp_node->token == dmb_node->token) {
   116				write_unlock(&ldev->dmb_ht_lock);
   117				goto again;
   118			}
   119		}
   120		hash_add(ldev->dmb_ht, &dmb_node->list, dmb_node->token);
   121		write_unlock(&ldev->dmb_ht_lock);
   122	
   123		dmb->sba_idx = dmb_node->sba_idx;
   124		dmb->dmb_tok = dmb_node->token;
   125		dmb->cpu_addr = dmb_node->cpu_addr;
   126		dmb->dma_addr = dmb_node->dma_addr;
   127		dmb->dmb_len = dmb_node->len;
   128	
   129		return 0;
   130	
   131	err_node:
   132		kfree(dmb_node);
   133	err_bit:
   134		clear_bit(sba_idx, ldev->sba_idx_mask);
   135		return rc;
   136	}
   137	
   138	static int smc_lo_unregister_dmb(struct smcd_dev *smcd, struct smcd_dmb *dmb)
   139	{
   140		struct smc_lo_dmb_node *dmb_node = NULL, *tmp_node;
   141		struct smc_lo_dev *ldev = smcd->priv;
   142	
   143		/* remove dmb from hash table */
   144		write_lock(&ldev->dmb_ht_lock);
   145		hash_for_each_possible(ldev->dmb_ht, tmp_node, list, dmb->dmb_tok) {
   146			if (tmp_node->token == dmb->dmb_tok) {
   147				dmb_node = tmp_node;
   148				break;
   149			}
   150		}
   151		if (!dmb_node) {
   152			write_unlock(&ldev->dmb_ht_lock);
   153			return -EINVAL;
   154		}
   155		hash_del(&dmb_node->list);
   156		write_unlock(&ldev->dmb_ht_lock);
   157	
   158		clear_bit(dmb_node->sba_idx, ldev->sba_idx_mask);
 > 159		vfree(dmb_node->cpu_addr);
   160		kfree(dmb_node);
   161	
   162		return 0;
   163	}
   164	

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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ