drivers/nvme/host/nvme.h:217:20: error: 'REQ_OP_DISCARD' undeclared

From: kbuild test robot
Date: Mon Sep 05 2016 - 23:06:30 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: c6935931c1894ff857616ff8549b61236a19148f
commit: aa71987472a974f4f6dc4be377720564079ef42e nvme: fabrics drivers don't need the nvme-pci driver
date: 2 weeks ago
config: i386-randconfig-h0-09052023 (attached as .config)
compiler: gcc-6 (Debian 6.1.1-9) 6.1.1 20160705
reproduce:
git checkout aa71987472a974f4f6dc4be377720564079ef42e
# save the attached .config to linux build tree
make ARCH=i386

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

In file included from drivers/nvme/host/core.c:16:0:
include/linux/blk-mq.h:61:18: error: field 'kobj' has incomplete type
struct kobject kobj;
^~~~
include/linux/blk-mq.h:128:2: error: unknown type name 'softirq_done_fn'
softirq_done_fn *complete;
^~~~~~~~~~~~~~~
include/linux/blk-mq.h:181:33: warning: 'struct gendisk' declared inside parameter list will not be visible outside of this definition or declaration
int blk_mq_register_disk(struct gendisk *);
^~~~~~~
include/linux/blk-mq.h:182:36: warning: 'struct gendisk' declared inside parameter list will not be visible outside of this definition or declaration
void blk_mq_unregister_disk(struct gendisk *);
^~~~~~~
include/linux/blk-mq.h: In function 'blk_mq_rq_from_pdu':
include/linux/blk-mq.h:260:22: error: invalid application of 'sizeof' to incomplete type 'struct request'
return pdu - sizeof(struct request);
^~~~~~
include/linux/blk-mq.h: In function 'blk_mq_rq_to_pdu':
include/linux/blk-mq.h:264:2: error: invalid use of undefined type 'struct request'
return rq + 1;
^~~~~~
In file included from drivers/nvme/host/core.c:32:0:
drivers/nvme/host/nvme.h: In function 'nvme_map_len':
drivers/nvme/host/nvme.h:217:6: error: implicit declaration of function 'req_op' [-Werror=implicit-function-declaration]
if (req_op(rq) == REQ_OP_DISCARD)
^~~~~~
>> drivers/nvme/host/nvme.h:217:20: error: 'REQ_OP_DISCARD' undeclared (first use in this function)
if (req_op(rq) == REQ_OP_DISCARD)
^~~~~~~~~~~~~~
drivers/nvme/host/nvme.h:217:20: note: each undeclared identifier is reported only once for each function it appears in
drivers/nvme/host/nvme.h:220:10: error: implicit declaration of function 'blk_rq_bytes' [-Werror=implicit-function-declaration]
return blk_rq_bytes(rq);
^~~~~~~~~~~~
drivers/nvme/host/nvme.h: In function 'nvme_cleanup_cmd':
drivers/nvme/host/nvme.h:225:21: error: 'REQ_OP_DISCARD' undeclared (first use in this function)
if (req_op(req) == REQ_OP_DISCARD)
^~~~~~~~~~~~~~
drivers/nvme/host/nvme.h:226:12: error: dereferencing pointer to incomplete type 'struct request'
kfree(req->completion_data);
^~
drivers/nvme/host/nvme.h: In function 'nvme_req_needs_retry':
drivers/nvme/host/nvme.h:243:35: error: implicit declaration of function 'blk_noretry_request' [-Werror=implicit-function-declaration]
return !(status & NVME_SC_DNR || blk_noretry_request(req)) &&
^~~~~~~~~~~~~~~~~~~
drivers/nvme/host/core.c: In function 'nvme_cancel_request':
drivers/nvme/host/core.c:75:6: error: implicit declaration of function 'blk_queue_dying' [-Werror=implicit-function-declaration]
if (blk_queue_dying(req->q))
^~~~~~~~~~~~~~~
drivers/nvme/host/core.c: In function 'nvme_free_ns':
drivers/nvme/host/core.c:157:42: error: dereferencing pointer to incomplete type 'struct gendisk'
nvme_nvm_unregister(ns->queue, ns->disk->disk_name);
^~
drivers/nvme/host/core.c:163:2: error: implicit declaration of function 'put_disk' [-Werror=implicit-function-declaration]
put_disk(ns->disk);
^~~~~~~~
drivers/nvme/host/core.c: In function 'nvme_requeue_req':
drivers/nvme/host/core.c:203:7: error: implicit declaration of function 'blk_queue_stopped' [-Werror=implicit-function-declaration]
if (!blk_queue_stopped(req->q))
^~~~~~~~~~~~~~~~~
drivers/nvme/host/core.c: In function 'nvme_alloc_request':
drivers/nvme/host/core.c:223:18: error: 'REQ_TYPE_DRV_PRIV' undeclared (first use in this function)
req->cmd_type = REQ_TYPE_DRV_PRIV;
^~~~~~~~~~~~~~~~~
>> drivers/nvme/host/core.c:224:20: error: 'REQ_FAILFAST_DRIVER' undeclared (first use in this function)
req->cmd_flags |= REQ_FAILFAST_DRIVER;
^~~~~~~~~~~~~~~~~~~
In file included from include/linux/byteorder/little_endian.h:4:0,
from arch/x86/include/uapi/asm/byteorder.h:4,
from include/asm-generic/bitops/le.h:5,
from arch/x86/include/asm/bitops.h:504,
from include/linux/bitops.h:36,
from include/linux/kernel.h:10,
from include/linux/sched.h:17,
from include/linux/blkdev.h:4,
from drivers/nvme/host/core.c:15:
drivers/nvme/host/core.c: In function 'nvme_setup_discard':
drivers/nvme/host/core.c:254:46: error: implicit declaration of function 'blk_rq_pos' [-Werror=implicit-function-declaration]
range->slba = cpu_to_le64(nvme_block_nr(ns, blk_rq_pos(req)));
^
include/uapi/linux/byteorder/little_endian.h:30:51: note: in definition of macro '__cpu_to_le64'
#define __cpu_to_le64(x) ((__force __le64)(__u64)(x))
^
drivers/nvme/host/core.c:254:16: note: in expansion of macro 'cpu_to_le64'
range->slba = cpu_to_le64(nvme_block_nr(ns, blk_rq_pos(req)));
^~~~~~~~~~~
drivers/nvme/host/core.c:265:2: error: implicit declaration of function 'blk_add_request_payload' [-Werror=implicit-function-declaration]
blk_add_request_payload(req, page, offset, sizeof(*range));
^~~~~~~~~~~~~~~~~~~~~~~
drivers/nvme/host/core.c: In function 'nvme_setup_rw':
>> drivers/nvme/host/core.c:283:23: error: 'REQ_FUA' undeclared (first use in this function)
if (req->cmd_flags & REQ_FUA)
^~~~~~~
>> drivers/nvme/host/core.c:285:24: error: 'REQ_FAILFAST_DEV' undeclared (first use in this function)
if (req->cmd_flags & (REQ_FAILFAST_DEV | REQ_RAHEAD))
^~~~~~~~~~~~~~~~
>> drivers/nvme/host/core.c:285:43: error: 'REQ_RAHEAD' undeclared (first use in this function)
if (req->cmd_flags & (REQ_FAILFAST_DEV | REQ_RAHEAD))
^~~~~~~~~~
drivers/nvme/host/core.c:292:21: error: implicit declaration of function 'rq_data_dir' [-Werror=implicit-function-declaration]
cmnd->rw.opcode = (rq_data_dir(req) ? nvme_cmd_write : nvme_cmd_read);
^~~~~~~~~~~
drivers/nvme/host/core.c:311:8: error: implicit declaration of function 'blk_integrity_rq' [-Werror=implicit-function-declaration]
if (!blk_integrity_rq(req))
^~~~~~~~~~~~~~~~
drivers/nvme/host/core.c: In function 'nvme_setup_cmd':
drivers/nvme/host/core.c:324:23: error: 'REQ_TYPE_DRV_PRIV' undeclared (first use in this function)
if (req->cmd_type == REQ_TYPE_DRV_PRIV)
^~~~~~~~~~~~~~~~~
>> drivers/nvme/host/core.c:326:26: error: 'REQ_OP_FLUSH' undeclared (first use in this function)
else if (req_op(req) == REQ_OP_FLUSH)
^~~~~~~~~~~~
>> drivers/nvme/host/core.c:328:26: error: 'REQ_OP_DISCARD' undeclared (first use in this function)
else if (req_op(req) == REQ_OP_DISCARD)
^~~~~~~~~~~~~~
drivers/nvme/host/core.c: In function '__nvme_submit_sync_cmd':
drivers/nvme/host/core.c:356:9: error: implicit declaration of function 'blk_rq_map_kern' [-Werror=implicit-function-declaration]
ret = blk_rq_map_kern(q, req, buffer, bufflen, GFP_KERNEL);
^~~~~~~~~~~~~~~
drivers/nvme/host/core.c:361:2: error: implicit declaration of function 'blk_execute_rq' [-Werror=implicit-function-declaration]
blk_execute_rq(req->q, NULL, req, at_head);
^~~~~~~~~~~~~~
drivers/nvme/host/core.c: In function '__nvme_submit_user_cmd':
drivers/nvme/host/core.c:384:24: error: dereferencing pointer to incomplete type 'struct request_queue'
struct nvme_ns *ns = q->queuedata;
^~
drivers/nvme/host/core.c:399:9: error: implicit declaration of function 'blk_rq_map_user' [-Werror=implicit-function-declaration]
ret = blk_rq_map_user(q, req, NULL, ubuffer, bufflen,
^~~~~~~~~~~~~~~
drivers/nvme/host/core.c:407:6: error: dereferencing pointer to incomplete type 'struct bio'
bio->bi_bdev = bdget_disk(disk, 0);
^~
drivers/nvme/host/core.c:407:18: error: implicit declaration of function 'bdget_disk' [-Werror=implicit-function-declaration]
bio->bi_bdev = bdget_disk(disk, 0);
^~~~~~~~~~
drivers/nvme/host/core.c:423:9: error: implicit declaration of function 'copy_from_user' [-Werror=implicit-function-declaration]
if (copy_from_user(meta, meta_buffer,
^~~~~~~~~~~~~~
drivers/nvme/host/core.c:430:10: error: implicit declaration of function 'bio_integrity_alloc' [-Werror=implicit-function-declaration]
bip = bio_integrity_alloc(bio, GFP_KERNEL, 1);
^~~~~~~~~~~~~~~~~~~
drivers/nvme/host/core.c:430:8: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
bip = bio_integrity_alloc(bio, GFP_KERNEL, 1);
^
drivers/nvme/host/core.c:436:7: error: dereferencing pointer to incomplete type 'struct bio_integrity_payload'
bip->bip_iter.bi_size = meta_len;
^~
drivers/nvme/host/core.c:439:10: error: implicit declaration of function 'bio_integrity_add_page' [-Werror=implicit-function-declaration]
ret = bio_integrity_add_page(bio, virt_to_page(meta),
^~~~~~~~~~~~~~~~~~~~~~
drivers/nvme/host/core.c:453:7: error: implicit declaration of function 'copy_to_user' [-Werror=implicit-function-declaration]
if (copy_to_user(meta_buffer, meta, meta_len))
^~~~~~~~~~~~
drivers/nvme/host/core.c:461:4: error: implicit declaration of function 'bdput' [-Werror=implicit-function-declaration]
bdput(bio->bi_bdev);
^~~~~
drivers/nvme/host/core.c:462:3: error: implicit declaration of function 'blk_rq_unmap_user' [-Werror=implicit-function-declaration]
blk_rq_unmap_user(bio);
^~~~~~~~~~~~~~~~~
drivers/nvme/host/core.c: In function 'nvme_keep_alive':
drivers/nvme/host/core.c:508:2: error: implicit declaration of function 'blk_execute_rq_nowait' [-Werror=implicit-function-declaration]
blk_execute_rq_nowait(rq->q, NULL, rq, 0, nvme_keep_alive_end_io);
^~~~~~~~~~~~~~~~~~~~~
drivers/nvme/host/core.c: In function 'nvme_user_cmd':
drivers/nvme/host/core.c:771:7: error: implicit declaration of function 'put_user' [-Werror=implicit-function-declaration]
if (put_user(cmd.result, &ucmd->result))
^~~~~~~~
drivers/nvme/host/core.c: In function 'nvme_ioctl':
>> drivers/nvme/host/core.c:781:27: error: dereferencing pointer to incomplete type 'struct block_device'
struct nvme_ns *ns = bdev->bd_disk->private_data;
^~
drivers/nvme/host/core.c: In function 'nvme_getgeo':
drivers/nvme/host/core.c:836:19: error: implicit declaration of function 'get_capacity' [-Werror=implicit-function-declaration]
geo->cylinders = get_capacity(bdev->bd_disk) >> 11;
^~~~~~~~~~~~
drivers/nvme/host/core.c: In function 'nvme_config_discard':
drivers/nvme/host/core.c:875:27: error: implicit declaration of function 'queue_logical_block_size' [-Werror=implicit-function-declaration]
u32 logical_block_size = queue_logical_block_size(ns->queue);
^~~~~~~~~~~~~~~~~~~~~~~~
drivers/nvme/host/core.c:884:2: error: implicit declaration of function 'blk_queue_max_discard_sectors' [-Werror=implicit-function-declaration]
blk_queue_max_discard_sectors(ns->queue, UINT_MAX);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/nvme/host/core.c:885:2: error: implicit declaration of function 'queue_flag_set_unlocked' [-Werror=implicit-function-declaration]
queue_flag_set_unlocked(QUEUE_FLAG_DISCARD, ns->queue);
^~~~~~~~~~~~~~~~~~~~~~~
drivers/nvme/host/core.c:885:26: error: 'QUEUE_FLAG_DISCARD' undeclared (first use in this function)
queue_flag_set_unlocked(QUEUE_FLAG_DISCARD, ns->queue);
^~~~~~~~~~~~~~~~~~
drivers/nvme/host/core.c: In function 'nvme_revalidate_disk':
drivers/nvme/host/core.c:897:3: error: implicit declaration of function 'set_capacity' [-Werror=implicit-function-declaration]
set_capacity(disk, 0);
^~~~~~~~~~~~
drivers/nvme/host/core.c:901:12: error: implicit declaration of function 'disk_to_dev' [-Werror=implicit-function-declaration]
dev_warn(disk_to_dev(ns->disk), "%s: Identify failure\n",
^~~~~~~~~~~
drivers/nvme/host/core.c:901:12: warning: passing argument 1 of 'dev_warn' makes pointer from integer without a cast [-Wint-conversion]
In file included from include/linux/pci.h:30:0,
from drivers/nvme/host/nvme.h:18,
from drivers/nvme/host/core.c:32:
include/linux/device.h:1137:6: note: expected 'const struct device *' but argument is of type 'int'
void dev_warn(const struct device *dev, const char *fmt, ...);
^~~~~~~~
drivers/nvme/host/core.c:912:13: warning: passing argument 1 of 'dev_warn' makes pointer from integer without a cast [-Wint-conversion]
dev_warn(disk_to_dev(ns->disk),
^~~~~~~~~~~
In file included from include/linux/pci.h:30:0,
from drivers/nvme/host/nvme.h:18,
from drivers/nvme/host/core.c:32:
include/linux/device.h:1137:6: note: expected 'const struct device *' but argument is of type 'int'
void dev_warn(const struct device *dev, const char *fmt, ...);
^~~~~~~~
drivers/nvme/host/core.c:943:6: error: implicit declaration of function 'blk_get_integrity' [-Werror=implicit-function-declaration]
if (blk_get_integrity(disk) && (ns->pi_type != pi_type ||
^~~~~~~~~~~~~~~~~
drivers/nvme/host/core.c:947:3: error: implicit declaration of function 'blk_integrity_unregister' [-Werror=implicit-function-declaration]
blk_integrity_unregister(disk);
^~~~~~~~~~~~~~~~~~~~~~~~
drivers/nvme/host/core.c:950:2: error: implicit declaration of function 'blk_queue_logical_block_size' [-Werror=implicit-function-declaration]
blk_queue_logical_block_size(ns->queue, bs);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/nvme/host/core.c: At top level:
drivers/nvme/host/core.c:1059:21: error: variable 'nvme_fops' has initializer but incomplete type
static const struct block_device_operations nvme_fops = {
^~~~~~~~~~~~~~~~~~~~~~~
drivers/nvme/host/core.c:1060:2: error: unknown field 'owner' specified in initializer
.owner = THIS_MODULE,
^
In file included from include/linux/linkage.h:6:0,
from include/linux/kernel.h:6,
from include/linux/sched.h:17,
from include/linux/blkdev.h:4,
from drivers/nvme/host/core.c:15:
include/linux/export.h:36:21: warning: excess elements in struct initializer
#define THIS_MODULE ((struct module *)0)
^
drivers/nvme/host/core.c:1060:12: note: in expansion of macro 'THIS_MODULE'
.owner = THIS_MODULE,
^~~~~~~~~~~
include/linux/export.h:36:21: note: (near initialization for 'nvme_fops')
#define THIS_MODULE ((struct module *)0)
^
drivers/nvme/host/core.c:1060:12: note: in expansion of macro 'THIS_MODULE'
.owner = THIS_MODULE,
^~~~~~~~~~~
drivers/nvme/host/core.c:1061:2: error: unknown field 'ioctl' specified in initializer
.ioctl = nvme_ioctl,
^
drivers/nvme/host/core.c:1061:12: warning: excess elements in struct initializer
.ioctl = nvme_ioctl,
^~~~~~~~~~
drivers/nvme/host/core.c:1061:12: note: (near initialization for 'nvme_fops')
drivers/nvme/host/core.c:1062:2: error: unknown field 'compat_ioctl' specified in initializer
.compat_ioctl = nvme_compat_ioctl,
^
In file included from include/uapi/linux/posix_types.h:4:0,
from include/uapi/linux/types.h:13,
from include/linux/types.h:5,
from include/uapi/linux/capability.h:16,
from include/linux/capability.h:15,
from include/linux/sched.h:15,
from include/linux/blkdev.h:4,
from drivers/nvme/host/core.c:15:
include/linux/stddef.h:7:14: warning: excess elements in struct initializer
#define NULL ((void *)0)
^
drivers/nvme/host/core.c:815:27: note: in expansion of macro 'NULL'
#define nvme_compat_ioctl NULL
^~~~
drivers/nvme/host/core.c:1062:18: note: in expansion of macro 'nvme_compat_ioctl'
.compat_ioctl = nvme_compat_ioctl,
^~~~~~~~~~~~~~~~~
include/linux/stddef.h:7:14: note: (near initialization for 'nvme_fops')
#define NULL ((void *)0)
^
drivers/nvme/host/core.c:815:27: note: in expansion of macro 'NULL'
#define nvme_compat_ioctl NULL
^~~~
drivers/nvme/host/core.c:1062:18: note: in expansion of macro 'nvme_compat_ioctl'
.compat_ioctl = nvme_compat_ioctl,
^~~~~~~~~~~~~~~~~
drivers/nvme/host/core.c:1063:2: error: unknown field 'open' specified in initializer
.open = nvme_open,
^
drivers/nvme/host/core.c:1063:11: warning: excess elements in struct initializer
.open = nvme_open,
^~~~~~~~~
drivers/nvme/host/core.c:1063:11: note: (near initialization for 'nvme_fops')
drivers/nvme/host/core.c:1064:2: error: unknown field 'release' specified in initializer
.release = nvme_release,
^
drivers/nvme/host/core.c:1064:13: warning: excess elements in struct initializer
.release = nvme_release,
^~~~~~~~~~~~
drivers/nvme/host/core.c:1064:13: note: (near initialization for 'nvme_fops')
drivers/nvme/host/core.c:1065:2: error: unknown field 'getgeo' specified in initializer
.getgeo = nvme_getgeo,
^
drivers/nvme/host/core.c:1065:13: warning: excess elements in struct initializer
.getgeo = nvme_getgeo,
^~~~~~~~~~~
drivers/nvme/host/core.c:1065:13: note: (near initialization for 'nvme_fops')
drivers/nvme/host/core.c:1066:2: error: unknown field 'revalidate_disk' specified in initializer
.revalidate_disk= nvme_revalidate_disk,
^
drivers/nvme/host/core.c:1066:20: warning: excess elements in struct initializer
.revalidate_disk= nvme_revalidate_disk,
^~~~~~~~~~~~~~~~~~~~
drivers/nvme/host/core.c:1066:20: note: (near initialization for 'nvme_fops')
drivers/nvme/host/core.c:1067:2: error: unknown field 'pr_ops' specified in initializer
.pr_ops = &nvme_pr_ops,
^
drivers/nvme/host/core.c:1067:13: warning: excess elements in struct initializer
.pr_ops = &nvme_pr_ops,
^
drivers/nvme/host/core.c:1067:13: note: (near initialization for 'nvme_fops')
drivers/nvme/host/core.c: In function 'nvme_set_queue_limits':
drivers/nvme/host/core.c:1196:3: error: implicit declaration of function 'blk_queue_max_hw_sectors' [-Werror=implicit-function-declaration]
blk_queue_max_hw_sectors(q, ctrl->max_hw_sectors);
^~~~~~~~~~~~~~~~~~~~~~~~
drivers/nvme/host/core.c:1197:3: error: implicit declaration of function 'blk_queue_max_segments' [-Werror=implicit-function-declaration]
blk_queue_max_segments(q, min_t(u32, max_segments, USHRT_MAX));
^~~~~~~~~~~~~~~~~~~~~~
drivers/nvme/host/core.c:1200:3: error: implicit declaration of function 'blk_queue_chunk_sectors' [-Werror=implicit-function-declaration]
blk_queue_chunk_sectors(q, ctrl->stripe_size >> 9);
^~~~~~~~~~~~~~~~~~~~~~~
drivers/nvme/host/core.c:1201:2: error: implicit declaration of function 'blk_queue_virt_boundary' [-Werror=implicit-function-declaration]
blk_queue_virt_boundary(q, ctrl->page_size - 1);
^~~~~~~~~~~~~~~~~~~~~~~
drivers/nvme/host/core.c:1204:2: error: implicit declaration of function 'blk_queue_write_cache' [-Werror=implicit-function-declaration]
blk_queue_write_cache(q, vwc, vwc);
^~~~~~~~~~~~~~~~~~~~~
drivers/nvme/host/core.c: In function 'nvme_dev_open':
>> drivers/nvme/host/core.c:1303:17: error: implicit declaration of function 'iminor' [-Werror=implicit-function-declaration]
int instance = iminor(inode);
^~~~~~
>> drivers/nvme/host/core.c:1317:7: error: dereferencing pointer to incomplete type 'struct file'
file->private_data = ctrl;
^~
drivers/nvme/host/core.c: At top level:
>> drivers/nvme/host/core.c:1389:21: error: variable 'nvme_dev_fops' has initializer but incomplete type
static const struct file_operations nvme_dev_fops = {
^~~~~~~~~~~~~~~
drivers/nvme/host/core.c:1390:2: error: unknown field 'owner' specified in initializer
.owner = THIS_MODULE,
^
In file included from include/linux/linkage.h:6:0,
from include/linux/kernel.h:6,
from include/linux/sched.h:17,
from include/linux/blkdev.h:4,
from drivers/nvme/host/core.c:15:
include/linux/export.h:36:21: warning: excess elements in struct initializer
#define THIS_MODULE ((struct module *)0)
^
drivers/nvme/host/core.c:1390:12: note: in expansion of macro 'THIS_MODULE'
.owner = THIS_MODULE,
^~~~~~~~~~~
include/linux/export.h:36:21: note: (near initialization for 'nvme_dev_fops')
#define THIS_MODULE ((struct module *)0)
^
drivers/nvme/host/core.c:1390:12: note: in expansion of macro 'THIS_MODULE'
.owner = THIS_MODULE,
^~~~~~~~~~~
drivers/nvme/host/core.c:1391:2: error: unknown field 'open' specified in initializer
.open = nvme_dev_open,
^
drivers/nvme/host/core.c:1391:11: warning: excess elements in struct initializer
.open = nvme_dev_open,
^~~~~~~~~~~~~
drivers/nvme/host/core.c:1391:11: note: (near initialization for 'nvme_dev_fops')
drivers/nvme/host/core.c:1392:2: error: unknown field 'release' specified in initializer
.release = nvme_dev_release,
^
drivers/nvme/host/core.c:1392:13: warning: excess elements in struct initializer
.release = nvme_dev_release,
^~~~~~~~~~~~~~~~
drivers/nvme/host/core.c:1392:13: note: (near initialization for 'nvme_dev_fops')
>> drivers/nvme/host/core.c:1393:2: error: unknown field 'unlocked_ioctl' specified in initializer
.unlocked_ioctl = nvme_dev_ioctl,
^
drivers/nvme/host/core.c:1393:20: warning: excess elements in struct initializer
.unlocked_ioctl = nvme_dev_ioctl,
^~~~~~~~~~~~~~
drivers/nvme/host/core.c:1393:20: note: (near initialization for 'nvme_dev_fops')
drivers/nvme/host/core.c:1394:2: error: unknown field 'compat_ioctl' specified in initializer
.compat_ioctl = nvme_dev_ioctl,
^
drivers/nvme/host/core.c:1394:18: warning: excess elements in struct initializer
.compat_ioctl = nvme_dev_ioctl,
^~~~~~~~~~~~~~
drivers/nvme/host/core.c:1394:18: note: (near initialization for 'nvme_dev_fops')
drivers/nvme/host/core.c: In function 'wwid_show':
drivers/nvme/host/core.c:1425:23: error: implicit declaration of function 'dev_to_disk' [-Werror=implicit-function-declaration]
struct nvme_ns *ns = dev_to_disk(dev)->private_data;
^~~~~~~~~~~
drivers/nvme/host/core.c:1425:39: error: invalid type argument of '->' (have 'int')
struct nvme_ns *ns = dev_to_disk(dev)->private_data;
^~
drivers/nvme/host/core.c: In function 'uuid_show':
drivers/nvme/host/core.c:1449:39: error: invalid type argument of '->' (have 'int')
struct nvme_ns *ns = dev_to_disk(dev)->private_data;
^~
drivers/nvme/host/core.c: In function 'eui_show':
drivers/nvme/host/core.c:1457:39: error: invalid type argument of '->' (have 'int')
struct nvme_ns *ns = dev_to_disk(dev)->private_data;
^~
drivers/nvme/host/core.c: In function 'nsid_show':
drivers/nvme/host/core.c:1465:39: error: invalid type argument of '->' (have 'int')
struct nvme_ns *ns = dev_to_disk(dev)->private_data;
^~
drivers/nvme/host/core.c: In function 'nvme_ns_attrs_are_visible':
drivers/nvme/host/core.c:1482:39: error: invalid type argument of '->' (have 'int')
struct nvme_ns *ns = dev_to_disk(dev)->private_data;
^~
drivers/nvme/host/core.c: In function 'nvme_alloc_ns':
drivers/nvme/host/core.c:1655:26: error: 'QUEUE_FLAG_NONROT' undeclared (first use in this function)
queue_flag_set_unlocked(QUEUE_FLAG_NONROT, ns->queue);
^~~~~~~~~~~~~~~~~
drivers/nvme/host/core.c:1659:9: error: implicit declaration of function 'alloc_disk_node' [-Werror=implicit-function-declaration]
disk = alloc_disk_node(0, node);
^~~~~~~~~~~~~~~
drivers/nvme/host/core.c:1659:7: warning: assignment makes pointer from integer without a cast [-Wint-conversion]
disk = alloc_disk_node(0, node);
^
drivers/nvme/host/core.c:1675:16: error: 'GENHD_FL_EXT_DEVT' undeclared (first use in this function)
disk->flags = GENHD_FL_EXT_DEVT;
^~~~~~~~~~~~~~~~~
drivers/nvme/host/core.c:1689:2: error: implicit declaration of function 'device_add_disk' [-Werror=implicit-function-declaration]
device_add_disk(ctrl->device, ns->disk);
^~~~~~~~~~~~~~~
drivers/nvme/host/core.c:1690:47: error: invalid type argument of '->' (have 'int')
if (sysfs_create_group(&disk_to_dev(ns->disk)->kobj,
^~
drivers/nvme/host/core.c:1698:2: error: implicit declaration of function 'blk_cleanup_queue' [-Werror=implicit-function-declaration]
blk_cleanup_queue(ns->queue);
^~~~~~~~~~~~~~~~~
drivers/nvme/host/core.c: In function 'nvme_ns_remove':
drivers/nvme/host/core.c:1710:24: error: 'GENHD_FL_UP' undeclared (first use in this function)
if (ns->disk->flags & GENHD_FL_UP) {
^~~~~~~~~~~
drivers/nvme/host/core.c:1713:44: error: invalid type argument of '->' (have 'int')
sysfs_remove_group(&disk_to_dev(ns->disk)->kobj,
^~
drivers/nvme/host/core.c:1715:3: error: implicit declaration of function 'del_gendisk' [-Werror=implicit-function-declaration]
del_gendisk(ns->disk);
^~~~~~~~~~~
drivers/nvme/host/core.c: In function 'nvme_validate_ns':
drivers/nvme/host/core.c:1733:7: error: implicit declaration of function 'revalidate_disk' [-Werror=implicit-function-declaration]
if (revalidate_disk(ns->disk))
^~~~~~~~~~~~~~~
drivers/nvme/host/core.c: In function 'nvme_uninit_ctrl':
>> drivers/nvme/host/core.c:1948:29: error: implicit declaration of function 'MKDEV' [-Werror=implicit-function-declaration]
device_destroy(nvme_class, MKDEV(nvme_char_major, ctrl->instance));
^~~~~
drivers/nvme/host/core.c: In function 'nvme_kill_queues':
drivers/nvme/host/core.c:2041:3: error: implicit declaration of function 'blk_set_queue_dying' [-Werror=implicit-function-declaration]
blk_set_queue_dying(ns->queue);
^~~~~~~~~~~~~~~~~~~
drivers/nvme/host/core.c: In function 'nvme_stop_queues':
drivers/nvme/host/core.c:2056:3: error: implicit declaration of function 'queue_flag_set' [-Werror=implicit-function-declaration]
queue_flag_set(QUEUE_FLAG_STOPPED, ns->queue);
^~~~~~~~~~~~~~
drivers/nvme/host/core.c:2056:18: error: 'QUEUE_FLAG_STOPPED' undeclared (first use in this function)
queue_flag_set(QUEUE_FLAG_STOPPED, ns->queue);
^~~~~~~~~~~~~~~~~~
drivers/nvme/host/core.c: In function 'nvme_start_queues':
drivers/nvme/host/core.c:2072:3: error: implicit declaration of function 'queue_flag_clear_unlocked' [-Werror=implicit-function-declaration]
queue_flag_clear_unlocked(QUEUE_FLAG_STOPPED, ns->queue);
^~~~~~~~~~~~~~~~~~~~~~~~~
drivers/nvme/host/core.c:2072:29: error: 'QUEUE_FLAG_STOPPED' undeclared (first use in this function)
queue_flag_clear_unlocked(QUEUE_FLAG_STOPPED, ns->queue);
^~~~~~~~~~~~~~~~~~
drivers/nvme/host/core.c: In function 'nvme_core_init':
>> drivers/nvme/host/core.c:2084:11: error: implicit declaration of function '__register_chrdev' [-Werror=implicit-function-declaration]
result = __register_chrdev(nvme_char_major, 0, NVME_MINORS, "nvme",
^~~~~~~~~~~~~~~~~
>> drivers/nvme/host/core.c:35:29: error: 'MINORBITS' undeclared (first use in this function)
#define NVME_MINORS (1U << MINORBITS)
^
>> drivers/nvme/host/core.c:2084:49: note: in expansion of macro 'NVME_MINORS'
result = __register_chrdev(nvme_char_major, 0, NVME_MINORS, "nvme",
^~~~~~~~~~~
>> drivers/nvme/host/core.c:2100:2: error: implicit declaration of function '__unregister_chrdev' [-Werror=implicit-function-declaration]
__unregister_chrdev(nvme_char_major, 0, NVME_MINORS, "nvme");
^~~~~~~~~~~~~~~~~~~
drivers/nvme/host/core.c: In function 'nvme_core_exit':
>> drivers/nvme/host/core.c:35:29: error: 'MINORBITS' undeclared (first use in this function)
#define NVME_MINORS (1U << MINORBITS)
^
drivers/nvme/host/core.c:2107:42: note: in expansion of macro 'NVME_MINORS'
__unregister_chrdev(nvme_char_major, 0, NVME_MINORS, "nvme");
^~~~~~~~~~~
drivers/nvme/host/core.c: At top level:
drivers/nvme/host/core.c:1059:45: error: storage size of 'nvme_fops' isn't known
static const struct block_device_operations nvme_fops = {
^~~~~~~~~
>> drivers/nvme/host/core.c:1389:37: error: storage size of 'nvme_dev_fops' isn't known
static const struct file_operations nvme_dev_fops = {
^~~~~~~~~~~~~
cc1: some warnings being treated as errors
..

vim +/REQ_OP_DISCARD +217 drivers/nvme/host/nvme.h

1c63dc66 drivers/nvme/host/nvme.h Christoph Hellwig 2015-11-26 201 }
1c63dc66 drivers/nvme/host/nvme.h Christoph Hellwig 2015-11-26 202
f3ca80fc drivers/nvme/host/nvme.h Christoph Hellwig 2015-11-28 203 static inline int nvme_reset_subsystem(struct nvme_ctrl *ctrl)
f3ca80fc drivers/nvme/host/nvme.h Christoph Hellwig 2015-11-28 204 {
f3ca80fc drivers/nvme/host/nvme.h Christoph Hellwig 2015-11-28 205 if (!ctrl->subsystem)
f3ca80fc drivers/nvme/host/nvme.h Christoph Hellwig 2015-11-28 206 return -ENOTTY;
f3ca80fc drivers/nvme/host/nvme.h Christoph Hellwig 2015-11-28 207 return ctrl->ops->reg_write32(ctrl, NVME_REG_NSSR, 0x4E564D65);
f3ca80fc drivers/nvme/host/nvme.h Christoph Hellwig 2015-11-28 208 }
f3ca80fc drivers/nvme/host/nvme.h Christoph Hellwig 2015-11-28 209
f11bb3e2 drivers/block/nvme.h Christoph Hellwig 2015-10-03 210 static inline u64 nvme_block_nr(struct nvme_ns *ns, sector_t sector)
f11bb3e2 drivers/block/nvme.h Christoph Hellwig 2015-10-03 211 {
f11bb3e2 drivers/block/nvme.h Christoph Hellwig 2015-10-03 212 return (sector >> (ns->lba_shift - 9));
f11bb3e2 drivers/block/nvme.h Christoph Hellwig 2015-10-03 213 }
f11bb3e2 drivers/block/nvme.h Christoph Hellwig 2015-10-03 214
58b45602 drivers/nvme/host/nvme.h Ming Lin 2016-03-22 215 static inline unsigned nvme_map_len(struct request *rq)
58b45602 drivers/nvme/host/nvme.h Ming Lin 2016-03-22 216 {
c2df40df drivers/nvme/host/nvme.h Mike Christie 2016-06-05 @217 if (req_op(rq) == REQ_OP_DISCARD)
58b45602 drivers/nvme/host/nvme.h Ming Lin 2016-03-22 218 return sizeof(struct nvme_dsm_range);
58b45602 drivers/nvme/host/nvme.h Ming Lin 2016-03-22 219 else
58b45602 drivers/nvme/host/nvme.h Ming Lin 2016-03-22 220 return blk_rq_bytes(rq);
58b45602 drivers/nvme/host/nvme.h Ming Lin 2016-03-22 221 }
58b45602 drivers/nvme/host/nvme.h Ming Lin 2016-03-22 222
6904242d drivers/nvme/host/nvme.h Ming Lin 2016-04-25 223 static inline void nvme_cleanup_cmd(struct request *req)
6904242d drivers/nvme/host/nvme.h Ming Lin 2016-04-25 224 {
c2df40df drivers/nvme/host/nvme.h Mike Christie 2016-06-05 225 if (req_op(req) == REQ_OP_DISCARD)

:::::: The code at line 217 was first introduced by commit
:::::: c2df40dfb8c015211ec55f4b1dd0587f875c7b34 drivers: use req op accessor

:::::: TO: Mike Christie <mchristi@xxxxxxxxxx>
:::::: CC: Jens Axboe <axboe@xxxxxx>

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation

Attachment: .config.gz
Description: Binary data