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] [day] [month] [year] [list]
Message-ID: <201510151007.f6nvy7gi%fengguang.wu@intel.com>
Date:	Thu, 15 Oct 2015 10:46:16 +0800
From:	kbuild test robot <lkp@...el.com>
To:	Matias Bjørling <m@...rling.me>
Cc:	kbuild-all@...org, hch@...radead.org, axboe@...com,
	linux-fsdevel@...r.kernel.org, linux-kernel@...r.kernel.org,
	linux-nvme@...ts.infradead.org, keith.busch@...el.com,
	jg@...htnvm.io, Stephen.Bates@...s.com,
	Matias Bjørling <m@...rling.me>
Subject: Re: [PATCH v9 5/5] nvme: LightNVM support

Hi Matias,

[auto build test WARNING on block/for-next -- if it's inappropriate base, please suggest rules for selecting the more suitable base]

url:    https://github.com/0day-ci/linux/commits/Matias-Bj-rling/Support-for-Open-Channel-SSDs/20151014-224617
reproduce:
        # apt-get install sparse
        make ARCH=x86_64 allmodconfig
        make C=1 CF=-D__CHECK_ENDIAN__


sparse warnings: (new ones prefixed by >>)

>> drivers/nvme/host/lightnvm.c:282:23: sparse: incorrect type in assignment (different base types)
   drivers/nvme/host/lightnvm.c:282:23:    expected restricted __le32 [assigned] [usertype] nsid
   drivers/nvme/host/lightnvm.c:282:23:    got unsigned int [unsigned] ns_id
>> drivers/nvme/host/lightnvm.c:291:19: sparse: cast to restricted __le64
   drivers/nvme/host/lightnvm.c:292:19: sparse: cast to restricted __le64
>> drivers/nvme/host/lightnvm.c:331:28: sparse: incorrect type in assignment (different base types)
   drivers/nvme/host/lightnvm.c:331:28:    expected restricted __le64 [assigned] [usertype] slba
   drivers/nvme/host/lightnvm.c:331:28:    got unsigned long long [unsigned] [usertype] cmd_slba
>> drivers/nvme/host/lightnvm.c:332:27: sparse: incorrect type in assignment (different base types)
   drivers/nvme/host/lightnvm.c:332:27:    expected restricted __le32 [assigned] [usertype] nlb
   drivers/nvme/host/lightnvm.c:332:27:    got unsigned long long [unsigned] [usertype] cmd_nlb

vim +282 drivers/nvme/host/lightnvm.c

   276		struct nvme_nvm_command c = {};
   277		int sz = sizeof(struct nvm_get_features);
   278		int ret;
   279		u64 *resp;
   280	
   281		c.common.opcode = nvme_nvm_admin_get_features;
 > 282		c.common.nsid = ns->ns_id;
   283		resp = kmalloc(sz, GFP_KERNEL);
   284		if (!resp)
   285			return -ENOMEM;
   286	
   287		ret = nvme_submit_sync_cmd(q, (struct nvme_command *)&c, resp, sz);
   288		if (ret)
   289			goto done;
   290	
 > 291		gf->rsp = le64_to_cpu(resp[0]);
   292		gf->ext = le64_to_cpu(resp[1]);
   293	
   294	done:
   295		kfree(resp);
   296		return ret;
   297	}
   298	
   299	static int nvme_nvm_set_resp(struct request_queue *q, u64 resp)
   300	{
   301		struct nvme_ns *ns = q->queuedata;
   302		struct nvme_nvm_command c = {};
   303	
   304		c.resp.opcode = nvme_nvm_admin_set_resp;
   305		c.resp.nsid = cpu_to_le32(ns->ns_id);
   306		c.resp.resp = cpu_to_le64(resp);
   307		return nvme_submit_sync_cmd(q, (struct nvme_command *)&c, NULL, 0);
   308	}
   309	
   310	static int nvme_nvm_get_l2p_tbl(struct request_queue *q, u64 slba, u64 nlb,
   311					nvm_l2p_update_fn *update_l2p, void *priv)
   312	{
   313		struct nvme_ns *ns = q->queuedata;
   314		struct nvme_dev *dev = ns->dev;
   315		struct nvme_nvm_command c = {};
   316		u32 len = queue_max_hw_sectors(q) << 9;
   317		u64 nlb_pr_rq = len / sizeof(u64);
   318		u64 cmd_slba = slba;
   319		void *entries;
   320		int ret = 0;
   321	
   322		c.l2p.opcode = nvme_nvm_admin_get_l2p_tbl;
   323		c.l2p.nsid = cpu_to_le32(ns->ns_id);
   324		entries = kmalloc(len, GFP_KERNEL);
   325		if (!entries)
   326			return -ENOMEM;
   327	
   328		while (nlb) {
   329			u64 cmd_nlb = min_t(u64, nlb_pr_rq, nlb);
   330	
 > 331			c.l2p.slba = cmd_slba;
 > 332			c.l2p.nlb = cmd_nlb;
   333	
   334			ret = nvme_submit_sync_cmd(q, (struct nvme_command *)&c,
   335									entries, len);

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