Hi Linus, [auto build test ERROR on linus/master] [also build test ERROR on v4.10-rc8 next-20170215] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Linus-Walleij/mmc-core-make-block-layer-non-optional/20170215-181952 config: i386-randconfig-c0-02151724 (attached as .config) compiler: gcc-4.9 (Debian 4.9.4-2) 4.9.4 reproduce: # save the attached .config to linux build tree make ARCH=i386 All error/warnings (new ones prefixed by >>): In file included from drivers/mmc/core/block.c:48:0: drivers/mmc/core/queue.h: In function 'mmc_req_is_special': >> drivers/mmc/core/queue.h:7:3: error: implicit declaration of function 'req_op' [-Werror=implicit-function-declaration] (req_op(req) == REQ_OP_FLUSH || ^ >> drivers/mmc/core/queue.h:7:19: error: 'REQ_OP_FLUSH' undeclared (first use in this function) (req_op(req) == REQ_OP_FLUSH || ^ drivers/mmc/core/queue.h:7:19: note: each undeclared identifier is reported only once for each function it appears in >> drivers/mmc/core/queue.h:8:19: error: 'REQ_OP_DISCARD' undeclared (first use in this function) req_op(req) == REQ_OP_DISCARD || ^ >> drivers/mmc/core/queue.h:9:19: error: 'REQ_OP_SECURE_ERASE' undeclared (first use in this function) req_op(req) == REQ_OP_SECURE_ERASE); ^ drivers/mmc/core/block.c: In function 'mmc_blk_get': >> drivers/mmc/core/block.c:137:11: error: dereferencing pointer to incomplete type md = disk->private_data; ^ drivers/mmc/core/block.c: In function 'mmc_get_devidx': drivers/mmc/core/block.c:149:19: error: dereferencing pointer to incomplete type int devidx = disk->first_minor / perdev_minors; ^ drivers/mmc/core/block.c: In function 'mmc_blk_put': >> drivers/mmc/core/block.c:159:3: error: implicit declaration of function 'blk_cleanup_queue' [-Werror=implicit-function-declaration] blk_cleanup_queue(md->queue.queue); ^ >> drivers/mmc/core/block.c:165:3: error: implicit declaration of function 'put_disk' [-Werror=implicit-function-declaration] put_disk(md->disk); ^ drivers/mmc/core/block.c: In function 'power_ro_lock_show': >> drivers/mmc/core/block.c:175:9: error: implicit declaration of function 'dev_to_disk' [-Werror=implicit-function-declaration] struct mmc_blk_data *md = mmc_blk_get(dev_to_disk(dev)); ^ >> drivers/mmc/core/block.c:175:40: warning: passing argument 1 of 'mmc_blk_get' makes pointer from integer without a cast struct mmc_blk_data *md = mmc_blk_get(dev_to_disk(dev)); ^ drivers/mmc/core/block.c:132:29: note: expected 'struct gendisk *' but argument is of type 'int' static struct mmc_blk_data *mmc_blk_get(struct gendisk *disk) ^ drivers/mmc/core/block.c: In function 'power_ro_lock_store': drivers/mmc/core/block.c:205:19: warning: passing argument 1 of 'mmc_blk_get' makes pointer from integer without a cast md = mmc_blk_get(dev_to_disk(dev)); ^ drivers/mmc/core/block.c:132:29: note: expected 'struct gendisk *' but argument is of type 'int' static struct mmc_blk_data *mmc_blk_get(struct gendisk *disk) ^ In file included from include/linux/kernel.h:13:0, from include/linux/moduleparam.h:6, from drivers/mmc/core/block.c:20: drivers/mmc/core/block.c:215:84: error: dereferencing pointer to incomplete type pr_err("%s: Locking boot partition ro until next power on failed: %d\n", md->disk->disk_name, ret); ^ include/linux/printk.h:292:33: note: in definition of macro 'pr_err' printk(KERN_ERR pr_fmt(fmt), ##__VA_ARGS__) ^ drivers/mmc/core/block.c:223:12: error: dereferencing pointer to incomplete type md->disk->disk_name); ^ include/linux/printk.h:299:34: note: in definition of macro 'pr_info' printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__) ^ >> drivers/mmc/core/block.c:224:3: error: implicit declaration of function 'set_disk_ro' [-Werror=implicit-function-declaration] set_disk_ro(md->disk, 1); ^ In file included from include/linux/kernel.h:13:0, from include/linux/moduleparam.h:6, from drivers/mmc/core/block.c:20: drivers/mmc/core/block.c:228:81: error: dereferencing pointer to incomplete type pr_info("%s: Locking boot partition ro until next power on\n", part_md->disk->disk_name); ^ include/linux/printk.h:299:34: note: in definition of macro 'pr_info' printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__) ^ drivers/mmc/core/block.c: In function 'force_ro_show': drivers/mmc/core/block.c:241:40: warning: passing argument 1 of 'mmc_blk_get' makes pointer from integer without a cast struct mmc_blk_data *md = mmc_blk_get(dev_to_disk(dev)); ^ drivers/mmc/core/block.c:132:29: note: expected 'struct gendisk *' but argument is of type 'int' static struct mmc_blk_data *mmc_blk_get(struct gendisk *disk) ^ >> drivers/mmc/core/block.c:244:10: error: implicit declaration of function 'get_disk_ro' [-Werror=implicit-function-declaration] get_disk_ro(dev_to_disk(dev)) ^ ^ drivers/mmc/core/block.c: In function 'force_ro_store': drivers/mmc/core/block.c:255:40: warning: passing argument 1 of 'mmc_blk_get' makes pointer from integer without a cast struct mmc_blk_data *md = mmc_blk_get(dev_to_disk(dev)); ^ drivers/mmc/core/block.c:132:29: note: expected 'struct gendisk *' but argument is of type 'int' static struct mmc_blk_data *mmc_blk_get(struct gendisk *disk) ^ drivers/mmc/core/block.c: In function 'mmc_blk_open': >> drivers/mmc/core/block.c:277:4: error: implicit declaration of function 'check_disk_change' [-Werror=implicit-function-declaration] check_disk_change(bdev); ^ drivers/mmc/core/block.c: In function 'mmc_blk_release': drivers/mmc/core/block.c:292:32: error: dereferencing pointer to incomplete type struct mmc_blk_data *md = disk->private_data; ^ drivers/mmc/core/block.c: In function 'mmc_blk_getgeo': >> drivers/mmc/core/block.c:302:2: error: implicit declaration of function 'get_capacity' [-Werror=implicit-function-declaration] geo->cylinders = get_capacity(bdev->bd_disk) / (4 * 16); ^ In file included from include/asm-generic/ioctl.h:4:0, from arch/x86/include/uapi/asm/ioctl.h:1, from include/uapi/linux/ioctl.h:4, from arch/x86/include/uapi/asm/msr.h:7, from arch/x86/include/asm/msr.h:11, from arch/x86/include/asm/processor.h:20, from arch/x86/include/asm/cpufeature.h:4, from arch/x86/include/asm/thread_info.h:52, from include/linux/thread_info.h:25, from arch/x86/include/asm/preempt.h:6, from include/linux/preempt.h:59, from include/linux/spinlock.h:50, from include/linux/seqlock.h:35, from include/linux/time.h:5, from include/linux/stat.h:18, from include/linux/module.h:10, from drivers/mmc/core/block.c:21: drivers/mmc/core/block.c: In function 'mmc_blk_ioctl': >> include/uapi/linux/mmc/ioctl.h:59:27: error: 'MMC_BLOCK_MAJOR' undeclared (first use in this function) #define MMC_IOC_CMD _IOWR(MMC_BLOCK_MAJOR, 0, struct mmc_ioc_cmd) ^ include/uapi/asm-generic/ioctl.h:67:5: note: in definition of macro '_IOC' ((type) << _IOC_TYPESHIFT) | \ ^ >> include/uapi/linux/mmc/ioctl.h:59:21: note: in expansion of macro '_IOWR' #define MMC_IOC_CMD _IOWR(MMC_BLOCK_MAJOR, 0, struct mmc_ioc_cmd) ^ >> drivers/mmc/core/block.c:698:7: note: in expansion of macro 'MMC_IOC_CMD' case MMC_IOC_CMD: ^ drivers/mmc/core/block.c: At top level: >> drivers/mmc/core/block.c:717:21: error: variable 'mmc_bdops' has initializer but incomplete type static const struct block_device_operations mmc_bdops = { ^ >> drivers/mmc/core/block.c:718:2: error: unknown field 'open' specified in initializer .open = mmc_blk_open, ^ >> drivers/mmc/core/block.c:718:2: warning: excess elements in struct initializer drivers/mmc/core/block.c:718:2: warning: (near initialization for 'mmc_bdops') >> drivers/mmc/core/block.c:719:2: error: unknown field 'release' specified in initializer .release = mmc_blk_release, ^ drivers/mmc/core/block.c:719:2: warning: excess elements in struct initializer drivers/mmc/core/block.c:719:2: warning: (near initialization for 'mmc_bdops') -- In file included from drivers/mmc/core/queue.c:21:0: drivers/mmc/core/queue.h: In function 'mmc_req_is_special': >> drivers/mmc/core/queue.h:7:3: error: implicit declaration of function 'req_op' [-Werror=implicit-function-declaration] (req_op(req) == REQ_OP_FLUSH || ^ >> drivers/mmc/core/queue.h:7:19: error: 'REQ_OP_FLUSH' undeclared (first use in this function) (req_op(req) == REQ_OP_FLUSH || ^ drivers/mmc/core/queue.h:7:19: note: each undeclared identifier is reported only once for each function it appears in >> drivers/mmc/core/queue.h:8:19: error: 'REQ_OP_DISCARD' undeclared (first use in this function) req_op(req) == REQ_OP_DISCARD || ^ >> drivers/mmc/core/queue.h:9:19: error: 'REQ_OP_SECURE_ERASE' undeclared (first use in this function) req_op(req) == REQ_OP_SECURE_ERASE); ^ drivers/mmc/core/queue.h: At top level: >> drivers/mmc/core/queue.h:38:19: error: field 'thread_sem' has incomplete type struct semaphore thread_sem; ^ drivers/mmc/core/queue.c: In function 'mmc_prep_request': >> drivers/mmc/core/queue.c:31:26: error: dereferencing pointer to incomplete type struct mmc_queue *mq = q->queuedata; ^ drivers/mmc/core/queue.c:36:9: error: dereferencing pointer to incomplete type if (req->cmd_type != REQ_TYPE_FS && req_op(req) != REQ_OP_DISCARD && ^ >> drivers/mmc/core/queue.c:36:23: error: 'REQ_TYPE_FS' undeclared (first use in this function) if (req->cmd_type != REQ_TYPE_FS && req_op(req) != REQ_OP_DISCARD && ^ >> drivers/mmc/core/queue.c:36:53: error: 'REQ_OP_DISCARD' undeclared (first use in this function) if (req->cmd_type != REQ_TYPE_FS && req_op(req) != REQ_OP_DISCARD && ^ >> drivers/mmc/core/queue.c:37:21: error: 'REQ_OP_SECURE_ERASE' undeclared (first use in this function) req_op(req) != REQ_OP_SECURE_ERASE) { ^ >> drivers/mmc/core/queue.c:38:3: error: implicit declaration of function 'blk_dump_rq_flags' [-Werror=implicit-function-declaration] blk_dump_rq_flags(req, "MMC bad request"); ^ >> drivers/mmc/core/queue.c:39:10: error: 'BLKPREP_KILL' undeclared (first use in this function) return BLKPREP_KILL; ^ drivers/mmc/core/queue.c:45:5: error: dereferencing pointer to incomplete type req->rq_flags |= RQF_DONTPREP; ^ >> drivers/mmc/core/queue.c:45:19: error: 'RQF_DONTPREP' undeclared (first use in this function) req->rq_flags |= RQF_DONTPREP; ^ >> drivers/mmc/core/queue.c:47:9: error: 'BLKPREP_OK' undeclared (first use in this function) return BLKPREP_OK; ^ drivers/mmc/core/queue.c: In function 'mmc_queue_thread': >> drivers/mmc/core/queue.c:58:2: error: implicit declaration of function 'down' [-Werror=implicit-function-declaration] down(&mq->thread_sem); ^ drivers/mmc/core/queue.c:62:18: error: dereferencing pointer to incomplete type spin_lock_irq(q->queue_lock); ^ >> drivers/mmc/core/queue.c:64:3: error: implicit declaration of function 'blk_fetch_request' [-Werror=implicit-function-declaration] req = blk_fetch_request(q); ^ >> drivers/mmc/core/queue.c:64:7: warning: assignment makes pointer from integer without a cast req = blk_fetch_request(q); ^ drivers/mmc/core/queue.c:79:20: error: dereferencing pointer to incomplete type spin_unlock_irq(q->queue_lock); ^ >> drivers/mmc/core/queue.c:110:4: error: implicit declaration of function 'up' [-Werror=implicit-function-declaration] up(&mq->thread_sem); ^ drivers/mmc/core/queue.c: In function 'mmc_request_fn': drivers/mmc/core/queue.c:128:26: error: dereferencing pointer to incomplete type struct mmc_queue *mq = q->queuedata; ^ drivers/mmc/core/queue.c:133:15: warning: assignment makes pointer from integer without a cast while ((req = blk_fetch_request(q)) != NULL) { ^ drivers/mmc/core/queue.c:134:7: error: dereferencing pointer to incomplete type req->rq_flags |= RQF_QUIET; ^ >> drivers/mmc/core/queue.c:134:21: error: 'RQF_QUIET' undeclared (first use in this function) req->rq_flags |= RQF_QUIET; ^ >> drivers/mmc/core/queue.c:135:4: error: implicit declaration of function '__blk_end_request_all' [-Werror=implicit-function-declaration] __blk_end_request_all(req, -EIO); ^ drivers/mmc/core/queue.c: In function 'mmc_queue_setup_discard': >> drivers/mmc/core/queue.c:175:2: error: implicit declaration of function 'queue_flag_set_unlocked' [-Werror=implicit-function-declaration] queue_flag_set_unlocked(QUEUE_FLAG_DISCARD, q); ^ vim +/req_op +7 drivers/mmc/core/queue.h ^1da177e4 drivers/mmc/mmc_queue.h Linus Torvalds 2005-04-16 1 #ifndef MMC_QUEUE_H ^1da177e4 drivers/mmc/mmc_queue.h Linus Torvalds 2005-04-16 2 #define MMC_QUEUE_H ^1da177e4 drivers/mmc/mmc_queue.h Linus Torvalds 2005-04-16 3 c2df40dfb drivers/mmc/card/queue.h Mike Christie 2016-06-05 4 static inline bool mmc_req_is_special(struct request *req) c2df40dfb drivers/mmc/card/queue.h Mike Christie 2016-06-05 5 { 3a5e02ced drivers/mmc/card/queue.h Mike Christie 2016-06-05 6 return req && 7afafc8a4 drivers/mmc/card/queue.h Adrian Hunter 2016-08-16 @7 (req_op(req) == REQ_OP_FLUSH || 7afafc8a4 drivers/mmc/card/queue.h Adrian Hunter 2016-08-16 @8 req_op(req) == REQ_OP_DISCARD || 7afafc8a4 drivers/mmc/card/queue.h Adrian Hunter 2016-08-16 @9 req_op(req) == REQ_OP_SECURE_ERASE); c2df40dfb drivers/mmc/card/queue.h Mike Christie 2016-06-05 @10 } ef3a69c7a drivers/mmc/card/queue.h Seungwon Jeon 2013-03-14 11 ^1da177e4 drivers/mmc/mmc_queue.h Linus Torvalds 2005-04-16 12 struct request; ^1da177e4 drivers/mmc/mmc_queue.h Linus Torvalds 2005-04-16 13 struct task_struct; 7db3028e0 drivers/mmc/card/queue.h Linus Walleij 2016-11-18 14 struct mmc_blk_data; ^1da177e4 drivers/mmc/mmc_queue.h Linus Torvalds 2005-04-16 15 97868a2bd drivers/mmc/card/queue.h Per Forlin 2011-07-09 16 struct mmc_blk_request { 97868a2bd drivers/mmc/card/queue.h Per Forlin 2011-07-09 17 struct mmc_request mrq; 97868a2bd drivers/mmc/card/queue.h Per Forlin 2011-07-09 18 struct mmc_command sbc; 97868a2bd drivers/mmc/card/queue.h Per Forlin 2011-07-09 19 struct mmc_command cmd; 97868a2bd drivers/mmc/card/queue.h Per Forlin 2011-07-09 20 struct mmc_command stop; 97868a2bd drivers/mmc/card/queue.h Per Forlin 2011-07-09 21 struct mmc_data data; b8360a494 drivers/mmc/card/queue.h Adrian Hunter 2015-05-07 22 int retune_retry_done; 97868a2bd drivers/mmc/card/queue.h Per Forlin 2011-07-09 23 }; 97868a2bd drivers/mmc/card/queue.h Per Forlin 2011-07-09 24 97868a2bd drivers/mmc/card/queue.h Per Forlin 2011-07-09 25 struct mmc_queue_req { 97868a2bd drivers/mmc/card/queue.h Per Forlin 2011-07-09 26 struct request *req; 97868a2bd drivers/mmc/card/queue.h Per Forlin 2011-07-09 27 struct mmc_blk_request brq; 97868a2bd drivers/mmc/card/queue.h Per Forlin 2011-07-09 28 struct scatterlist *sg; 97868a2bd drivers/mmc/card/queue.h Per Forlin 2011-07-09 29 char *bounce_buf; 97868a2bd drivers/mmc/card/queue.h Per Forlin 2011-07-09 30 struct scatterlist *bounce_sg; 97868a2bd drivers/mmc/card/queue.h Per Forlin 2011-07-09 31 unsigned int bounce_sg_len; ee8a43a51 drivers/mmc/card/queue.h Per Forlin 2011-07-01 32 struct mmc_async_req mmc_active; 97868a2bd drivers/mmc/card/queue.h Per Forlin 2011-07-09 33 }; 97868a2bd drivers/mmc/card/queue.h Per Forlin 2011-07-09 34 ^1da177e4 drivers/mmc/mmc_queue.h Linus Torvalds 2005-04-16 35 struct mmc_queue { ^1da177e4 drivers/mmc/mmc_queue.h Linus Torvalds 2005-04-16 36 struct mmc_card *card; 87598a2bd drivers/mmc/mmc_queue.h Christoph Hellwig 2006-11-13 37 struct task_struct *thread; ^1da177e4 drivers/mmc/mmc_queue.h Linus Torvalds 2005-04-16 @38 struct semaphore thread_sem; ^1da177e4 drivers/mmc/mmc_queue.h Linus Torvalds 2005-04-16 39 unsigned int flags; 2220eedfd drivers/mmc/card/queue.h Konstantin Dorfman 2013-01-14 40 #define MMC_QUEUE_SUSPENDED (1 << 0) 2220eedfd drivers/mmc/card/queue.h Konstantin Dorfman 2013-01-14 41 #define MMC_QUEUE_NEW_REQUEST (1 << 1) :::::: The code at line 7 was first introduced by commit :::::: 7afafc8a44bf0ab841b17d450b02aedb3a138985 block: Fix secure erase :::::: TO: Adrian Hunter <adrian.hunter@xxxxxxxxx> :::::: 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: application/gzip