From: kbuild test robot <lkp@intel.com>
To: Linus Walleij <linus.walleij@linaro.org>
Cc: kbuild-all@01.org, linux-mmc@vger.kernel.org,
Ulf Hansson <ulf.hansson@linaro.org>,
Adrian Hunter <adrian.hunter@intel.com>,
Paolo Valente <paolo.valente@linaro.org>,
linux-block@vger.kernel.org, Jens Axboe <axboe@kernel.dk>,
Christoph Hellwig <hch@lst.de>, Arnd Bergmann <arnd@arndb.de>,
Linus Walleij <linus.walleij@linaro.org>
Subject: Re: [PATCH] mmc: core: make block layer non-optional
Date: Wed, 15 Feb 2017 20:03:49 +0800 [thread overview]
Message-ID: <201702152035.gTCswI0S%fengguang.wu@intel.com> (raw)
In-Reply-To: <20170215095353.23888-1-linus.walleij@linaro.org>
[-- Attachment #1: Type: text/plain, Size: 18530 bytes --]
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@intel.com>
:::::: CC: Jens Axboe <axboe@fb.com>
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 23791 bytes --]
next prev parent reply other threads:[~2017-02-15 12:03 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-02-15 9:53 [PATCH] mmc: core: make block layer non-optional Linus Walleij
2017-02-15 10:00 ` Johannes Thumshirn
2017-02-15 10:13 ` Arnd Bergmann
2017-02-15 12:03 ` kbuild test robot [this message]
2017-02-15 12:19 ` kbuild test robot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=201702152035.gTCswI0S%fengguang.wu@intel.com \
--to=lkp@intel.com \
--cc=adrian.hunter@intel.com \
--cc=arnd@arndb.de \
--cc=axboe@kernel.dk \
--cc=hch@lst.de \
--cc=kbuild-all@01.org \
--cc=linus.walleij@linaro.org \
--cc=linux-block@vger.kernel.org \
--cc=linux-mmc@vger.kernel.org \
--cc=paolo.valente@linaro.org \
--cc=ulf.hansson@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox