Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756056AbcJ2LGj (ORCPT ); Sat, 29 Oct 2016 07:06:39 -0400 Received: from mga02.intel.com ([134.134.136.20]:4050 "EHLO mga02.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753162AbcJ2LGf (ORCPT ); Sat, 29 Oct 2016 07:06:35 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.31,563,1473145200"; d="gz'50?scan'50,208,50";a="25157313" Date: Sat, 29 Oct 2016 19:06:24 +0800 From: kbuild test robot To: Ming Lei Cc: kbuild-all@01.org, Jens Axboe , linux-kernel@vger.kernel.org, linux-block@vger.kernel.org, linux-fsdevel@vger.kernel.org, Christoph Hellwig , "Kirill A . Shutemov" , Ming Lei , Johannes Berg Subject: Re: [PATCH 32/60] block: implement sp version of bvec iterator helpers Message-ID: <201610291909.okAX73DP%fengguang.wu@intel.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="mYCpIKhGyMATD0i+" Content-Disposition: inline In-Reply-To: <1477728600-12938-33-git-send-email-tom.leiming@gmail.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-SA-Exim-Connect-IP: X-SA-Exim-Mail-From: fengguang.wu@intel.com X-SA-Exim-Scanned: No (on bee); SAEximRunCond expanded to false Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 41758 Lines: 624 --mYCpIKhGyMATD0i+ Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Hi Ming, [auto build test ERROR on linus/master] [also build test ERROR on v4.9-rc2 next-20161028] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] [Suggest to use git(>=2.9.0) format-patch --base= (or --base=auto for convenience) to record what (public, well-known) commit your patch series was built on] [Check https://git-scm.com/docs/git-format-patch for more information] url: https://github.com/0day-ci/linux/commits/Ming-Lei/block-support-multipage-bvec/20161029-163910 config: sparc-defconfig (attached as .config) compiler: sparc-linux-gcc (GCC) 6.2.0 reproduce: wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree make.cross ARCH=sparc All error/warnings (new ones prefixed by >>): In file included from arch/sparc/include/asm/oplib.h:6:0, from arch/sparc/include/asm/pgtable_32.h:21, from arch/sparc/include/asm/pgtable.h:6, from include/linux/mm.h:68, from include/linux/bvec.h:25, from include/linux/blk_types.h:9, from include/linux/fs.h:31, from include/linux/proc_fs.h:8, from arch/sparc/include/asm/prom.h:22, from include/linux/of.h:232, from arch/sparc/include/asm/openprom.h:14, from arch/sparc/include/asm/device.h:9, from include/linux/device.h:30, from include/linux/node.h:17, from include/linux/cpu.h:16, from include/linux/stop_machine.h:4, from kernel/sched/sched.h:10, from kernel/sched/loadavg.c:11: >> arch/sparc/include/asm/oplib_32.h:105:39: warning: 'struct linux_prom_registers' declared inside parameter list will not be visible outside of this definition or declaration int prom_startcpu(int cpunode, struct linux_prom_registers *context_table, ^~~~~~~~~~~~~~~~~~~~ arch/sparc/include/asm/oplib_32.h:168:36: warning: 'struct linux_prom_registers' declared inside parameter list will not be visible outside of this definition or declaration void prom_apply_obio_ranges(struct linux_prom_registers *obioregs, int nregs); ^~~~~~~~~~~~~~~~~~~~ arch/sparc/include/asm/oplib_32.h:172:18: warning: 'struct linux_prom_registers' declared inside parameter list will not be visible outside of this definition or declaration struct linux_prom_registers *sbusregs, int nregs); ^~~~~~~~~~~~~~~~~~~~ -- In file included from arch/sparc/include/asm/oplib.h:6:0, from arch/sparc/include/asm/pgtable_32.h:21, from arch/sparc/include/asm/pgtable.h:6, from include/linux/mm.h:68, from include/linux/bvec.h:25, from include/linux/blk_types.h:9, from include/linux/fs.h:31, from include/linux/proc_fs.h:8, from arch/sparc/include/asm/prom.h:22, from include/linux/of.h:232, from arch/sparc/include/asm/openprom.h:14, from arch/sparc/prom/mp.c:12: >> arch/sparc/include/asm/oplib_32.h:105:39: warning: 'struct linux_prom_registers' declared inside parameter list will not be visible outside of this definition or declaration int prom_startcpu(int cpunode, struct linux_prom_registers *context_table, ^~~~~~~~~~~~~~~~~~~~ arch/sparc/include/asm/oplib_32.h:168:36: warning: 'struct linux_prom_registers' declared inside parameter list will not be visible outside of this definition or declaration void prom_apply_obio_ranges(struct linux_prom_registers *obioregs, int nregs); ^~~~~~~~~~~~~~~~~~~~ arch/sparc/include/asm/oplib_32.h:172:18: warning: 'struct linux_prom_registers' declared inside parameter list will not be visible outside of this definition or declaration struct linux_prom_registers *sbusregs, int nregs); ^~~~~~~~~~~~~~~~~~~~ >> arch/sparc/prom/mp.c:23:1: error: conflicting types for 'prom_startcpu' prom_startcpu(int cpunode, struct linux_prom_registers *ctable_reg, int ctx, char *pc) ^~~~~~~~~~~~~ In file included from arch/sparc/include/asm/oplib.h:6:0, from arch/sparc/include/asm/pgtable_32.h:21, from arch/sparc/include/asm/pgtable.h:6, from include/linux/mm.h:68, from include/linux/bvec.h:25, from include/linux/blk_types.h:9, from include/linux/fs.h:31, from include/linux/proc_fs.h:8, from arch/sparc/include/asm/prom.h:22, from include/linux/of.h:232, from arch/sparc/include/asm/openprom.h:14, from arch/sparc/prom/mp.c:12: arch/sparc/include/asm/oplib_32.h:105:5: note: previous declaration of 'prom_startcpu' was here int prom_startcpu(int cpunode, struct linux_prom_registers *context_table, ^~~~~~~~~~~~~ -- In file included from arch/sparc/include/asm/oplib.h:6:0, from arch/sparc/include/asm/pgtable_32.h:21, from arch/sparc/include/asm/pgtable.h:6, from include/linux/mm.h:68, from include/linux/bvec.h:25, from include/linux/blk_types.h:9, from include/linux/fs.h:31, from include/linux/proc_fs.h:8, from arch/sparc/include/asm/prom.h:22, from include/linux/of.h:232, from arch/sparc/include/asm/openprom.h:14, from arch/sparc/prom/ranges.c:11: >> arch/sparc/include/asm/oplib_32.h:105:39: warning: 'struct linux_prom_registers' declared inside parameter list will not be visible outside of this definition or declaration int prom_startcpu(int cpunode, struct linux_prom_registers *context_table, ^~~~~~~~~~~~~~~~~~~~ arch/sparc/include/asm/oplib_32.h:168:36: warning: 'struct linux_prom_registers' declared inside parameter list will not be visible outside of this definition or declaration void prom_apply_obio_ranges(struct linux_prom_registers *obioregs, int nregs); ^~~~~~~~~~~~~~~~~~~~ arch/sparc/include/asm/oplib_32.h:172:18: warning: 'struct linux_prom_registers' declared inside parameter list will not be visible outside of this definition or declaration struct linux_prom_registers *sbusregs, int nregs); ^~~~~~~~~~~~~~~~~~~~ >> arch/sparc/prom/ranges.c:57:6: error: conflicting types for 'prom_apply_obio_ranges' void prom_apply_obio_ranges(struct linux_prom_registers *regs, int nregs) ^~~~~~~~~~~~~~~~~~~~~~ In file included from arch/sparc/include/asm/oplib.h:6:0, from arch/sparc/include/asm/pgtable_32.h:21, from arch/sparc/include/asm/pgtable.h:6, from include/linux/mm.h:68, from include/linux/bvec.h:25, from include/linux/blk_types.h:9, from include/linux/fs.h:31, from include/linux/proc_fs.h:8, from arch/sparc/include/asm/prom.h:22, from include/linux/of.h:232, from arch/sparc/include/asm/openprom.h:14, from arch/sparc/prom/ranges.c:11: arch/sparc/include/asm/oplib_32.h:168:6: note: previous declaration of 'prom_apply_obio_ranges' was here void prom_apply_obio_ranges(struct linux_prom_registers *obioregs, int nregs); ^~~~~~~~~~~~~~~~~~~~~~ In file included from include/linux/linkage.h:6:0, from include/linux/kernel.h:6, from include/linux/list.h:8, from include/linux/module.h:9, from arch/sparc/prom/ranges.c:9: arch/sparc/prom/ranges.c:62:15: error: conflicting types for 'prom_apply_obio_ranges' EXPORT_SYMBOL(prom_apply_obio_ranges); ^ include/linux/export.h:58:21: note: in definition of macro '___EXPORT_SYMBOL' extern typeof(sym) sym; \ ^~~ >> arch/sparc/prom/ranges.c:62:1: note: in expansion of macro 'EXPORT_SYMBOL' EXPORT_SYMBOL(prom_apply_obio_ranges); ^~~~~~~~~~~~~ In file included from arch/sparc/include/asm/oplib.h:6:0, from arch/sparc/include/asm/pgtable_32.h:21, from arch/sparc/include/asm/pgtable.h:6, from include/linux/mm.h:68, from include/linux/bvec.h:25, from include/linux/blk_types.h:9, from include/linux/fs.h:31, from include/linux/proc_fs.h:8, from arch/sparc/include/asm/prom.h:22, from include/linux/of.h:232, from arch/sparc/include/asm/openprom.h:14, from arch/sparc/prom/ranges.c:11: arch/sparc/include/asm/oplib_32.h:168:6: note: previous declaration of 'prom_apply_obio_ranges' was here void prom_apply_obio_ranges(struct linux_prom_registers *obioregs, int nregs); ^~~~~~~~~~~~~~~~~~~~~~ >> arch/sparc/prom/ranges.c:87:6: error: conflicting types for 'prom_apply_generic_ranges' void prom_apply_generic_ranges(phandle node, phandle parent, ^~~~~~~~~~~~~~~~~~~~~~~~~ In file included from arch/sparc/include/asm/oplib.h:6:0, from arch/sparc/include/asm/pgtable_32.h:21, from arch/sparc/include/asm/pgtable.h:6, from include/linux/mm.h:68, from include/linux/bvec.h:25, from include/linux/blk_types.h:9, from include/linux/fs.h:31, from include/linux/proc_fs.h:8, from arch/sparc/include/asm/prom.h:22, from include/linux/of.h:232, from arch/sparc/include/asm/openprom.h:14, from arch/sparc/prom/ranges.c:11: arch/sparc/include/asm/oplib_32.h:171:6: note: previous declaration of 'prom_apply_generic_ranges' was here void prom_apply_generic_ranges(phandle node, phandle parent, ^~~~~~~~~~~~~~~~~~~~~~~~~ -- In file included from include/linux/bvec.h:25:0, from include/linux/blk_types.h:9, from include/linux/fs.h:31, from include/linux/proc_fs.h:8, from arch/sparc/include/asm/prom.h:22, from include/linux/of.h:232, from arch/sparc/include/asm/openprom.h:14, from arch/sparc/include/asm/oplib_32.h:11, from arch/sparc/include/asm/oplib.h:6, from arch/sparc/include/asm/pgtable_32.h:21, from arch/sparc/include/asm/pgtable.h:6, from mm/init-mm.c:9: include/linux/mm.h: In function 'is_vmalloc_addr': >> include/linux/mm.h:486:17: error: 'VMALLOC_START' undeclared (first use in this function) return addr >= VMALLOC_START && addr < VMALLOC_END; ^~~~~~~~~~~~~ include/linux/mm.h:486:17: note: each undeclared identifier is reported only once for each function it appears in >> include/linux/mm.h:486:41: error: 'VMALLOC_END' undeclared (first use in this function) return addr >= VMALLOC_START && addr < VMALLOC_END; ^~~~~~~~~~~ include/linux/mm.h: In function 'maybe_mkwrite': >> include/linux/mm.h:624:9: error: implicit declaration of function 'pte_mkwrite' [-Werror=implicit-function-declaration] pte = pte_mkwrite(pte); ^~~~~~~~~~~ In file included from include/linux/bvec.h:25:0, from include/linux/blk_types.h:9, from include/linux/fs.h:31, from include/linux/proc_fs.h:8, from arch/sparc/include/asm/prom.h:22, from include/linux/of.h:232, from arch/sparc/include/asm/openprom.h:14, from arch/sparc/include/asm/oplib_32.h:11, from arch/sparc/include/asm/oplib.h:6, from arch/sparc/include/asm/pgtable_32.h:21, from arch/sparc/include/asm/pgtable.h:6, from mm/init-mm.c:9: include/linux/mm.h: In function 'pgtable_init': >> include/linux/mm.h:1674:2: error: implicit declaration of function 'pgtable_cache_init' [-Werror=implicit-function-declaration] pgtable_cache_init(); ^~~~~~~~~~~~~~~~~~ In file included from arch/sparc/include/asm/pgtable.h:6:0, from mm/init-mm.c:9: arch/sparc/include/asm/pgtable_32.h: At top level: >> arch/sparc/include/asm/pgtable_32.h:245:21: error: conflicting types for 'pte_mkwrite' static inline pte_t pte_mkwrite(pte_t pte) ^~~~~~~~~~~ In file included from include/linux/bvec.h:25:0, from include/linux/blk_types.h:9, from include/linux/fs.h:31, from include/linux/proc_fs.h:8, from arch/sparc/include/asm/prom.h:22, from include/linux/of.h:232, from arch/sparc/include/asm/openprom.h:14, from arch/sparc/include/asm/oplib_32.h:11, from arch/sparc/include/asm/oplib.h:6, from arch/sparc/include/asm/pgtable_32.h:21, from arch/sparc/include/asm/pgtable.h:6, from mm/init-mm.c:9: include/linux/mm.h:624:9: note: previous implicit declaration of 'pte_mkwrite' was here pte = pte_mkwrite(pte); ^~~~~~~~~~~ cc1: some warnings being treated as errors vim +/VMALLOC_START +486 include/linux/mm.h 0738c4bb8 Paul Mundt 2008-03-12 480 */ bb00a789e Yaowei Bai 2016-05-19 481 static inline bool is_vmalloc_addr(const void *x) 9e2779fa2 Christoph Lameter 2008-02-04 482 { 0738c4bb8 Paul Mundt 2008-03-12 483 #ifdef CONFIG_MMU 9e2779fa2 Christoph Lameter 2008-02-04 484 unsigned long addr = (unsigned long)x; 9e2779fa2 Christoph Lameter 2008-02-04 485 9e2779fa2 Christoph Lameter 2008-02-04 @486 return addr >= VMALLOC_START && addr < VMALLOC_END; 0738c4bb8 Paul Mundt 2008-03-12 487 #else bb00a789e Yaowei Bai 2016-05-19 488 return false; 8ca3ed87d David Howells 2008-02-23 489 #endif 0738c4bb8 Paul Mundt 2008-03-12 490 } 81ac3ad90 KAMEZAWA Hiroyuki 2009-09-22 491 #ifdef CONFIG_MMU 81ac3ad90 KAMEZAWA Hiroyuki 2009-09-22 492 extern int is_vmalloc_or_module_addr(const void *x); 81ac3ad90 KAMEZAWA Hiroyuki 2009-09-22 493 #else 934831d06 David Howells 2009-09-24 494 static inline int is_vmalloc_or_module_addr(const void *x) 81ac3ad90 KAMEZAWA Hiroyuki 2009-09-22 495 { 81ac3ad90 KAMEZAWA Hiroyuki 2009-09-22 496 return 0; 81ac3ad90 KAMEZAWA Hiroyuki 2009-09-22 497 } 81ac3ad90 KAMEZAWA Hiroyuki 2009-09-22 498 #endif 9e2779fa2 Christoph Lameter 2008-02-04 499 39f1f78d5 Al Viro 2014-05-06 500 extern void kvfree(const void *addr); 39f1f78d5 Al Viro 2014-05-06 501 53f9263ba Kirill A. Shutemov 2016-01-15 502 static inline atomic_t *compound_mapcount_ptr(struct page *page) 53f9263ba Kirill A. Shutemov 2016-01-15 503 { 53f9263ba Kirill A. Shutemov 2016-01-15 504 return &page[1].compound_mapcount; 53f9263ba Kirill A. Shutemov 2016-01-15 505 } 53f9263ba Kirill A. Shutemov 2016-01-15 506 53f9263ba Kirill A. Shutemov 2016-01-15 507 static inline int compound_mapcount(struct page *page) 53f9263ba Kirill A. Shutemov 2016-01-15 508 { 5f527c2b3 Andrea Arcangeli 2016-05-20 509 VM_BUG_ON_PAGE(!PageCompound(page), page); 53f9263ba Kirill A. Shutemov 2016-01-15 510 page = compound_head(page); 53f9263ba Kirill A. Shutemov 2016-01-15 511 return atomic_read(compound_mapcount_ptr(page)) + 1; 53f9263ba Kirill A. Shutemov 2016-01-15 512 } 53f9263ba Kirill A. Shutemov 2016-01-15 513 ccaafd7fd Joonsoo Kim 2015-02-10 514 /* 70b50f94f Andrea Arcangeli 2011-11-02 515 * The atomic page->_mapcount, starts from -1: so that transitions 70b50f94f Andrea Arcangeli 2011-11-02 516 * both from it and to it can be tracked, using atomic_inc_and_test 70b50f94f Andrea Arcangeli 2011-11-02 517 * and atomic_add_negative(-1). 70b50f94f Andrea Arcangeli 2011-11-02 518 */ 22b751c3d Mel Gorman 2013-02-22 519 static inline void page_mapcount_reset(struct page *page) 70b50f94f Andrea Arcangeli 2011-11-02 520 { 70b50f94f Andrea Arcangeli 2011-11-02 521 atomic_set(&(page)->_mapcount, -1); 70b50f94f Andrea Arcangeli 2011-11-02 522 } 70b50f94f Andrea Arcangeli 2011-11-02 523 b20ce5e03 Kirill A. Shutemov 2016-01-15 524 int __page_mapcount(struct page *page); b20ce5e03 Kirill A. Shutemov 2016-01-15 525 70b50f94f Andrea Arcangeli 2011-11-02 526 static inline int page_mapcount(struct page *page) 70b50f94f Andrea Arcangeli 2011-11-02 527 { 1d148e218 Wang, Yalin 2015-02-11 528 VM_BUG_ON_PAGE(PageSlab(page), page); 53f9263ba Kirill A. Shutemov 2016-01-15 529 b20ce5e03 Kirill A. Shutemov 2016-01-15 530 if (unlikely(PageCompound(page))) b20ce5e03 Kirill A. Shutemov 2016-01-15 531 return __page_mapcount(page); b20ce5e03 Kirill A. Shutemov 2016-01-15 532 return atomic_read(&page->_mapcount) + 1; 53f9263ba Kirill A. Shutemov 2016-01-15 533 } b20ce5e03 Kirill A. Shutemov 2016-01-15 534 b20ce5e03 Kirill A. Shutemov 2016-01-15 535 #ifdef CONFIG_TRANSPARENT_HUGEPAGE b20ce5e03 Kirill A. Shutemov 2016-01-15 536 int total_mapcount(struct page *page); 6d0a07edd Andrea Arcangeli 2016-05-12 537 int page_trans_huge_mapcount(struct page *page, int *total_mapcount); b20ce5e03 Kirill A. Shutemov 2016-01-15 538 #else b20ce5e03 Kirill A. Shutemov 2016-01-15 539 static inline int total_mapcount(struct page *page) b20ce5e03 Kirill A. Shutemov 2016-01-15 540 { b20ce5e03 Kirill A. Shutemov 2016-01-15 541 return page_mapcount(page); 70b50f94f Andrea Arcangeli 2011-11-02 542 } 6d0a07edd Andrea Arcangeli 2016-05-12 543 static inline int page_trans_huge_mapcount(struct page *page, 6d0a07edd Andrea Arcangeli 2016-05-12 544 int *total_mapcount) 6d0a07edd Andrea Arcangeli 2016-05-12 545 { 6d0a07edd Andrea Arcangeli 2016-05-12 546 int mapcount = page_mapcount(page); 6d0a07edd Andrea Arcangeli 2016-05-12 547 if (total_mapcount) 6d0a07edd Andrea Arcangeli 2016-05-12 548 *total_mapcount = mapcount; 6d0a07edd Andrea Arcangeli 2016-05-12 549 return mapcount; 6d0a07edd Andrea Arcangeli 2016-05-12 550 } b20ce5e03 Kirill A. Shutemov 2016-01-15 551 #endif 70b50f94f Andrea Arcangeli 2011-11-02 552 b49af68ff Christoph Lameter 2007-05-06 553 static inline struct page *virt_to_head_page(const void *x) b49af68ff Christoph Lameter 2007-05-06 554 { b49af68ff Christoph Lameter 2007-05-06 555 struct page *page = virt_to_page(x); ccaafd7fd Joonsoo Kim 2015-02-10 556 1d798ca3f Kirill A. Shutemov 2015-11-06 557 return compound_head(page); b49af68ff Christoph Lameter 2007-05-06 558 } b49af68ff Christoph Lameter 2007-05-06 559 ddc58f27f Kirill A. Shutemov 2016-01-15 560 void __put_page(struct page *page); ddc58f27f Kirill A. Shutemov 2016-01-15 561 1d7ea7324 Alexander Zarochentsev 2006-08-13 562 void put_pages_list(struct list_head *pages); ^1da177e4 Linus Torvalds 2005-04-16 563 8dfcc9ba2 Nick Piggin 2006-03-22 564 void split_page(struct page *page, unsigned int order); 8dfcc9ba2 Nick Piggin 2006-03-22 565 ^1da177e4 Linus Torvalds 2005-04-16 566 /* 33f2ef89f Andy Whitcroft 2006-12-06 567 * Compound pages have a destructor function. Provide a 33f2ef89f Andy Whitcroft 2006-12-06 568 * prototype for that function and accessor functions. f1e61557f Kirill A. Shutemov 2015-11-06 569 * These are _only_ valid on the head of a compound page. 33f2ef89f Andy Whitcroft 2006-12-06 570 */ f1e61557f Kirill A. Shutemov 2015-11-06 571 typedef void compound_page_dtor(struct page *); f1e61557f Kirill A. Shutemov 2015-11-06 572 f1e61557f Kirill A. Shutemov 2015-11-06 573 /* Keep the enum in sync with compound_page_dtors array in mm/page_alloc.c */ f1e61557f Kirill A. Shutemov 2015-11-06 574 enum compound_dtor_id { f1e61557f Kirill A. Shutemov 2015-11-06 575 NULL_COMPOUND_DTOR, f1e61557f Kirill A. Shutemov 2015-11-06 576 COMPOUND_PAGE_DTOR, f1e61557f Kirill A. Shutemov 2015-11-06 577 #ifdef CONFIG_HUGETLB_PAGE f1e61557f Kirill A. Shutemov 2015-11-06 578 HUGETLB_PAGE_DTOR, f1e61557f Kirill A. Shutemov 2015-11-06 579 #endif 9a982250f Kirill A. Shutemov 2016-01-15 580 #ifdef CONFIG_TRANSPARENT_HUGEPAGE 9a982250f Kirill A. Shutemov 2016-01-15 581 TRANSHUGE_PAGE_DTOR, 9a982250f Kirill A. Shutemov 2016-01-15 582 #endif f1e61557f Kirill A. Shutemov 2015-11-06 583 NR_COMPOUND_DTORS, f1e61557f Kirill A. Shutemov 2015-11-06 584 }; f1e61557f Kirill A. Shutemov 2015-11-06 585 extern compound_page_dtor * const compound_page_dtors[]; 33f2ef89f Andy Whitcroft 2006-12-06 586 33f2ef89f Andy Whitcroft 2006-12-06 587 static inline void set_compound_page_dtor(struct page *page, f1e61557f Kirill A. Shutemov 2015-11-06 588 enum compound_dtor_id compound_dtor) 33f2ef89f Andy Whitcroft 2006-12-06 589 { f1e61557f Kirill A. Shutemov 2015-11-06 590 VM_BUG_ON_PAGE(compound_dtor >= NR_COMPOUND_DTORS, page); f1e61557f Kirill A. Shutemov 2015-11-06 591 page[1].compound_dtor = compound_dtor; 33f2ef89f Andy Whitcroft 2006-12-06 592 } 33f2ef89f Andy Whitcroft 2006-12-06 593 33f2ef89f Andy Whitcroft 2006-12-06 594 static inline compound_page_dtor *get_compound_page_dtor(struct page *page) 33f2ef89f Andy Whitcroft 2006-12-06 595 { f1e61557f Kirill A. Shutemov 2015-11-06 596 VM_BUG_ON_PAGE(page[1].compound_dtor >= NR_COMPOUND_DTORS, page); f1e61557f Kirill A. Shutemov 2015-11-06 597 return compound_page_dtors[page[1].compound_dtor]; 33f2ef89f Andy Whitcroft 2006-12-06 598 } 33f2ef89f Andy Whitcroft 2006-12-06 599 d00181b96 Kirill A. Shutemov 2015-11-06 600 static inline unsigned int compound_order(struct page *page) d85f33855 Christoph Lameter 2007-05-06 601 { 6d7779538 Christoph Lameter 2007-05-06 602 if (!PageHead(page)) d85f33855 Christoph Lameter 2007-05-06 603 return 0; e4b294c2d Kirill A. Shutemov 2015-02-11 604 return page[1].compound_order; d85f33855 Christoph Lameter 2007-05-06 605 } d85f33855 Christoph Lameter 2007-05-06 606 f1e61557f Kirill A. Shutemov 2015-11-06 607 static inline void set_compound_order(struct page *page, unsigned int order) d85f33855 Christoph Lameter 2007-05-06 608 { e4b294c2d Kirill A. Shutemov 2015-02-11 609 page[1].compound_order = order; d85f33855 Christoph Lameter 2007-05-06 610 } d85f33855 Christoph Lameter 2007-05-06 611 9a982250f Kirill A. Shutemov 2016-01-15 612 void free_compound_page(struct page *page); 9a982250f Kirill A. Shutemov 2016-01-15 613 3dece370e Michal Simek 2011-01-21 614 #ifdef CONFIG_MMU 33f2ef89f Andy Whitcroft 2006-12-06 615 /* 14fd403f2 Andrea Arcangeli 2011-01-13 616 * Do pte_mkwrite, but only if the vma says VM_WRITE. We do this when 14fd403f2 Andrea Arcangeli 2011-01-13 617 * servicing faults for write access. In the normal case, do always want 14fd403f2 Andrea Arcangeli 2011-01-13 618 * pte_mkwrite. But get_user_pages can cause write faults for mappings 14fd403f2 Andrea Arcangeli 2011-01-13 619 * that do not have writing enabled, when used by access_process_vm. 14fd403f2 Andrea Arcangeli 2011-01-13 620 */ 14fd403f2 Andrea Arcangeli 2011-01-13 621 static inline pte_t maybe_mkwrite(pte_t pte, struct vm_area_struct *vma) 14fd403f2 Andrea Arcangeli 2011-01-13 622 { 14fd403f2 Andrea Arcangeli 2011-01-13 623 if (likely(vma->vm_flags & VM_WRITE)) 14fd403f2 Andrea Arcangeli 2011-01-13 @624 pte = pte_mkwrite(pte); 14fd403f2 Andrea Arcangeli 2011-01-13 625 return pte; 14fd403f2 Andrea Arcangeli 2011-01-13 626 } 8c6e50b02 Kirill A. Shutemov 2014-04-07 627 :::::: The code at line 486 was first introduced by commit :::::: 9e2779fa281cfda13ac060753d674bbcaa23367e is_vmalloc_addr(): Check if an address is within the vmalloc boundaries :::::: TO: Christoph Lameter :::::: CC: Linus Torvalds --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation --mYCpIKhGyMATD0i+ Content-Type: application/gzip Content-Disposition: attachment; filename=".config.gz" Content-Transfer-Encoding: base64 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 --mYCpIKhGyMATD0i+--