Linux-mm Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [akpm-mm:mm-new] BUILD SUCCESS WITH UNVERIFIED WARNING e0ffd277b09a7c9f1a436e5f75be37ac490bc59f
@ 2026-08-10  2:44 kernel test robot
  2026-08-10 20:23 ` Andrew Morton
  0 siblings, 1 reply; 5+ messages in thread
From: kernel test robot @ 2026-08-10  2:44 UTC (permalink / raw)
  To: David Hildenbrand; +Cc: Andrew Morton, Linux Memory Management List, mm-commits

tree/branch: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-new
branch HEAD: e0ffd277b09a7c9f1a436e5f75be37ac490bc59f  mm/swap, PM: hibernate: atomically replace hibernation pin

Unverified Warning (likely false positive, kindly check if interested):

    https://lore.kernel.org/oe-kbuild/202607120402.clBrrZQA-lkp@intel.com

    mm/hmm.c:673 hmm_do_fault() error: we previously assumed 'hmm_vma_walk->locked' could be null (see line 654)

Warning ids grouped by kconfigs:

recent_errors
`-- s390-randconfig-r071-20260809
    `-- mm-hmm.c-hmm_do_fault()-error:we-previously-assumed-hmm_vma_walk-locked-could-be-null-(see-line-)

elapsed time: 1506m

configs tested: 234
configs skipped: 0

tested configs:
alpha                            allnoconfig    gcc-16.1.0
alpha                           allyesconfig    gcc-16.1.0
alpha                              defconfig    gcc-16.1.0
arc                             allmodconfig    gcc-16.1.0
arc                             allyesconfig    gcc-16.1.0
arc                  randconfig-001-20260809    gcc-10.5.0
arc                  randconfig-001-20260809    gcc-12.5.0
arc                  randconfig-001-20260810    gcc-8.5.0
arc                  randconfig-002-20260809    gcc-12.5.0
arc                  randconfig-002-20260810    gcc-8.5.0
arm                           hisi_defconfig    gcc-16.1.0
arm                  randconfig-001-20260809    gcc-12.5.0
arm                  randconfig-001-20260809    gcc-8.5.0
arm                  randconfig-001-20260810    gcc-8.5.0
arm                  randconfig-002-20260809    gcc-10.5.0
arm                  randconfig-002-20260809    gcc-12.5.0
arm                  randconfig-002-20260810    gcc-8.5.0
arm                  randconfig-003-20260809    clang-24
arm                  randconfig-003-20260809    gcc-12.5.0
arm                  randconfig-003-20260810    gcc-8.5.0
arm                  randconfig-004-20260809    clang-17
arm                  randconfig-004-20260809    gcc-12.5.0
arm                  randconfig-004-20260810    gcc-8.5.0
arm64                         randconfig-001    gcc-14.3.0
arm64                randconfig-001-20260809    gcc-10.5.0
arm64                randconfig-001-20260809    gcc-14.3.0
arm64                randconfig-001-20260810    gcc-16.1.0
arm64                randconfig-002-20260809    gcc-12.5.0
arm64                randconfig-002-20260809    gcc-14.3.0
arm64                randconfig-002-20260810    gcc-16.1.0
arm64                randconfig-003-20260809    clang-19
arm64                randconfig-003-20260809    gcc-14.3.0
arm64                randconfig-003-20260810    gcc-16.1.0
arm64                randconfig-004-20260809    clang-24
arm64                randconfig-004-20260809    gcc-14.3.0
arm64                randconfig-004-20260810    gcc-16.1.0
csky                            allmodconfig    gcc-16.1.0
csky                 randconfig-001-20260809    gcc-14.3.0
csky                 randconfig-001-20260809    gcc-16.1.0
csky                 randconfig-001-20260810    gcc-16.1.0
csky                 randconfig-002-20260809    gcc-14.3.0
csky                 randconfig-002-20260810    gcc-16.1.0
hexagon              randconfig-001-20260809    clang-17
hexagon              randconfig-001-20260809    gcc-12.5.0
hexagon              randconfig-001-20260810    gcc-10.5.0
hexagon              randconfig-002-20260809    clang-17
hexagon              randconfig-002-20260809    gcc-12.5.0
hexagon              randconfig-002-20260810    gcc-10.5.0
i386                            allmodconfig    gcc-14
i386                buildonly-randconfig-001    clang-22
i386       buildonly-randconfig-001-20260809    clang-22
i386       buildonly-randconfig-001-20260810    clang-22
i386       buildonly-randconfig-002-20260809    clang-22
i386       buildonly-randconfig-002-20260810    clang-22
i386       buildonly-randconfig-003-20260809    clang-22
i386       buildonly-randconfig-003-20260810    clang-22
i386       buildonly-randconfig-004-20260809    clang-22
i386       buildonly-randconfig-004-20260809    gcc-14
i386       buildonly-randconfig-004-20260810    clang-22
i386       buildonly-randconfig-005-20260809    clang-22
i386       buildonly-randconfig-005-20260809    gcc-14
i386       buildonly-randconfig-005-20260810    clang-22
i386       buildonly-randconfig-006-20260809    clang-22
i386       buildonly-randconfig-006-20260810    clang-22
i386                 randconfig-001-20260809    clang-22
i386                 randconfig-001-20260810    gcc-14
i386                 randconfig-002-20260809    clang-22
i386                 randconfig-002-20260809    gcc-14
i386                 randconfig-002-20260810    gcc-14
i386                 randconfig-003-20260809    clang-22
i386                 randconfig-003-20260810    gcc-14
i386                 randconfig-004-20260809    clang-22
i386                 randconfig-004-20260810    gcc-14
i386                 randconfig-005-20260809    clang-22
i386                 randconfig-005-20260810    gcc-14
i386                 randconfig-006-20260809    clang-22
i386                 randconfig-006-20260810    gcc-14
i386                 randconfig-007-20260809    clang-22
i386                 randconfig-007-20260809    gcc-14
i386                 randconfig-007-20260810    gcc-14
i386                          randconfig-011    clang-22
i386                 randconfig-011-20260809    clang-22
i386                 randconfig-011-20260809    gcc-14
i386                 randconfig-011-20260810    clang-22
i386                 randconfig-012-20260809    clang-22
i386                 randconfig-012-20260810    clang-22
i386                 randconfig-013-20260809    clang-22
i386                 randconfig-013-20260809    gcc-14
i386                 randconfig-013-20260810    clang-22
i386                 randconfig-014-20260809    clang-22
i386                 randconfig-014-20260809    gcc-14
i386                 randconfig-014-20260810    clang-22
i386                 randconfig-015-20260809    clang-22
i386                 randconfig-015-20260809    gcc-14
i386                 randconfig-015-20260810    clang-22
i386                 randconfig-016-20260809    clang-22
i386                 randconfig-016-20260810    clang-22
i386                 randconfig-017-20260809    clang-22
i386                 randconfig-017-20260810    clang-22
loongarch                          defconfig    clang-24
loongarch            randconfig-001-20260809    clang-18
loongarch            randconfig-001-20260809    gcc-12.5.0
loongarch            randconfig-001-20260810    gcc-10.5.0
loongarch            randconfig-002-20260809    gcc-12.5.0
loongarch            randconfig-002-20260810    gcc-10.5.0
mips                         ath25_defconfig    clang-24
nios2                           allmodconfig    gcc-11.5.0
nios2                            allnoconfig    gcc-11.5.0
nios2                randconfig-001-20260809    gcc-12.5.0
nios2                randconfig-001-20260809    gcc-8.5.0
nios2                randconfig-001-20260810    gcc-10.5.0
nios2                randconfig-002-20260809    gcc-12.5.0
nios2                randconfig-002-20260809    gcc-8.5.0
nios2                randconfig-002-20260810    gcc-10.5.0
openrisc                 or1klitex_defconfig    gcc-16.1.0
parisc                          allmodconfig    gcc-16.1.0
parisc                          allyesconfig    gcc-16.1.0
parisc                             defconfig    gcc-16.1.0
parisc               randconfig-001-20260809    gcc-15.2.0
parisc               randconfig-001-20260809    gcc-8.5.0
parisc               randconfig-001-20260810    gcc-8.5.0
parisc               randconfig-002-20260809    gcc-8.5.0
parisc               randconfig-002-20260810    gcc-8.5.0
powerpc              randconfig-001-20260809    clang-24
powerpc              randconfig-001-20260809    gcc-8.5.0
powerpc              randconfig-001-20260810    gcc-8.5.0
powerpc              randconfig-002-20260809    clang-24
powerpc              randconfig-002-20260809    gcc-8.5.0
powerpc              randconfig-002-20260810    gcc-8.5.0
powerpc64            randconfig-001-20260809    clang-17
powerpc64            randconfig-001-20260809    gcc-8.5.0
powerpc64            randconfig-001-20260810    gcc-8.5.0
powerpc64            randconfig-002-20260809    clang-24
powerpc64            randconfig-002-20260809    gcc-8.5.0
powerpc64            randconfig-002-20260810    gcc-8.5.0
riscv                randconfig-001-20260809    clang-24
riscv                randconfig-001-20260810    gcc-8.5.0
riscv                randconfig-002-20260809    clang-20
riscv                randconfig-002-20260809    clang-24
riscv                randconfig-002-20260810    gcc-8.5.0
s390                 randconfig-001-20260809    clang-24
s390                 randconfig-001-20260809    gcc-11.5.0
s390                 randconfig-001-20260810    gcc-8.5.0
s390                 randconfig-002-20260809    clang-24
s390                 randconfig-002-20260810    gcc-8.5.0
sh                                 defconfig    gcc-16.1.0
sh                   randconfig-001-20260809    clang-24
sh                   randconfig-001-20260809    gcc-16.1.0
sh                   randconfig-001-20260810    gcc-8.5.0
sh                   randconfig-002-20260809    clang-24
sh                   randconfig-002-20260809    gcc-10.5.0
sh                   randconfig-002-20260810    gcc-8.5.0
sparc                         randconfig-001    gcc-16.1.0
sparc                randconfig-001-20260809    gcc-11.5.0
sparc                randconfig-001-20260809    gcc-8.5.0
sparc                randconfig-001-20260810    gcc-11.5.0
sparc                randconfig-002-20260809    gcc-11.5.0
sparc                randconfig-002-20260810    gcc-11.5.0
sparc64              randconfig-001-20260809    gcc-11.5.0
sparc64              randconfig-001-20260809    gcc-9.5.0
sparc64              randconfig-001-20260810    gcc-11.5.0
sparc64              randconfig-002-20260809    clang-24
sparc64              randconfig-002-20260809    gcc-11.5.0
sparc64              randconfig-002-20260810    gcc-11.5.0
um                   randconfig-001-20260809    clang-18
um                   randconfig-001-20260809    gcc-11.5.0
um                   randconfig-001-20260810    gcc-11.5.0
um                   randconfig-002-20260809    clang-17
um                   randconfig-002-20260809    gcc-11.5.0
um                   randconfig-002-20260810    gcc-11.5.0
x86_64     buildonly-randconfig-001-20260809    clang-22
x86_64     buildonly-randconfig-001-20260810    gcc-14
x86_64     buildonly-randconfig-002-20260809    clang-22
x86_64     buildonly-randconfig-002-20260809    gcc-14
x86_64     buildonly-randconfig-002-20260810    gcc-14
x86_64     buildonly-randconfig-003-20260809    clang-22
x86_64     buildonly-randconfig-003-20260809    gcc-14
x86_64     buildonly-randconfig-003-20260810    gcc-14
x86_64     buildonly-randconfig-004-20260809    clang-22
x86_64     buildonly-randconfig-004-20260810    gcc-14
x86_64     buildonly-randconfig-005-20260809    clang-22
x86_64     buildonly-randconfig-005-20260810    gcc-14
x86_64     buildonly-randconfig-006-20260809    clang-22
x86_64     buildonly-randconfig-006-20260809    gcc-14
x86_64     buildonly-randconfig-006-20260810    gcc-14
x86_64                                 kexec    clang-22
x86_64               randconfig-001-20260809    clang-22
x86_64               randconfig-001-20260810    gcc-14
x86_64               randconfig-002-20260809    clang-22
x86_64               randconfig-002-20260809    gcc-14
x86_64               randconfig-002-20260810    gcc-14
x86_64               randconfig-003-20260809    clang-22
x86_64               randconfig-003-20260810    gcc-14
x86_64               randconfig-004-20260809    clang-22
x86_64               randconfig-004-20260810    gcc-14
x86_64               randconfig-005-20260809    clang-22
x86_64               randconfig-005-20260810    gcc-14
x86_64               randconfig-006-20260809    clang-22
x86_64               randconfig-006-20260809    gcc-14
x86_64               randconfig-006-20260810    gcc-14
x86_64               randconfig-011-20260809    clang-22
x86_64               randconfig-011-20260809    gcc-14
x86_64               randconfig-011-20260810    clang-22
x86_64               randconfig-012-20260809    gcc-14
x86_64               randconfig-012-20260810    clang-22
x86_64               randconfig-013-20260809    gcc-14
x86_64               randconfig-013-20260810    clang-22
x86_64               randconfig-014-20260809    clang-22
x86_64               randconfig-014-20260809    gcc-14
x86_64               randconfig-014-20260810    clang-22
x86_64               randconfig-015-20260809    gcc-14
x86_64               randconfig-015-20260810    clang-22
x86_64               randconfig-016-20260809    clang-22
x86_64               randconfig-016-20260809    gcc-14
x86_64               randconfig-016-20260810    clang-22
x86_64               randconfig-071-20260809    clang-22
x86_64               randconfig-071-20260810    clang-22
x86_64               randconfig-072-20260809    clang-22
x86_64               randconfig-072-20260810    clang-22
x86_64               randconfig-073-20260809    clang-22
x86_64               randconfig-073-20260810    clang-22
x86_64               randconfig-074-20260809    clang-22
x86_64               randconfig-074-20260810    clang-22
x86_64               randconfig-075-20260809    clang-22
x86_64               randconfig-075-20260809    gcc-14
x86_64               randconfig-075-20260810    clang-22
x86_64               randconfig-076-20260809    clang-22
x86_64               randconfig-076-20260810    clang-22
x86_64                          rhel-9.4-bpf    gcc-14
xtensa               randconfig-001-20260809    gcc-11.5.0
xtensa               randconfig-001-20260809    gcc-13.4.0
xtensa               randconfig-001-20260810    gcc-11.5.0
xtensa               randconfig-002-20260809    gcc-11.5.0
xtensa               randconfig-002-20260810    gcc-11.5.0

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [akpm-mm:mm-new] BUILD SUCCESS WITH UNVERIFIED WARNING e0ffd277b09a7c9f1a436e5f75be37ac490bc59f
  2026-08-10  2:44 [akpm-mm:mm-new] BUILD SUCCESS WITH UNVERIFIED WARNING e0ffd277b09a7c9f1a436e5f75be37ac490bc59f kernel test robot
@ 2026-08-10 20:23 ` Andrew Morton
  2026-08-11 23:50   ` Stanislav Kinsburskii
  0 siblings, 1 reply; 5+ messages in thread
From: Andrew Morton @ 2026-08-10 20:23 UTC (permalink / raw)
  To: kernel test robot
  Cc: David Hildenbrand, Linux Memory Management List, mm-commits,
	Stanislav Kinsburskii

On Mon, 10 Aug 2026 10:44:13 +0800 kernel test robot <lkp@intel.com> wrote:

> tree/branch: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-new
> branch HEAD: e0ffd277b09a7c9f1a436e5f75be37ac490bc59f  mm/swap, PM: hibernate: atomically replace hibernation pin
> 
> Unverified Warning (likely false positive, kindly check if interested):
> 
>     https://lore.kernel.org/oe-kbuild/202607120402.clBrrZQA-lkp@intel.com
> 
>     mm/hmm.c:673 hmm_do_fault() error: we previously assumed 'hmm_vma_walk->locked' could be null (see line 654)
> 
> Warning ids grouped by kconfigs:

Thanks.  I assume this warning was produced by sparse?  The report
doesn't tell us this, and I suggest that it do so.

> recent_errors
> `-- s390-randconfig-r071-20260809
>     `-- mm-hmm.c-hmm_do_fault()-error:we-previously-assumed-hmm_vma_walk-locked-could-be-null-(see-line-)

Caused by

	121170831228 ("mm/hmm: add hmm_range_fault_unlocked_timeout() for mmap lock-drop support")


Stanislaw, you've previously said that this is a can't-happen, but boy
I'm getting tired of seeing this warning report.  Would the below change
hurt anything?  I can't immediately think of a cost-free way of doing
this.


From: Andrew Morton <akpm@linux-foundation.org>
Subject: mm/hmm.c:hmm_do_fault(): suppress sparse warning
Date: Mon Aug 10 01:16:37 PM PDT 2026

mm/hmm.c:673 hmm_do_fault() error: we previously assumed 'hmm_vma_walk->locked' could be null (see line 654)

Stanislav says this can't happen.  Waste a few cycles to make the warning
go away.

Fixes: 121170831228 ("mm/hmm: add hmm_range_fault_unlocked_timeout() for mmap lock-drop support")
Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/202608101053.PhnVUM4u-lkp@intel.com
Cc: Stanislav Kinsburskii <skinsburskii@gmail.com>
Cc: David Hildenbrand <david@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---

 mm/hmm.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

--- a/mm/hmm.c~mm-hmmc-hmm_do_fault-suppress-sparse-warning
+++ a/mm/hmm.c
@@ -670,7 +670,8 @@ static int hmm_do_fault(struct mm_struct
 		ret = handle_mm_fault(vma, addr, fault_flags, NULL);
 
 		if (ret & (VM_FAULT_COMPLETED | VM_FAULT_RETRY)) {
-			*hmm_vma_walk->locked = false;
+			if (hmm_vma_walk->locked)	/* needed by sparse */
+				*hmm_vma_walk->locked = false;
 			return HMM_FAULT_UNLOCKED;
 		}
 
_



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [akpm-mm:mm-new] BUILD SUCCESS WITH UNVERIFIED WARNING e0ffd277b09a7c9f1a436e5f75be37ac490bc59f
  2026-08-10 20:23 ` Andrew Morton
