Message ID | 20210309181533.231573-1-willy@infradead.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | include: Remove pagemap.h from blkdev.h | expand |
Hi "Matthew, Thank you for the patch! Yet something to improve: [auto build test ERROR on block/for-next] [also build test ERROR on linus/master v5.12-rc2 next-20210309] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch] url: https://github.com/0day-ci/linux/commits/Matthew-Wilcox-Oracle/include-Remove-pagemap-h-from-blkdev-h/20210310-021720 base: https://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git for-next config: powerpc64-randconfig-m031-20210309 (attached as .config) compiler: powerpc-linux-gcc (GCC) 9.3.0 reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # https://github.com/0day-ci/linux/commit/b47f527df5ad6c9ece259086b85bf4f0dfd27025 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review Matthew-Wilcox-Oracle/include-Remove-pagemap-h-from-blkdev-h/20210310-021720 git checkout b47f527df5ad6c9ece259086b85bf4f0dfd27025 # save the attached .config to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=powerpc64 If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com> All error/warnings (new ones prefixed by >>): In file included from include/linux/suspend.h:5, from arch/powerpc/kernel/asm-offsets.c:23: include/linux/swap.h: In function 'find_get_incore_page': >> include/linux/swap.h:578:9: error: implicit declaration of function 'find_get_page'; did you mean 'find_get_pid'? [-Werror=implicit-function-declaration] 578 | return find_get_page(mapping, index); | ^~~~~~~~~~~~~ | find_get_pid >> include/linux/swap.h:578:9: warning: returning 'int' from a function with return type 'struct page *' makes pointer from integer without a cast [-Wint-conversion] 578 | return find_get_page(mapping, index); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ cc1: some warnings being treated as errors -- In file included from include/linux/suspend.h:5, from arch/powerpc/kernel/asm-offsets.c:23: include/linux/swap.h: In function 'find_get_incore_page': >> include/linux/swap.h:578:9: error: implicit declaration of function 'find_get_page'; did you mean 'find_get_pid'? [-Werror=implicit-function-declaration] 578 | return find_get_page(mapping, index); | ^~~~~~~~~~~~~ | find_get_pid >> include/linux/swap.h:578:9: warning: returning 'int' from a function with return type 'struct page *' makes pointer from integer without a cast [-Wint-conversion] 578 | return find_get_page(mapping, index); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ cc1: some warnings being treated as errors make[2]: *** [scripts/Makefile.build:116: arch/powerpc/kernel/asm-offsets.s] Error 1 make[2]: Target '__build' not remade because of errors. make[1]: *** [Makefile:1233: prepare0] Error 2 make[1]: Target 'modules_prepare' not remade because of errors. make: *** [Makefile:215: __sub-make] Error 2 make: Target 'modules_prepare' not remade because of errors. -- In file included from include/linux/suspend.h:5, from arch/powerpc/kernel/asm-offsets.c:23: include/linux/swap.h: In function 'find_get_incore_page': >> include/linux/swap.h:578:9: error: implicit declaration of function 'find_get_page'; did you mean 'find_get_pid'? [-Werror=implicit-function-declaration] 578 | return find_get_page(mapping, index); | ^~~~~~~~~~~~~ | find_get_pid >> include/linux/swap.h:578:9: warning: returning 'int' from a function with return type 'struct page *' makes pointer from integer without a cast [-Wint-conversion] 578 | return find_get_page(mapping, index); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ cc1: some warnings being treated as errors make[2]: *** [scripts/Makefile.build:116: arch/powerpc/kernel/asm-offsets.s] Error 1 make[2]: Target '__build' not remade because of errors. make[1]: *** [Makefile:1233: prepare0] Error 2 make[1]: Target 'prepare' not remade because of errors. make: *** [Makefile:215: __sub-make] Error 2 make: Target 'prepare' not remade because of errors. vim +578 include/linux/swap.h bd96b9eb7cfd6a Con Kolivas 2006-06-23 574 61ef1865570452 Matthew Wilcox (Oracle 2020-10-13 575) static inline 61ef1865570452 Matthew Wilcox (Oracle 2020-10-13 576) struct page *find_get_incore_page(struct address_space *mapping, pgoff_t index) 61ef1865570452 Matthew Wilcox (Oracle 2020-10-13 577) { 61ef1865570452 Matthew Wilcox (Oracle 2020-10-13 @578) return find_get_page(mapping, index); 61ef1865570452 Matthew Wilcox (Oracle 2020-10-13 579) } 61ef1865570452 Matthew Wilcox (Oracle 2020-10-13 580) --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
On Tue, Mar 9, 2021 at 7:15 PM Matthew Wilcox (Oracle) <willy@infradead.org> wrote: > > My UEK-derived config has 1030 files depending on pagemap.h before > this change. Afterwards, just 240 files need to be rebuilt when I > touch pagemap.h. I think blkdev.h is probably included too widely, > but untangling that dependency is harder and this solves my problem. > x86 allmodconfig builds, but there may be implicit include problems > on other architectures. > > Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org> Good catch! With the build regression fixed (I suppose you now need to include pagemap.h in swap.h): Acked-by: Arnd Bergmann <arnd@arndb.de>
diff --git a/block/blk-settings.c b/block/blk-settings.c index b4aa2f37fab6..976085a44fb8 100644 --- a/block/blk-settings.c +++ b/block/blk-settings.c @@ -7,6 +7,7 @@ #include <linux/init.h> #include <linux/bio.h> #include <linux/blkdev.h> +#include <linux/pagemap.h> #include <linux/memblock.h> /* for max_pfn/max_low_pfn */ #include <linux/gcd.h> #include <linux/lcm.h> diff --git a/drivers/block/brd.c b/drivers/block/brd.c index 18bf99906662..2a5a1933826b 100644 --- a/drivers/block/brd.c +++ b/drivers/block/brd.c @@ -18,6 +18,7 @@ #include <linux/bio.h> #include <linux/highmem.h> #include <linux/mutex.h> +#include <linux/pagemap.h> #include <linux/radix-tree.h> #include <linux/fs.h> #include <linux/slab.h> diff --git a/drivers/block/loop.c b/drivers/block/loop.c index a370cde3ddd4..d58d68f3c7cd 100644 --- a/drivers/block/loop.c +++ b/drivers/block/loop.c @@ -53,6 +53,7 @@ #include <linux/moduleparam.h> #include <linux/sched.h> #include <linux/fs.h> +#include <linux/pagemap.h> #include <linux/file.h> #include <linux/stat.h> #include <linux/errno.h> diff --git a/drivers/md/bcache/super.c b/drivers/md/bcache/super.c index 71691f32959b..f154c89d1326 100644 --- a/drivers/md/bcache/super.c +++ b/drivers/md/bcache/super.c @@ -16,6 +16,7 @@ #include "features.h" #include <linux/blkdev.h> +#include <linux/pagemap.h> #include <linux/debugfs.h> #include <linux/genhd.h> #include <linux/idr.h> diff --git a/drivers/nvdimm/btt.c b/drivers/nvdimm/btt.c index 41aa1f01fc07..18a267d5073f 100644 --- a/drivers/nvdimm/btt.c +++ b/drivers/nvdimm/btt.c @@ -6,6 +6,7 @@ #include <linux/highmem.h> #include <linux/debugfs.h> #include <linux/blkdev.h> +#include <linux/pagemap.h> #include <linux/module.h> #include <linux/device.h> #include <linux/mutex.h> diff --git a/drivers/nvdimm/pmem.c b/drivers/nvdimm/pmem.c index b8a85bfb2e95..16760b237229 100644 --- a/drivers/nvdimm/pmem.c +++ b/drivers/nvdimm/pmem.c @@ -8,6 +8,7 @@ */ #include <linux/blkdev.h> +#include <linux/pagemap.h> #include <linux/hdreg.h> #include <linux/init.h> #include <linux/platform_device.h> diff --git a/drivers/scsi/scsicam.c b/drivers/scsi/scsicam.c index f1553a453616..0ffdb8f2995f 100644 --- a/drivers/scsi/scsicam.c +++ b/drivers/scsi/scsicam.c @@ -17,6 +17,7 @@ #include <linux/genhd.h> #include <linux/kernel.h> #include <linux/blkdev.h> +#include <linux/pagemap.h> #include <linux/msdos_partition.h> #include <asm/unaligned.h> diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h index c032cfe133c7..1e2a95599390 100644 --- a/include/linux/blkdev.h +++ b/include/linux/blkdev.h @@ -11,7 +11,6 @@ #include <linux/minmax.h> #include <linux/timer.h> #include <linux/workqueue.h> -#include <linux/pagemap.h> #include <linux/backing-dev-defs.h> #include <linux/wait.h> #include <linux/mempool.h>
My UEK-derived config has 1030 files depending on pagemap.h before this change. Afterwards, just 240 files need to be rebuilt when I touch pagemap.h. I think blkdev.h is probably included too widely, but untangling that dependency is harder and this solves my problem. x86 allmodconfig builds, but there may be implicit include problems on other architectures. Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org> --- block/blk-settings.c | 1 + drivers/block/brd.c | 1 + drivers/block/loop.c | 1 + drivers/md/bcache/super.c | 1 + drivers/nvdimm/btt.c | 1 + drivers/nvdimm/pmem.c | 1 + drivers/scsi/scsicam.c | 1 + include/linux/blkdev.h | 1 - 8 files changed, 7 insertions(+), 1 deletion(-)