Re: [linux-next:master 6252/6518] include/linux/mmu_notifier.h:247:19: sparse: context imbalance in 'page_idle_clear_pte_refs_one' - unexpected unlock

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

 



On Thu, Aug 06, 2015 at 05:48:54PM +0800, kbuild test robot wrote:
> tree:   git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
> head:   c6b169e6ffb962068153bd92b0c4ecbd731a122f
> commit: cbba4e22584984bffccd07e0801fd2b8ec1ecf5f [6252/6518] Move /proc/kpageidle to /sys/kernel/mm/page_idle/bitmap
> reproduce:
>   # apt-get install sparse
>   git checkout cbba4e22584984bffccd07e0801fd2b8ec1ecf5f
>   make ARCH=x86_64 allmodconfig
>   make C=1 CF=-D__CHECK_ENDIAN__
> 
> 
> sparse warnings: (new ones prefixed by >>)
> 
> >> include/linux/mmu_notifier.h:247:19: sparse: context imbalance in 'page_idle_clear_pte_refs_one' - unexpected unlock
> 
> vim +/page_idle_clear_pte_refs_one +247 include/linux/mmu_notifier.h
> 
> cddb8a5c Andrea Arcangeli     2008-07-28  231  
> cddb8a5c Andrea Arcangeli     2008-07-28  232  static inline void mmu_notifier_release(struct mm_struct *mm)
> cddb8a5c Andrea Arcangeli     2008-07-28  233  {
> cddb8a5c Andrea Arcangeli     2008-07-28  234  	if (mm_has_notifiers(mm))
> cddb8a5c Andrea Arcangeli     2008-07-28  235  		__mmu_notifier_release(mm);
> cddb8a5c Andrea Arcangeli     2008-07-28  236  }
> cddb8a5c Andrea Arcangeli     2008-07-28  237  
> cddb8a5c Andrea Arcangeli     2008-07-28  238  static inline int mmu_notifier_clear_flush_young(struct mm_struct *mm,
> 57128468 Andres Lagar-Cavilla 2014-09-22  239  					  unsigned long start,
> 57128468 Andres Lagar-Cavilla 2014-09-22  240  					  unsigned long end)
> cddb8a5c Andrea Arcangeli     2008-07-28  241  {
> cddb8a5c Andrea Arcangeli     2008-07-28  242  	if (mm_has_notifiers(mm))
> 57128468 Andres Lagar-Cavilla 2014-09-22  243  		return __mmu_notifier_clear_flush_young(mm, start, end);
> cddb8a5c Andrea Arcangeli     2008-07-28  244  	return 0;
> cddb8a5c Andrea Arcangeli     2008-07-28  245  }
> cddb8a5c Andrea Arcangeli     2008-07-28  246  
> 632116f6 Vladimir Davydov     2015-08-06 @247  static inline int mmu_notifier_clear_young(struct mm_struct *mm,
> 632116f6 Vladimir Davydov     2015-08-06  248  					   unsigned long start,
> 632116f6 Vladimir Davydov     2015-08-06  249  					   unsigned long end)
> 632116f6 Vladimir Davydov     2015-08-06  250  {
> 632116f6 Vladimir Davydov     2015-08-06  251  	if (mm_has_notifiers(mm))
> 632116f6 Vladimir Davydov     2015-08-06  252  		return __mmu_notifier_clear_young(mm, start, end);
> 632116f6 Vladimir Davydov     2015-08-06  253  	return 0;
> 632116f6 Vladimir Davydov     2015-08-06  254  }
> 632116f6 Vladimir Davydov     2015-08-06  255  

False-positive as I explained to the similar warning for
kpageilde_clear_pte_refs_one:

http://www.spinics.net/lists/linux-mm/msg92053.html

It is caused by page_check_address, which is not annotated as acquiring
a ptl lock.

Thanks,
Vladimir

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxx.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>



[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]