Re: [PATCH] mmc: core: make block layer non-optional

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux