Messages in this thread | | | Date | Wed, 10 May 2017 01:13:11 +0800 | From | kbuild test robot <> | Subject | include/linux/page-flags.h:144:27: sparse: context imbalance in 'hugetlb_cow' - unexpected unlock |
| |
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master head: 2868b2513aa732a99ea4a0a6bf10dc93c1f3dac2 commit: 71389703839ebe9cb426c72d5f0bd549592e583c mm, zone_device: Replace {get, put}_zone_device_page() with a single reference to fix pmem crash date: 8 days ago reproduce: # apt-get install sparse git checkout 71389703839ebe9cb426c72d5f0bd549592e583c make ARCH=x86_64 allmodconfig make C=1 CF=-D__CHECK_ENDIAN__
sparse warnings: (new ones prefixed by >>)
include/linux/spinlock_api_smp.h:151:27: sparse: context imbalance in 'gather_surplus_pages' - unexpected unlock >> include/linux/page-flags.h:144:27: sparse: context imbalance in 'hugetlb_cow' - unexpected unlock mm/hugetlb.c:4159:25: sparse: context imbalance in 'follow_hugetlb_page' - different lock contexts for basic block
vim +/hugetlb_cow +144 include/linux/page-flags.h
d8ac3dd4 Jennifer Herbert 2015-01-05 128 PG_foreign = PG_owner_priv_1, 8a38082d Andy Whitcroft 2008-07-23 129 9023cb7e Andy Whitcroft 2008-07-23 130 /* SLOB */ 9023cb7e Andy Whitcroft 2008-07-23 131 PG_slob_free = PG_private, 53f9263b Kirill A. Shutemov 2016-01-15 132 53f9263b Kirill A. Shutemov 2016-01-15 133 /* Compound pages. Stored in first tail page's flags */ 53f9263b Kirill A. Shutemov 2016-01-15 134 PG_double_map = PG_private_2, bda807d4 Minchan Kim 2016-07-26 135 bda807d4 Minchan Kim 2016-07-26 136 /* non-lru isolated movable page */ bda807d4 Minchan Kim 2016-07-26 137 PG_isolated = PG_reclaim, e2683181 Christoph Lameter 2008-04-28 138 }; ^1da177e Linus Torvalds 2005-04-16 139 9223b419 Christoph Lameter 2008-04-28 140 #ifndef __GENERATING_BOUNDS_H 9223b419 Christoph Lameter 2008-04-28 141 0e6d31a7 Kirill A. Shutemov 2016-01-15 142 struct page; /* forward declaration */ 0e6d31a7 Kirill A. Shutemov 2016-01-15 143 0e6d31a7 Kirill A. Shutemov 2016-01-15 @144 static inline struct page *compound_head(struct page *page) 0e6d31a7 Kirill A. Shutemov 2016-01-15 145 { 0e6d31a7 Kirill A. Shutemov 2016-01-15 146 unsigned long head = READ_ONCE(page->compound_head); 0e6d31a7 Kirill A. Shutemov 2016-01-15 147 0e6d31a7 Kirill A. Shutemov 2016-01-15 148 if (unlikely(head & 1)) 0e6d31a7 Kirill A. Shutemov 2016-01-15 149 return (struct page *) (head - 1); 0e6d31a7 Kirill A. Shutemov 2016-01-15 150 return page; 0e6d31a7 Kirill A. Shutemov 2016-01-15 151 } 0e6d31a7 Kirill A. Shutemov 2016-01-15 152
:::::: The code at line 144 was first introduced by commit :::::: 0e6d31a7336f41ef0375f5398c79e54de8e219b6 page-flags: move code around
:::::: TO: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> :::::: CC: Linus Torvalds <torvalds@linux-foundation.org>
--- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
| |