Messages in this thread | | | Date | Wed, 11 Dec 2019 18:12:52 +0100 | From | Luc Van Oostenryck <> | Subject | Re: [PATCH v16 13/25] mm: pagewalk: Don't lock PTEs for walk_page_range_novma() |
| |
On Wed, Dec 11, 2019 at 03:54:06PM +0000, Steven Price wrote: > On 10/12/2019 11:23, kbuild test robot wrote: > >>> include/linux/spinlock.h:378:9: sparse: sparse: context imbalance in 'walk_pte_range' - unexpected unlock > > I believe this is a false positive (although the trace here is useless). > This patch adds a conditional lock/unlock: > > pte = walk->no_vma ? pte_offset_map(pmd, addr) : > pte_offset_map_lock(walk->mm, pmd, addr, &ptl); > ... > if (!walk->no_vma) > spin_unlock(ptl); > pte_unmap(pte); > > I'm not sure how to match sparse happy about that. Is the only option to > have two versions of the walk_pte_range() function? One which takes the > lock and one which doesn't.
Yes.
-- Luc
| |