@ 2026-08-11 23:50   ` Stanislav Kinsburskii
  2026-08-12  0:27     ` Andrew Morton
  0 siblings, 1 reply; 5+ messages in thread
From: Stanislav Kinsburskii @ 2026-08-11 23:50 UTC (permalink / raw)
  To: Andrew Morton
  Cc: kernel test robot, David Hildenbrand,
	Linux Memory Management List, mm-commits

On Mon, Aug 10, 2026 at 01:23:34PM -0700, Andrew Morton wrote:
> On Mon, 10 Aug 2026 10:44:13 +0800 kernel test robot <lkp@intel.com> wrote:
> 
> > tree/branch: https://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm.git mm-new
> > branch HEAD: e0ffd277b09a7c9f1a436e5f75be37ac490bc59f  mm/swap, PM: hibernate: atomically replace hibernation pin
> > 
> > Unverified Warning (likely false positive, kindly check if interested):
> > 
> >     https://lore.kernel.org/oe-kbuild/202607120402.clBrrZQA-lkp@intel.com
> > 
> >     mm/hmm.c:673 hmm_do_fault() error: we previously assumed 'hmm_vma_walk->locked' could be null (see line 654)
> > 
> > Warning ids grouped by kconfigs:
> 
> Thanks.  I assume this warning was produced by sparse?  The report
> doesn't tell us this, and I suggest that it do so.
> 
> > recent_errors
> > `-- s390-randconfig-r071-20260809
> >     `-- mm-hmm.c-hmm_do_fault()-error:we-previously-assumed-hmm_vma_walk-locked-could-be-null-(see-line-)
> 
> Caused by
> 
> 	121170831228 ("mm/hmm: add hmm_range_fault_unlocked_timeout() for mmap lock-drop support")
> 
> 
> Stanislaw, you've previously said that this is a can't-happen, but boy
> I'm getting tired of seeing this warning report.  Would the below change
> hurt anything?  I can't immediately think of a cost-free way of doing
> this.
> 

