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>] [day] [month] [year] [list]
Date:   Fri, 15 Apr 2022 20:29:16 +0800
From:   kernel test robot <lkp@...el.com>
To:     Brijesh Singh <brijesh.singh@....com>
Cc:     kbuild-all@...ts.01.org, linux-kernel@...r.kernel.org,
        x86@...nel.org, Borislav Petkov <bp@...e.de>
Subject: [tip:x86/sev 43/49] drivers/virt/coco/sevguest/sevguest.c:579:17:
 sparse: sparse: incorrect type in argument 1 (different address spaces)

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git x86/sev
head:   101826e02ac6c829bf4e768295e79ae9c37b4b2a
commit: fce96cf0443083e37455eff8f78fd240c621dae3 [43/49] virt: Add SEV-SNP guest driver
config: x86_64-allyesconfig (https://download.01.org/0day-ci/archive/20220415/202204152027.aJdnJRgJ-lkp@intel.com/config)
compiler: gcc-11 (Debian 11.2.0-19) 11.2.0
reproduce:
        # apt-get install sparse
        # sparse version: v0.6.4-dirty
        # https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git/commit/?id=fce96cf0443083e37455eff8f78fd240c621dae3
        git remote add tip https://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git
        git fetch --no-tags tip x86/sev
        git checkout fce96cf0443083e37455eff8f78fd240c621dae3
        # save the config file to linux build tree
        mkdir build_dir
        make W=1 C=1 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=x86_64 SHELL=/bin/bash drivers/virt/coco/sevguest/

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


sparse warnings: (new ones prefixed by >>)
>> drivers/virt/coco/sevguest/sevguest.c:579:17: sparse: sparse: incorrect type in argument 1 (different address spaces) @@     expected void volatile [noderef] __iomem *addr @@     got struct snp_secrets_page_layout *[assigned] layout @@
   drivers/virt/coco/sevguest/sevguest.c:579:17: sparse:     expected void volatile [noderef] __iomem *addr
   drivers/virt/coco/sevguest/sevguest.c:579:17: sparse:     got struct snp_secrets_page_layout *[assigned] layout

vim +579 drivers/virt/coco/sevguest/sevguest.c

   504	
   505	static int __init snp_guest_probe(struct platform_device *pdev)
   506	{
   507		struct snp_secrets_page_layout *layout;
   508		struct snp_guest_platform_data *data;
   509		struct device *dev = &pdev->dev;
   510		struct snp_guest_dev *snp_dev;
   511		struct miscdevice *misc;
   512		int ret;
   513	
   514		if (!dev->platform_data)
   515			return -ENODEV;
   516	
   517		data = (struct snp_guest_platform_data *)dev->platform_data;
   518		layout = (__force void *)ioremap_encrypted(data->secrets_gpa, PAGE_SIZE);
   519		if (!layout)
   520			return -ENODEV;
   521	
   522		ret = -ENOMEM;
   523		snp_dev = devm_kzalloc(&pdev->dev, sizeof(struct snp_guest_dev), GFP_KERNEL);
   524		if (!snp_dev)
   525			goto e_unmap;
   526	
   527		ret = -EINVAL;
   528		snp_dev->vmpck = get_vmpck(vmpck_id, layout, &snp_dev->os_area_msg_seqno);
   529		if (!snp_dev->vmpck) {
   530			dev_err(dev, "invalid vmpck id %d\n", vmpck_id);
   531			goto e_unmap;
   532		}
   533	
   534		/* Verify that VMPCK is not zero. */
   535		if (is_vmpck_empty(snp_dev)) {
   536			dev_err(dev, "vmpck id %d is null\n", vmpck_id);
   537			goto e_unmap;
   538		}
   539	
   540		platform_set_drvdata(pdev, snp_dev);
   541		snp_dev->dev = dev;
   542		snp_dev->layout = layout;
   543	
   544		/* Allocate the shared page used for the request and response message. */
   545		snp_dev->request = alloc_shared_pages(sizeof(struct snp_guest_msg));
   546		if (!snp_dev->request)
   547			goto e_unmap;
   548	
   549		snp_dev->response = alloc_shared_pages(sizeof(struct snp_guest_msg));
   550		if (!snp_dev->response)
   551			goto e_free_request;
   552	
   553		ret = -EIO;
   554		snp_dev->crypto = init_crypto(snp_dev, snp_dev->vmpck, VMPCK_KEY_LEN);
   555		if (!snp_dev->crypto)
   556			goto e_free_response;
   557	
   558		misc = &snp_dev->misc;
   559		misc->minor = MISC_DYNAMIC_MINOR;
   560		misc->name = DEVICE_NAME;
   561		misc->fops = &snp_guest_fops;
   562	
   563		/* initial the input address for guest request */
   564		snp_dev->input.req_gpa = __pa(snp_dev->request);
   565		snp_dev->input.resp_gpa = __pa(snp_dev->response);
   566	
   567		ret =  misc_register(misc);
   568		if (ret)
   569			goto e_free_response;
   570	
   571		dev_info(dev, "Initialized SNP guest driver (using vmpck_id %d)\n", vmpck_id);
   572		return 0;
   573	
   574	e_free_response:
   575		free_shared_pages(snp_dev->response, sizeof(struct snp_guest_msg));
   576	e_free_request:
   577		free_shared_pages(snp_dev->request, sizeof(struct snp_guest_msg));
   578	e_unmap:
 > 579		iounmap(layout);
   580		return ret;
   581	}
   582	

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