Re: [mmotm:master 260/385] include/linux/mmu_notifier.h:247:19: sparse: context imbalance in 'kpageidle_clear_pte_refs_one' - unexpected unlock

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

 



On Fri, Jul 24, 2015 at 07:14:46PM +0800, kbuild test robot wrote:
> tree:   git://git.cmpxchg.org/linux-mmotm.git master
> head:   61f5f835b6f06fbc233481b5d3c0afd71ecf54e8
> commit: a06e045a2c99e39bf342ccb5dbbd6655f3814238 [260/385] proc: add kpageidle file
> reproduce:
>   # apt-get install sparse
>   git checkout a06e045a2c99e39bf342ccb5dbbd6655f3814238
>   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 'kpageidle_clear_pte_refs_one' - unexpected unlock
> 
> vim +/kpageidle_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  
> 59eaee21 Vladimir Davydov     2015-07-23 @247  static inline int mmu_notifier_clear_young(struct mm_struct *mm,
> 59eaee21 Vladimir Davydov     2015-07-23  248  					   unsigned long start,
> 59eaee21 Vladimir Davydov     2015-07-23  249  					   unsigned long end)
> 59eaee21 Vladimir Davydov     2015-07-23  250  {
> 59eaee21 Vladimir Davydov     2015-07-23  251  	if (mm_has_notifiers(mm))
> 59eaee21 Vladimir Davydov     2015-07-23  252  		return __mmu_notifier_clear_young(mm, start, end);
> 59eaee21 Vladimir Davydov     2015-07-23  253  	return 0;
> 59eaee21 Vladimir Davydov     2015-07-23  254  }
> 59eaee21 Vladimir Davydov     2015-07-23  255  

Looks like this warning is issued, because page_check_address, used by
kpageidle_clear_pte_refs_one, is not annotated as acquiring a ptl lock.
It is false-positive then.

--
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]