I think this change doesn't do any harm.
Perhaps it worth a WARN_ON_ONCE to expose a wrong fault handler
behavior?

Thanks,
Stanislav

> 
> From: Andrew Morton <akpm@linux-foundation.org>
> Subject: mm/hmm.c:hmm_do_fault(): suppress sparse warning
> Date: Mon Aug 10 01:16:37 PM PDT 2026
> 
> mm/hmm.c:673 hmm_do_fault() error: we previously assumed 'hmm_vma_walk->locked' could be null (see line 654)
> 
> Stanislav says this can't happen.  Waste a few cycles to make the warning
> go away.
> 
> Fixes: 121170831228 ("mm/hmm: add hmm_range_fault_unlocked_timeout() for mmap lock-drop support")
> Reported-by: kernel test robot <lkp@intel.com>
> Closes: https://lore.kernel.org/202608101053.PhnVUM4u-lkp@intel.com
> Cc: Stanislav Kinsburskii <skinsburskii@gmail.com>
> Cc: David Hildenbrand <david@kernel.org>
> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
> ---
> 
>  mm/hmm.c |    3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> --- a/mm/hmm.c~mm-hmmc-hmm_do_fault-suppress-sparse-warning
> +++ a/mm/hmm.c
> @@ -670,7 +670,8 @@ static int hmm_do_fault(struct mm_struct
>  		ret = handle_mm_fault(vma, addr, fault_flags, NULL);
>  
>  		if (ret & (VM_FAULT_COMPLETED | VM_FAULT_RETRY)) {
> -			*hmm_vma_walk->locked = false;
> +			if (hmm_vma_walk->locked)	/* needed by sparse */
> +				*hmm_vma_walk->locked = false;
>  			return HMM_FAULT_UNLOCKED;
>  		}
>  
> _
> 


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [akpm-mm:mm-new] BUILD SUCCESS WITH UNVERIFIED WARNING e0ffd277b09a7c9f1a436e5f75be37ac490bc59f
  2026-08-11 23:50   ` Stanislav Kinsburskii
@ 2026-08-12  0:27     ` Andrew Morton
  2026-08-16 13:34       ` Stanislav Kinsburskii
  0 siblings, 1 reply; 5+ messages in thread
From: Andrew Morton @ 2026-08-12  0:27 UTC (permalink / raw)
  To: Stanislav Kinsburskii
  Cc: kernel test robot, David Hildenbrand,
	Linux Memory Management List, mm-commits

On Tue, 11 Aug 2026 16:50:15 -0700 Stanislav Kinsburskii <skinsburskii@gmail.com> wrote:

> > Caused by
> > 
> > 	121170831228 ("mm/hmm: add hmm_range_fault_unlocked_timeout() for mmap lock-drop support")
> > 
> > 
> > Stanislaw, you've previously said that this is a can't-happen, but boy
> > I'm getting tired of seeing this warning report.  Would the below change
> > hurt anything?  I can't immediately think of a cost-free way of doing
> > this.
> > 
> 
> I think this change doesn't do any harm.
> Perhaps it worth a WARN_ON_ONCE to expose a wrong fault handler
> behavior?

Like this?

		if (ret & (VM_FAULT_COMPLETED | VM_FAULT_RETRY)) {
			if (hmm_vma_walk->locked)    /* needed by sparse */
				*hmm_vma_walk->locked = false;
			else
				WARN_ON_ONCE(1);    /* broken fault handler */
			return HMM_FAULT_UNLOCKED;
		}



^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [akpm-mm:mm-new] BUILD SUCCESS WITH UNVERIFIED WARNING e0ffd277b09a7c9f1a436e5f75be37ac490bc59f
  2026-08-12  0:27     ` Andrew Morton
@ 2026-08-16 13:34       ` Stanislav Kinsburskii
  0 siblings, 0 replies; 5+ messages in thread
From: Stanislav Kinsburskii @ 2026-08-16 13:34 UTC (permalink / raw)
  To: Andrew Morton
  Cc: kernel test robot, David Hildenbrand,
	Linux Memory Management List, mm-commits

On Tue, Aug 11, 2026 at 05:27:13PM -0700, Andrew Morton wrote:
> On Tue, 11 Aug 2026 16:50:15 -0700 Stanislav Kinsburskii <skinsburskii@gmail.com> wrote:
> 
> > > Caused by
> > > 
> > > 	121170831228 ("mm/hmm: add hmm_range_fault_unlocked_timeout() for mmap lock-drop support")
> > > 
> > > 
> > > Stanislaw, you've previously said that this is a can't-happen, but boy
> > > I'm getting tired of seeing this warning report.  Would the below change
> > > hurt anything?  I can't immediately think of a cost-free way of doing
> > > this.
> > > 
> > 
> > I think this change doesn't do any harm.
> > Perhaps it worth a WARN_ON_ONCE to expose a wrong fault handler
> > behavior?
> 
> Like this?
> 
> 		if (ret & (VM_FAULT_COMPLETED | VM_FAULT_RETRY)) {
> 			if (hmm_vma_walk->locked)    /* needed by sparse */
> 				*hmm_vma_walk->locked = false;
> 			else
> 				WARN_ON_ONCE(1);    /* broken fault handler */
> 			return HMM_FAULT_UNLOCKED;
> 		}
> 

Yes, or even like this:

 		if (ret & (VM_FAULT_COMPLETED | VM_FAULT_RETRY)) {
 			if (WARN_ON_ONCE(hmm_vma_walk->locked))    /* needed by sparse */
 				*hmm_vma_walk->locked = false;
 			return HMM_FAULT_UNLOCKED;
 		}
 

Thanks,
Stanislav


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2026-08-16 13:34 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-10  2:44 [akpm-mm:mm-new] BUILD SUCCESS WITH UNVERIFIED WARNING e0ffd277b09a7c9f1a436e5f75be37ac490bc59f kernel test robot
2026-08-10 20:23 ` Andrew Morton
2026-08-11 23:50   ` Stanislav Kinsburskii
2026-08-12  0:27     ` Andrew Morton
2026-08-16 13:34       ` Stanislav Kinsburskii

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox