Linux Kernel Selftest development
 help / color / mirror / Atom feed
* [PATCH] selftests: livepatch: unset sub_make_done in case top level Makefile be overwritten
@ 2026-05-25  8:37 Zelin Deng
  2026-06-19 14:42 ` Miroslav Benes
  0 siblings, 1 reply; 10+ messages in thread
From: Zelin Deng @ 2026-05-25  8:37 UTC (permalink / raw)
  To: mbenes, shuah; +Cc: linux-kselftest, Zelin Deng

After I did: make kselftest-all in top level of kernel source tree, top
level Makefile was overwritten by auto generated contents by
filechk_makefile:
[root@emr: /home/shiyu.dzl/linux-next]$ cat Makefile
export KBUILD_OUTPUT = .
export KBUILD_EXTMOD = /home/shiyu.dzl/linux-next
export KBUILD_EXTMOD_OUTPUT = /home/shiyu.dzl/linux-next
include /home/shiyu.dzl/linux-next/Makefile

Top-level Makefile export sub_make_done=1, leaks into unrelated re-invocations
of the top-level Makefile when recursive descent through selftests -
building test_module of livepatch. That causes KBUILD_EXTMOD setup to be
skipped, which leads to a relative/absolute path mismatch in srcroot vs
CURDIR, falsely setting building_out_of_srctree, and ultimately overwriting
the source tree's Makefile with a generated stub.

Clear sub_make_done before re-invoking the kernel Makefile.

Fixes: c4bbe83d27c2 ("livepatch: Move tests from lib/livepatch to selftests/livepatch")
Signed-off-by: Zelin Deng <zelin.deng@linux.alibaba.com>
---
 tools/testing/selftests/livepatch/test_modules/Makefile | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/tools/testing/selftests/livepatch/test_modules/Makefile b/tools/testing/selftests/livepatch/test_modules/Makefile
index a13d398585dc..b78657089ab7 100644
--- a/tools/testing/selftests/livepatch/test_modules/Makefile
+++ b/tools/testing/selftests/livepatch/test_modules/Makefile
@@ -19,11 +19,11 @@ obj-m += test_klp_atomic_replace.o \
 # Ensure that KDIR exists, otherwise skip the compilation
 modules:
 ifneq ("$(wildcard $(KDIR))", "")
-	$(Q)$(MAKE) -C $(KDIR) modules KBUILD_EXTMOD=$(TESTMODS_DIR)
+	$(Q)unset sub_make_done && $(MAKE) -C $(KDIR) modules KBUILD_EXTMOD=$(TESTMODS_DIR)
 endif
 
 # Ensure that KDIR exists, otherwise skip the clean target
 clean:
 ifneq ("$(wildcard $(KDIR))", "")
-	$(Q)$(MAKE) -C $(KDIR) clean KBUILD_EXTMOD=$(TESTMODS_DIR)
+	$(Q)unset sub_make_done && $(MAKE) -C $(KDIR) clean KBUILD_EXTMOD=$(TESTMODS_DIR)
 endif
-- 
2.43.7


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

* Re: [PATCH] selftests: livepatch: unset sub_make_done in case top level Makefile be overwritten
  2026-05-25  8:37 [PATCH] selftests: livepatch: unset sub_make_done in case top level Makefile be overwritten Zelin Deng
@ 2026-06-19 14:42 ` Miroslav Benes
  2026-06-21 14:36   ` Zelin Deng
  0 siblings, 1 reply; 10+ messages in thread
From: Miroslav Benes @ 2026-06-19 14:42 UTC (permalink / raw)
  To: Zelin Deng; +Cc: shuah, linux-kselftest, live-patching, mpdesouza

On Mon, 25 May 2026, Zelin Deng wrote:

> After I did: make kselftest-all in top level of kernel source tree, top
> level Makefile was overwritten by auto generated contents by
> filechk_makefile:
> [root@emr: /home/shiyu.dzl/linux-next]$ cat Makefile
> export KBUILD_OUTPUT = .
> export KBUILD_EXTMOD = /home/shiyu.dzl/linux-next
> export KBUILD_EXTMOD_OUTPUT = /home/shiyu.dzl/linux-next
> include /home/shiyu.dzl/linux-next/Makefile
> 
> Top-level Makefile export sub_make_done=1, leaks into unrelated re-invocations
> of the top-level Makefile when recursive descent through selftests -
> building test_module of livepatch. That causes KBUILD_EXTMOD setup to be
> skipped, which leads to a relative/absolute path mismatch in srcroot vs
> CURDIR, falsely setting building_out_of_srctree, and ultimately overwriting
> the source tree's Makefile with a generated stub.
> 
> Clear sub_make_done before re-invoking the kernel Makefile.
> 
> Fixes: c4bbe83d27c2 ("livepatch: Move tests from lib/livepatch to selftests/livepatch")
> Signed-off-by: Zelin Deng <zelin.deng@linux.alibaba.com>

Adding Marcos and KLP ML.

I cannot reproduce and I do not understand it much from the changelog (I 
am by far not a Kbuild expert). Could you share the exact steps to 
reproduce please? If I just run 'make kselftest-all' in the top level, it 
passes and livepatch test_modules are not even touched.

Miroslav

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

* Re: [PATCH] selftests: livepatch: unset sub_make_done in case top level Makefile be overwritten
  2026-06-19 14:42 ` Miroslav Benes
@ 2026-06-21 14:36   ` Zelin Deng
  2026-06-30 14:32     ` Petr Mladek
  0 siblings, 1 reply; 10+ messages in thread
From: Zelin Deng @ 2026-06-21 14:36 UTC (permalink / raw)
  To: Miroslav Benes; +Cc: shuah, linux-kselftest, live-patching, mpdesouza


在 2026/6/19 22:42, Miroslav Benes 写道:
> On Mon, 25 May 2026, Zelin Deng wrote:
>
>> After I did: make kselftest-all in top level of kernel source tree, top
>> level Makefile was overwritten by auto generated contents by
>> filechk_makefile:
>> [root@emr: /home/shiyu.dzl/linux-next]$ cat Makefile
>> export KBUILD_OUTPUT = .
>> export KBUILD_EXTMOD = /home/shiyu.dzl/linux-next
>> export KBUILD_EXTMOD_OUTPUT = /home/shiyu.dzl/linux-next
>> include /home/shiyu.dzl/linux-next/Makefile
>>
>> Top-level Makefile export sub_make_done=1, leaks into unrelated re-invocations
>> of the top-level Makefile when recursive descent through selftests -
>> building test_module of livepatch. That causes KBUILD_EXTMOD setup to be
>> skipped, which leads to a relative/absolute path mismatch in srcroot vs
>> CURDIR, falsely setting building_out_of_srctree, and ultimately overwriting
>> the source tree's Makefile with a generated stub.
>>
>> Clear sub_make_done before re-invoking the kernel Makefile.
>>
>> Fixes: c4bbe83d27c2 ("livepatch: Move tests from lib/livepatch to selftests/livepatch")
>> Signed-off-by: Zelin Deng <zelin.deng@linux.alibaba.com>
> Adding Marcos and KLP ML.
>
> I cannot reproduce and I do not understand it much from the changelog (I
> am by far not a Kbuild expert). Could you share the exact steps to
> reproduce please? If I just run 'make kselftest-all' in the top level, it
> passes and livepatch test_modules are not even touched.
>
> Miroslav

Thank you for replying.

Per my understanding, to build livepatch test_modules KDIR must be 
either set explicitly when doing 'make kselftest-all 
KDIR=<path-to-kernel-build-dir>' or have the kernel devel package 
installed. Otherwise the compilation could be skipped. (see 
tools/testing/selftests/livepatch/test_modules/Makefile)

KDIR ?= /lib/modules/$(shell uname -r)/build

...

# Ensure that KDIR exists, otherwise skip the compilation
modules:
ifneq ("$(wildcard $(KDIR))", "")
     $(Q)$(MAKE) -C $(KDIR) modules KBUILD_EXTMOD=$(TESTMODS_DIR)
endif

...

Here're how I reproduce the issue:

1. pull linux-next, reset to HEAD, for example 
3ce97bd3c4f18608335e709c24d6a40e7036cab8 (tag next-20260619)

2. at linux-next tree: make all -j$(nproc) && make modules_install 
headers_install -j$(nproc) && make install && reboot

3. at linux-next tree: make kselftest-all

4. top level Makefile in linux-next has been overwritten by

     export KBUILD_OUTPUT = .
     export KBUILD_EXTMOD = /home/shiyu.dzl/linux-next
     export KBUILD_EXTMOD_OUTPUT = /home/shiyu.dzl/linux-next
     include /home/shiyu.dzl/linux-next/Makefile

it is a stub generated by filechk_makefile.


I'm not quite sure that it could be related to my toolchain (like make 
version ?), I briefed analysis the root cause on my environment (KDIR 
'/lib/modules/7.1.0-next-20260619/build' which actually a symbol link to 
my kernel source -> '/home/shiyu.dzl/linux-next'):

   1. sub_make_done leaks via environment. The top-level Makefile sets 
export sub_make_done := 1 after its first-pass initialization.
   Because it is exported, every child make process inherits it.
   2. livepatch test_modules re-invokes the top-level Makefile. The call 
chain is: top-level Makefile → kselftest-% pattern rule →
   tools/testing/selftests/ → livepatch test_modules/Makefile → $(MAKE) 
-C $(KDIR) modules KBUILD_EXTMOD=..., which re-enters the top-level 
Makefile to
   build an external module.
   3. The inherited sub_make_done=1 skips critical initialization. The 
top-level Makefile's first-pass block (ifneq ($(sub_make_done),1)) is
   skipped entirely. This block is responsible for correctly parsing 
command-line variables and setting up KBUILD_EXTMOD-related paths.
   4. Path mismatch triggers false out-of-tree detection. With the 
initialization skipped, srcroot and CURDIR end up with mismatched values 
(e.g.,
   absolute vs. relative). The comparison (ifeq ($(srcroot),$(CURDIR))) 
fails, so building_out_of_srctree is incorrectly set to 1.
   5. outputmakefile overwrites the source tree's Makefile. Because 
building_out_of_srctree is set, the filechk_makefile rule fires and 
replaces the
   real top-level Makefile with a generated stub containing 
KBUILD_OUTPUT, KBUILD_EXTMOD, and an include directive.

   Why make -C tools/testing/selftests/ all is unaffected: it enters the 
selftests directory directly without ever executing the top-level Makefile
   first, so sub_make_done is never exported into the environment. When 
livepatch test_modules later invokes $(MAKE) -C $(KDIR), the top-level 
Makefile
   runs its full initialization normally.

Thanks,

Zelin


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

* Re: [PATCH] selftests: livepatch: unset sub_make_done in case top level Makefile be overwritten
  2026-06-21 14:36   ` Zelin Deng
@ 2026-06-30 14:32     ` Petr Mladek
  2026-06-30 16:12       ` Thomas Weißschuh
  0 siblings, 1 reply; 10+ messages in thread
From: Petr Mladek @ 2026-06-30 14:32 UTC (permalink / raw)
  To: Zelin Deng
  Cc: Miroslav Benes, shuah, linux-kselftest, live-patching, mpdesouza,
	Thomas Weißschuh, Nathan Chancellor, Nicolas Schier,
	linux-kbuild

Added some people involved in "filechk_makefile" feature into Cc.

For the new people, see the whole thread at
https://lore.kernel.org/all/20260525083721.27857-1-zelin.deng@linux.alibaba.com/

On Sun 2026-06-21 22:36:24, Zelin Deng wrote:
> 
> 在 2026/6/19 22:42, Miroslav Benes 写道:
> > On Mon, 25 May 2026, Zelin Deng wrote:
> > 
> > > After I did: make kselftest-all in top level of kernel source tree, top
> > > level Makefile was overwritten by auto generated contents by
> > > filechk_makefile:
> > > [root@emr: /home/shiyu.dzl/linux-next]$ cat Makefile
> > > export KBUILD_OUTPUT = .
> > > export KBUILD_EXTMOD = /home/shiyu.dzl/linux-next
> > > export KBUILD_EXTMOD_OUTPUT = /home/shiyu.dzl/linux-next
> > > include /home/shiyu.dzl/linux-next/Makefile
> > > 
> > > Top-level Makefile export sub_make_done=1, leaks into unrelated re-invocations
> > > of the top-level Makefile when recursive descent through selftests -
> > > building test_module of livepatch. That causes KBUILD_EXTMOD setup to be
> > > skipped, which leads to a relative/absolute path mismatch in srcroot vs
> > > CURDIR, falsely setting building_out_of_srctree, and ultimately overwriting
> > > the source tree's Makefile with a generated stub.
> > > 
> > > Clear sub_make_done before re-invoking the kernel Makefile.
> > > 
> > > Fixes: c4bbe83d27c2 ("livepatch: Move tests from lib/livepatch to selftests/livepatch")
> > > Signed-off-by: Zelin Deng <zelin.deng@linux.alibaba.com>
> > Adding Marcos and KLP ML.
> > 
> > I cannot reproduce and I do not understand it much from the changelog (I
> > am by far not a Kbuild expert). Could you share the exact steps to
> > reproduce please? If I just run 'make kselftest-all' in the top level, it
> > passes and livepatch test_modules are not even touched.
> > 
> > Miroslav
> 
> Thank you for replying.
> 
> Per my understanding, to build livepatch test_modules KDIR must be either
> set explicitly when doing 'make kselftest-all
> KDIR=<path-to-kernel-build-dir>' or have the kernel devel package installed.
> Otherwise the compilation could be skipped. (see
> tools/testing/selftests/livepatch/test_modules/Makefile)
> 
> KDIR ?= /lib/modules/$(shell uname -r)/build
> 
> ...
> 
> # Ensure that KDIR exists, otherwise skip the compilation
> modules:
> ifneq ("$(wildcard $(KDIR))", "")
>     $(Q)$(MAKE) -C $(KDIR) modules KBUILD_EXTMOD=$(TESTMODS_DIR)
> endif
> 
> ...
> 
> Here're how I reproduce the issue:
> 
> 1. pull linux-next, reset to HEAD, for example
> 3ce97bd3c4f18608335e709c24d6a40e7036cab8 (tag next-20260619)
> 
> 2. at linux-next tree: make all -j$(nproc) && make modules_install
> headers_install -j$(nproc) && make install && reboot
> 
> 3. at linux-next tree: make kselftest-all
> 
> 4. top level Makefile in linux-next has been overwritten by
> 
>     export KBUILD_OUTPUT = .
>     export KBUILD_EXTMOD = /home/shiyu.dzl/linux-next
>     export KBUILD_EXTMOD_OUTPUT = /home/shiyu.dzl/linux-next
>     include /home/shiyu.dzl/linux-next/Makefile
> 
> it is a stub generated by filechk_makefile.

It seems that "filechk_makefile" has reached mainline in v7.1-rc1,
see the commit c9bb03ac2c66bc5aa81b ("kbuild: reduce output spam when
building out of tree").

The commit message says:

<paste>
    The Makefile is now created even if the build is aborted due to an
    unclean working tree. That should not make a difference in practice.
 </paste>

It seems that is actually makes a difference in the livepatch selftest
case.

Sigh, the Makefile rules are a maze to me. It is possible that
we do something wrong in
tools/testing/selftests/livepatch/test_modules/Makefile. Namely
with:

ifneq ("$(wildcard $(KDIR))", "")
	$(Q)$(MAKE) -C $(KDIR) modules KBUILD_EXTMOD=$(TESTMODS_DIR)
endif

But I see "$(MAKE) -C ..." called in many other makefiles.

Best Regards,
Petr

> I'm not quite sure that it could be related to my toolchain (like make
> version ?), I briefed analysis the root cause on my environment (KDIR
> '/lib/modules/7.1.0-next-20260619/build' which actually a symbol link to my
> kernel source -> '/home/shiyu.dzl/linux-next'):
> 
>   1. sub_make_done leaks via environment. The top-level Makefile sets export
> sub_make_done := 1 after its first-pass initialization.
>   Because it is exported, every child make process inherits it.
>   2. livepatch test_modules re-invokes the top-level Makefile. The call
> chain is: top-level Makefile → kselftest-% pattern rule →
>   tools/testing/selftests/ → livepatch test_modules/Makefile → $(MAKE) -C
> $(KDIR) modules KBUILD_EXTMOD=..., which re-enters the top-level Makefile to
>   build an external module.
>   3. The inherited sub_make_done=1 skips critical initialization. The
> top-level Makefile's first-pass block (ifneq ($(sub_make_done),1)) is
>   skipped entirely. This block is responsible for correctly parsing
> command-line variables and setting up KBUILD_EXTMOD-related paths.
>   4. Path mismatch triggers false out-of-tree detection. With the
> initialization skipped, srcroot and CURDIR end up with mismatched values
> (e.g.,
>   absolute vs. relative). The comparison (ifeq ($(srcroot),$(CURDIR)))
> fails, so building_out_of_srctree is incorrectly set to 1.
>   5. outputmakefile overwrites the source tree's Makefile. Because
> building_out_of_srctree is set, the filechk_makefile rule fires and replaces
> the
>   real top-level Makefile with a generated stub containing KBUILD_OUTPUT,
> KBUILD_EXTMOD, and an include directive.
> 
>   Why make -C tools/testing/selftests/ all is unaffected: it enters the
> selftests directory directly without ever executing the top-level Makefile
>   first, so sub_make_done is never exported into the environment. When
> livepatch test_modules later invokes $(MAKE) -C $(KDIR), the top-level
> Makefile
>   runs its full initialization normally.
> 
> Thanks,
> 
> Zelin
> 

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

* Re: [PATCH] selftests: livepatch: unset sub_make_done in case top level Makefile be overwritten
  2026-06-30 14:32     ` Petr Mladek
@ 2026-06-30 16:12       ` Thomas Weißschuh
  2026-07-01 15:14         ` Petr Mladek
  0 siblings, 1 reply; 10+ messages in thread
From: Thomas Weißschuh @ 2026-06-30 16:12 UTC (permalink / raw)
  To: Zelin Deng, Petr Mladek
  Cc: Miroslav Benes, shuah, linux-kselftest, live-patching, mpdesouza,
	Nathan Chancellor, Nicolas Schier, linux-kbuild

Hi Zelin,

On Tue, Jun 30, 2026 at 04:32:16PM +0200, Petr Mladek wrote:
> Added some people involved in "filechk_makefile" feature into Cc.
> 
> For the new people, see the whole thread at
> https://lore.kernel.org/all/20260525083721.27857-1-zelin.deng@linux.alibaba.com/

Thanks for the report and forwarding it.

> On Sun 2026-06-21 22:36:24, Zelin Deng wrote:
> > 
> > 在 2026/6/19 22:42, Miroslav Benes 写道:
> > > On Mon, 25 May 2026, Zelin Deng wrote:
> > > 
> > > > After I did: make kselftest-all in top level of kernel source tree, top
> > > > level Makefile was overwritten by auto generated contents by
> > > > filechk_makefile:
> > > > [root@emr: /home/shiyu.dzl/linux-next]$ cat Makefile
> > > > export KBUILD_OUTPUT = .
> > > > export KBUILD_EXTMOD = /home/shiyu.dzl/linux-next
> > > > export KBUILD_EXTMOD_OUTPUT = /home/shiyu.dzl/linux-next
> > > > include /home/shiyu.dzl/linux-next/Makefile
> > > > 
> > > > Top-level Makefile export sub_make_done=1, leaks into unrelated re-invocations
> > > > of the top-level Makefile when recursive descent through selftests -
> > > > building test_module of livepatch. That causes KBUILD_EXTMOD setup to be
> > > > skipped, which leads to a relative/absolute path mismatch in srcroot vs
> > > > CURDIR, falsely setting building_out_of_srctree, and ultimately overwriting
> > > > the source tree's Makefile with a generated stub.
> > > > 
> > > > Clear sub_make_done before re-invoking the kernel Makefile.
> > > > 
> > > > Fixes: c4bbe83d27c2 ("livepatch: Move tests from lib/livepatch to selftests/livepatch")
> > > > Signed-off-by: Zelin Deng <zelin.deng@linux.alibaba.com>
> > > Adding Marcos and KLP ML.
> > > 
> > > I cannot reproduce and I do not understand it much from the changelog (I
> > > am by far not a Kbuild expert). Could you share the exact steps to
> > > reproduce please? If I just run 'make kselftest-all' in the top level, it
> > > passes and livepatch test_modules are not even touched.
> > > 
> > > Miroslav
> > 
> > Thank you for replying.
> > 
> > Per my understanding, to build livepatch test_modules KDIR must be either
> > set explicitly when doing 'make kselftest-all
> > KDIR=<path-to-kernel-build-dir>' or have the kernel devel package installed.
> > Otherwise the compilation could be skipped. (see
> > tools/testing/selftests/livepatch/test_modules/Makefile)
> > 
> > KDIR ?= /lib/modules/$(shell uname -r)/build
> > 
> > ...
> > 
> > # Ensure that KDIR exists, otherwise skip the compilation
> > modules:
> > ifneq ("$(wildcard $(KDIR))", "")
> >     $(Q)$(MAKE) -C $(KDIR) modules KBUILD_EXTMOD=$(TESTMODS_DIR)
> > endif
> > 
> > ...
> > 
> > Here're how I reproduce the issue:
> > 
> > 1. pull linux-next, reset to HEAD, for example
> > 3ce97bd3c4f18608335e709c24d6a40e7036cab8 (tag next-20260619)
> > 
> > 2. at linux-next tree: make all -j$(nproc) && make modules_install
> > headers_install -j$(nproc) && make install && reboot
> > 
> > 3. at linux-next tree: make kselftest-all
> > 
> > 4. top level Makefile in linux-next has been overwritten by
> > 
> >     export KBUILD_OUTPUT = .
> >     export KBUILD_EXTMOD = /home/shiyu.dzl/linux-next
> >     export KBUILD_EXTMOD_OUTPUT = /home/shiyu.dzl/linux-next
> >     include /home/shiyu.dzl/linux-next/Makefile
> > 
> > it is a stub generated by filechk_makefile.
> 
> It seems that "filechk_makefile" has reached mainline in v7.1-rc1,
> see the commit c9bb03ac2c66bc5aa81b ("kbuild: reduce output spam when
> building out of tree").
> 
> The commit message says:
> 
> <paste>
>     The Makefile is now created even if the build is aborted due to an
>     unclean working tree. That should not make a difference in practice.
>  </paste>
> 
> It seems that is actually makes a difference in the livepatch selftest
> case.
> 
> Sigh, the Makefile rules are a maze to me. It is possible that
> we do something wrong in
> tools/testing/selftests/livepatch/test_modules/Makefile. Namely
> with:
> 
> ifneq ("$(wildcard $(KDIR))", "")
> 	$(Q)$(MAKE) -C $(KDIR) modules KBUILD_EXTMOD=$(TESTMODS_DIR)
> endif
> 
> But I see "$(MAKE) -C ..." called in many other makefiles.
> 
> Best Regards,
> Petr
> 
> > I'm not quite sure that it could be related to my toolchain (like make
> > version ?), I briefed analysis the root cause on my environment (KDIR
> > '/lib/modules/7.1.0-next-20260619/build' which actually a symbol link to my
> > kernel source -> '/home/shiyu.dzl/linux-next'):
> > 
> >   1. sub_make_done leaks via environment. The top-level Makefile sets export
> > sub_make_done := 1 after its first-pass initialization.
> >   Because it is exported, every child make process inherits it.
> >   2. livepatch test_modules re-invokes the top-level Makefile. The call
> > chain is: top-level Makefile → kselftest-% pattern rule →
> >   tools/testing/selftests/ → livepatch test_modules/Makefile → $(MAKE) -C
> > $(KDIR) modules KBUILD_EXTMOD=..., which re-enters the top-level Makefile to
> >   build an external module.
> >   3. The inherited sub_make_done=1 skips critical initialization. The
> > top-level Makefile's first-pass block (ifneq ($(sub_make_done),1)) is
> >   skipped entirely. This block is responsible for correctly parsing
> > command-line variables and setting up KBUILD_EXTMOD-related paths.
> >   4. Path mismatch triggers false out-of-tree detection. With the
> > initialization skipped, srcroot and CURDIR end up with mismatched values
> > (e.g.,
> >   absolute vs. relative). The comparison (ifeq ($(srcroot),$(CURDIR)))
> > fails, so building_out_of_srctree is incorrectly set to 1.
> >   5. outputmakefile overwrites the source tree's Makefile. Because
> > building_out_of_srctree is set, the filechk_makefile rule fires and replaces
> > the
> >   real top-level Makefile with a generated stub containing KBUILD_OUTPUT,
> > KBUILD_EXTMOD, and an include directive.
> > 
> >   Why make -C tools/testing/selftests/ all is unaffected: it enters the
> > selftests directory directly without ever executing the top-level Makefile
> >   first, so sub_make_done is never exported into the environment. When
> > livepatch test_modules later invokes $(MAKE) -C $(KDIR), the top-level
> > Makefile
> >   runs its full initialization normally.

Can you try this:

diff --git a/Makefile b/Makefile
index b9c5792c79e0..f717a4dc96d6 100644
--- a/Makefile
+++ b/Makefile
@@ -1591,10 +1591,10 @@ tools/%: FORCE
 
 PHONY += kselftest
 kselftest: headers
-	$(Q)$(MAKE) -C $(srctree)/tools/testing/selftests run_tests
+	$(Q)unset sub_make_done; $(MAKE) -C $(srctree)/tools/testing/selftests run_tests
 
 kselftest-%: headers FORCE
-	$(Q)$(MAKE) -C $(srctree)/tools/testing/selftests $*
+	$(Q)unset sub_make_done; $(MAKE) -C $(srctree)/tools/testing/selftests $*
 
 PHONY += kselftest-merge
 kselftest-merge:

The same is done for cmd_install.


Thomas

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

* Re: [PATCH] selftests: livepatch: unset sub_make_done in case top level Makefile be overwritten
  2026-06-30 16:12       ` Thomas Weißschuh
@ 2026-07-01 15:14         ` Petr Mladek
  2026-07-01 15:19           ` Thomas Weißschuh
  0 siblings, 1 reply; 10+ messages in thread
From: Petr Mladek @ 2026-07-01 15:14 UTC (permalink / raw)
  To: Thomas Weißschuh
  Cc: Zelin Deng, Miroslav Benes, shuah, linux-kselftest, live-patching,
	mpdesouza, Nathan Chancellor, Nicolas Schier, linux-kbuild

On Tue 2026-06-30 18:12:46, Thomas Weißschuh wrote:
> Hi Zelin,
> 
> On Tue, Jun 30, 2026 at 04:32:16PM +0200, Petr Mladek wrote:
> > Added some people involved in "filechk_makefile" feature into Cc.
> > 
> > For the new people, see the whole thread at
> > https://lore.kernel.org/all/20260525083721.27857-1-zelin.deng@linux.alibaba.com/
> 
> Thanks for the report and forwarding it.
> 
> > On Sun 2026-06-21 22:36:24, Zelin Deng wrote:
> > > 
> > > 在 2026/6/19 22:42, Miroslav Benes 写道:
> > > > On Mon, 25 May 2026, Zelin Deng wrote:
> > > Here're how I reproduce the issue:
> > > 
> > > 1. pull linux-next, reset to HEAD, for example
> > > 3ce97bd3c4f18608335e709c24d6a40e7036cab8 (tag next-20260619)
> > > 
> > > 2. at linux-next tree: make all -j$(nproc) && make modules_install
> > > headers_install -j$(nproc) && make install && reboot
> > > 
> > > 3. at linux-next tree: make kselftest-all
> > > 
> > > 4. top level Makefile in linux-next has been overwritten by
> > > 
> > >     export KBUILD_OUTPUT = .
> > >     export KBUILD_EXTMOD = /home/shiyu.dzl/linux-next
> > >     export KBUILD_EXTMOD_OUTPUT = /home/shiyu.dzl/linux-next
> > >     include /home/shiyu.dzl/linux-next/Makefile
> > > 
> > > it is a stub generated by filechk_makefile.
> > 
> > It seems that "filechk_makefile" has reached mainline in v7.1-rc1,
> > see the commit c9bb03ac2c66bc5aa81b ("kbuild: reduce output spam when
> > building out of tree").
> > 
> > The commit message says:
> > 
> > <paste>
> >     The Makefile is now created even if the build is aborted due to an
> >     unclean working tree. That should not make a difference in practice.
> >  </paste>
> > 
> > It seems that is actually makes a difference in the livepatch selftest
> > case.
> > 
> > Sigh, the Makefile rules are a maze to me. It is possible that
> > we do something wrong in
> > tools/testing/selftests/livepatch/test_modules/Makefile. Namely
> > with:
> > 
> > ifneq ("$(wildcard $(KDIR))", "")
> > 	$(Q)$(MAKE) -C $(KDIR) modules KBUILD_EXTMOD=$(TESTMODS_DIR)
> > endif
> > 
> > But I see "$(MAKE) -C ..." called in many other makefiles.
> > 
> > Best Regards,
> > Petr
> > 
> > > I'm not quite sure that it could be related to my toolchain (like make
> > > version ?), I briefed analysis the root cause on my environment (KDIR
> > > '/lib/modules/7.1.0-next-20260619/build' which actually a symbol link to my
> > > kernel source -> '/home/shiyu.dzl/linux-next'):
> > > 
> > >   1. sub_make_done leaks via environment. The top-level Makefile sets export
> > > sub_make_done := 1 after its first-pass initialization.
> > >   Because it is exported, every child make process inherits it.
> > >   2. livepatch test_modules re-invokes the top-level Makefile. The call
> > > chain is: top-level Makefile → kselftest-% pattern rule →
> > >   tools/testing/selftests/ → livepatch test_modules/Makefile → $(MAKE) -C
> > > $(KDIR) modules KBUILD_EXTMOD=..., which re-enters the top-level Makefile to
> > >   build an external module.
> > >   3. The inherited sub_make_done=1 skips critical initialization. The
> > > top-level Makefile's first-pass block (ifneq ($(sub_make_done),1)) is
> > >   skipped entirely. This block is responsible for correctly parsing
> > > command-line variables and setting up KBUILD_EXTMOD-related paths.
> > >   4. Path mismatch triggers false out-of-tree detection. With the
> > > initialization skipped, srcroot and CURDIR end up with mismatched values
> > > (e.g.,
> > >   absolute vs. relative). The comparison (ifeq ($(srcroot),$(CURDIR)))
> > > fails, so building_out_of_srctree is incorrectly set to 1.
> > >   5. outputmakefile overwrites the source tree's Makefile. Because
> > > building_out_of_srctree is set, the filechk_makefile rule fires and replaces
> > > the
> > >   real top-level Makefile with a generated stub containing KBUILD_OUTPUT,
> > > KBUILD_EXTMOD, and an include directive.
> > > 
> > >   Why make -C tools/testing/selftests/ all is unaffected: it enters the
> > > selftests directory directly without ever executing the top-level Makefile
> > >   first, so sub_make_done is never exported into the environment. When
> > > livepatch test_modules later invokes $(MAKE) -C $(KDIR), the top-level
> > > Makefile
> > >   runs its full initialization normally.
> 
> Can you try this:
> 
> diff --git a/Makefile b/Makefile
> index b9c5792c79e0..f717a4dc96d6 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -1591,10 +1591,10 @@ tools/%: FORCE
>  
>  PHONY += kselftest
>  kselftest: headers
> -	$(Q)$(MAKE) -C $(srctree)/tools/testing/selftests run_tests
> +	$(Q)unset sub_make_done; $(MAKE) -C $(srctree)/tools/testing/selftests run_tests
>  
>  kselftest-%: headers FORCE
> -	$(Q)$(MAKE) -C $(srctree)/tools/testing/selftests $*
> +	$(Q)unset sub_make_done; $(MAKE) -C $(srctree)/tools/testing/selftests $*
>  
>  PHONY += kselftest-merge
>  kselftest-merge:

Heh, this is exactly the same change which Zelin Deng proposed as
well, see
https://lore.kernel.org/all/20260525083721.27857-1-zelin.deng@linux.alibaba.com/

> The same is done for cmd_install.

I guess that this is related to the commit 14ccc638b02f9ec ("kbuild:
cancel sub_make_done for the install target to fix DKMS"). Which
is related to the commit bcf637f54f6d2515d ("kbuild: parse C= and M=
before changing the working directory").

Honestly, it all looks like a wild magic to me. I would need much
better understanding of the Makefile maze to get on top of it.

But it seems that it is a reasonable fix after all. It solves the
original problem. It does not break my workflow. So, I tend to add:

Acked-by: Petr Mladek <pmladek@suse.com>

Best Regards,
Petr

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

* Re: [PATCH] selftests: livepatch: unset sub_make_done in case top level Makefile be overwritten
  2026-07-01 15:14         ` Petr Mladek
@ 2026-07-01 15:19           ` Thomas Weißschuh
  2026-07-02  2:40             ` Zelin Deng
  0 siblings, 1 reply; 10+ messages in thread
From: Thomas Weißschuh @ 2026-07-01 15:19 UTC (permalink / raw)
  To: Petr Mladek
  Cc: Zelin Deng, Miroslav Benes, shuah, linux-kselftest, live-patching,
	mpdesouza, Nathan Chancellor, Nicolas Schier, linux-kbuild

On Wed, Jul 01, 2026 at 05:14:24PM +0200, Petr Mladek wrote:
> On Tue 2026-06-30 18:12:46, Thomas Weißschuh wrote:
> > Hi Zelin,
> > 
> > On Tue, Jun 30, 2026 at 04:32:16PM +0200, Petr Mladek wrote:
> > > Added some people involved in "filechk_makefile" feature into Cc.
> > > 
> > > For the new people, see the whole thread at
> > > https://lore.kernel.org/all/20260525083721.27857-1-zelin.deng@linux.alibaba.com/
> > 
> > Thanks for the report and forwarding it.
> > 
> > > On Sun 2026-06-21 22:36:24, Zelin Deng wrote:
> > > > 
> > > > 在 2026/6/19 22:42, Miroslav Benes 写道:
> > > > > On Mon, 25 May 2026, Zelin Deng wrote:
> > > > Here're how I reproduce the issue:
> > > > 
> > > > 1. pull linux-next, reset to HEAD, for example
> > > > 3ce97bd3c4f18608335e709c24d6a40e7036cab8 (tag next-20260619)
> > > > 
> > > > 2. at linux-next tree: make all -j$(nproc) && make modules_install
> > > > headers_install -j$(nproc) && make install && reboot
> > > > 
> > > > 3. at linux-next tree: make kselftest-all
> > > > 
> > > > 4. top level Makefile in linux-next has been overwritten by
> > > > 
> > > >     export KBUILD_OUTPUT = .
> > > >     export KBUILD_EXTMOD = /home/shiyu.dzl/linux-next
> > > >     export KBUILD_EXTMOD_OUTPUT = /home/shiyu.dzl/linux-next
> > > >     include /home/shiyu.dzl/linux-next/Makefile
> > > > 
> > > > it is a stub generated by filechk_makefile.
> > > 
> > > It seems that "filechk_makefile" has reached mainline in v7.1-rc1,
> > > see the commit c9bb03ac2c66bc5aa81b ("kbuild: reduce output spam when
> > > building out of tree").
> > > 
> > > The commit message says:
> > > 
> > > <paste>
> > >     The Makefile is now created even if the build is aborted due to an
> > >     unclean working tree. That should not make a difference in practice.
> > >  </paste>
> > > 
> > > It seems that is actually makes a difference in the livepatch selftest
> > > case.
> > > 
> > > Sigh, the Makefile rules are a maze to me. It is possible that
> > > we do something wrong in
> > > tools/testing/selftests/livepatch/test_modules/Makefile. Namely
> > > with:
> > > 
> > > ifneq ("$(wildcard $(KDIR))", "")
> > > 	$(Q)$(MAKE) -C $(KDIR) modules KBUILD_EXTMOD=$(TESTMODS_DIR)
> > > endif
> > > 
> > > But I see "$(MAKE) -C ..." called in many other makefiles.
> > > 
> > > Best Regards,
> > > Petr
> > > 
> > > > I'm not quite sure that it could be related to my toolchain (like make
> > > > version ?), I briefed analysis the root cause on my environment (KDIR
> > > > '/lib/modules/7.1.0-next-20260619/build' which actually a symbol link to my
> > > > kernel source -> '/home/shiyu.dzl/linux-next'):
> > > > 
> > > >   1. sub_make_done leaks via environment. The top-level Makefile sets export
> > > > sub_make_done := 1 after its first-pass initialization.
> > > >   Because it is exported, every child make process inherits it.
> > > >   2. livepatch test_modules re-invokes the top-level Makefile. The call
> > > > chain is: top-level Makefile → kselftest-% pattern rule →
> > > >   tools/testing/selftests/ → livepatch test_modules/Makefile → $(MAKE) -C
> > > > $(KDIR) modules KBUILD_EXTMOD=..., which re-enters the top-level Makefile to
> > > >   build an external module.
> > > >   3. The inherited sub_make_done=1 skips critical initialization. The
> > > > top-level Makefile's first-pass block (ifneq ($(sub_make_done),1)) is
> > > >   skipped entirely. This block is responsible for correctly parsing
> > > > command-line variables and setting up KBUILD_EXTMOD-related paths.
> > > >   4. Path mismatch triggers false out-of-tree detection. With the
> > > > initialization skipped, srcroot and CURDIR end up with mismatched values
> > > > (e.g.,
> > > >   absolute vs. relative). The comparison (ifeq ($(srcroot),$(CURDIR)))
> > > > fails, so building_out_of_srctree is incorrectly set to 1.
> > > >   5. outputmakefile overwrites the source tree's Makefile. Because
> > > > building_out_of_srctree is set, the filechk_makefile rule fires and replaces
> > > > the
> > > >   real top-level Makefile with a generated stub containing KBUILD_OUTPUT,
> > > > KBUILD_EXTMOD, and an include directive.
> > > > 
> > > >   Why make -C tools/testing/selftests/ all is unaffected: it enters the
> > > > selftests directory directly without ever executing the top-level Makefile
> > > >   first, so sub_make_done is never exported into the environment. When
> > > > livepatch test_modules later invokes $(MAKE) -C $(KDIR), the top-level
> > > > Makefile
> > > >   runs its full initialization normally.
> > 
> > Can you try this:
> > 
> > diff --git a/Makefile b/Makefile
> > index b9c5792c79e0..f717a4dc96d6 100644
> > --- a/Makefile
> > +++ b/Makefile
> > @@ -1591,10 +1591,10 @@ tools/%: FORCE
> >  
> >  PHONY += kselftest
> >  kselftest: headers
> > -	$(Q)$(MAKE) -C $(srctree)/tools/testing/selftests run_tests
> > +	$(Q)unset sub_make_done; $(MAKE) -C $(srctree)/tools/testing/selftests run_tests
> >  
> >  kselftest-%: headers FORCE
> > -	$(Q)$(MAKE) -C $(srctree)/tools/testing/selftests $*
> > +	$(Q)unset sub_make_done; $(MAKE) -C $(srctree)/tools/testing/selftests $*
> >  
> >  PHONY += kselftest-merge
> >  kselftest-merge:
> 
> Heh, this is exactly the same change which Zelin Deng proposed as
> well, see
> https://lore.kernel.org/all/20260525083721.27857-1-zelin.deng@linux.alibaba.com/

The difference is that my proposal is in the toplevel Makefile while
Zelin's is in the selftest one. The toplevel one should fix all selftests at
the same time.

> > The same is done for cmd_install.
> 
> I guess that this is related to the commit 14ccc638b02f9ec ("kbuild:
> cancel sub_make_done for the install target to fix DKMS"). Which
> is related to the commit bcf637f54f6d2515d ("kbuild: parse C= and M=
> before changing the working directory").
> 
> Honestly, it all looks like a wild magic to me. I would need much
> better understanding of the Makefile maze to get on top of it.

I was not able to reproduce the issue yet. My proposal is just a guess.
We'll need feedback from Zelin.

> But it seems that it is a reasonable fix after all. It solves the
> original problem. It does not break my workflow. So, I tend to add:
> 
> Acked-by: Petr Mladek <pmladek@suse.com>


Thomas

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

* Re: [PATCH] selftests: livepatch: unset sub_make_done in case top level Makefile be overwritten
  2026-07-01 15:19           ` Thomas Weißschuh
@ 2026-07-02  2:40             ` Zelin Deng
  2026-07-02  7:11               ` Thomas Weißschuh
  0 siblings, 1 reply; 10+ messages in thread
From: Zelin Deng @ 2026-07-02  2:40 UTC (permalink / raw)
  To: Thomas Weißschuh, Petr Mladek
  Cc: Miroslav Benes, shuah, linux-kselftest, live-patching, mpdesouza,
	Nathan Chancellor, Nicolas Schier, linux-kbuild

在 2026/7/1 23:19, Thomas Weißschuh 写道:

> On Wed, Jul 01, 2026 at 05:14:24PM +0200, Petr Mladek wrote:
>> On Tue 2026-06-30 18:12:46, Thomas Weißschuh wrote:
>>> Hi Zelin,
>>>
>>> On Tue, Jun 30, 2026 at 04:32:16PM +0200, Petr Mladek wrote:
>>>> Added some people involved in "filechk_makefile" feature into Cc.
>>>>
>>>> For the new people, see the whole thread at
>>>> https://lore.kernel.org/all/20260525083721.27857-1-zelin.deng@linux.alibaba.com/
>>> Thanks for the report and forwarding it.
>>>
>>>> On Sun 2026-06-21 22:36:24, Zelin Deng wrote:
>>>>> 在 2026/6/19 22:42, Miroslav Benes 写道:
>>>>>> On Mon, 25 May 2026, Zelin Deng wrote:
>>>>> Here're how I reproduce the issue:
>>>>>
>>>>> 1. pull linux-next, reset to HEAD, for example
>>>>> 3ce97bd3c4f18608335e709c24d6a40e7036cab8 (tag next-20260619)
>>>>>
>>>>> 2. at linux-next tree: make all -j$(nproc) && make modules_install
>>>>> headers_install -j$(nproc) && make install && reboot
>>>>>
>>>>> 3. at linux-next tree: make kselftest-all
>>>>>
>>>>> 4. top level Makefile in linux-next has been overwritten by
>>>>>
>>>>>      export KBUILD_OUTPUT = .
>>>>>      export KBUILD_EXTMOD = /home/shiyu.dzl/linux-next
>>>>>      export KBUILD_EXTMOD_OUTPUT = /home/shiyu.dzl/linux-next
>>>>>      include /home/shiyu.dzl/linux-next/Makefile
>>>>>
>>>>> it is a stub generated by filechk_makefile.
>>>> It seems that "filechk_makefile" has reached mainline in v7.1-rc1,
>>>> see the commit c9bb03ac2c66bc5aa81b ("kbuild: reduce output spam when
>>>> building out of tree").
>>>>
>>>> The commit message says:
>>>>
>>>> <paste>
>>>>      The Makefile is now created even if the build is aborted due to an
>>>>      unclean working tree. That should not make a difference in practice.
>>>>   </paste>
>>>>
>>>> It seems that is actually makes a difference in the livepatch selftest
>>>> case.
>>>>
>>>> Sigh, the Makefile rules are a maze to me. It is possible that
>>>> we do something wrong in
>>>> tools/testing/selftests/livepatch/test_modules/Makefile. Namely
>>>> with:
>>>>
>>>> ifneq ("$(wildcard $(KDIR))", "")
>>>> 	$(Q)$(MAKE) -C $(KDIR) modules KBUILD_EXTMOD=$(TESTMODS_DIR)
>>>> endif
>>>>
>>>> But I see "$(MAKE) -C ..." called in many other makefiles.
>>>>
>>>> Best Regards,
>>>> Petr
>>>>
>>>>> I'm not quite sure that it could be related to my toolchain (like make
>>>>> version ?), I briefed analysis the root cause on my environment (KDIR
>>>>> '/lib/modules/7.1.0-next-20260619/build' which actually a symbol link to my
>>>>> kernel source -> '/home/shiyu.dzl/linux-next'):
>>>>>
>>>>>    1. sub_make_done leaks via environment. The top-level Makefile sets export
>>>>> sub_make_done := 1 after its first-pass initialization.
>>>>>    Because it is exported, every child make process inherits it.
>>>>>    2. livepatch test_modules re-invokes the top-level Makefile. The call
>>>>> chain is: top-level Makefile → kselftest-% pattern rule →
>>>>>    tools/testing/selftests/ → livepatch test_modules/Makefile → $(MAKE) -C
>>>>> $(KDIR) modules KBUILD_EXTMOD=..., which re-enters the top-level Makefile to
>>>>>    build an external module.
>>>>>    3. The inherited sub_make_done=1 skips critical initialization. The
>>>>> top-level Makefile's first-pass block (ifneq ($(sub_make_done),1)) is
>>>>>    skipped entirely. This block is responsible for correctly parsing
>>>>> command-line variables and setting up KBUILD_EXTMOD-related paths.
>>>>>    4. Path mismatch triggers false out-of-tree detection. With the
>>>>> initialization skipped, srcroot and CURDIR end up with mismatched values
>>>>> (e.g.,
>>>>>    absolute vs. relative). The comparison (ifeq ($(srcroot),$(CURDIR)))
>>>>> fails, so building_out_of_srctree is incorrectly set to 1.
>>>>>    5. outputmakefile overwrites the source tree's Makefile. Because
>>>>> building_out_of_srctree is set, the filechk_makefile rule fires and replaces
>>>>> the
>>>>>    real top-level Makefile with a generated stub containing KBUILD_OUTPUT,
>>>>> KBUILD_EXTMOD, and an include directive.
>>>>>
>>>>>    Why make -C tools/testing/selftests/ all is unaffected: it enters the
>>>>> selftests directory directly without ever executing the top-level Makefile
>>>>>    first, so sub_make_done is never exported into the environment. When
>>>>> livepatch test_modules later invokes $(MAKE) -C $(KDIR), the top-level
>>>>> Makefile
>>>>>    runs its full initialization normally.
>>> Can you try this:
>>>
>>> diff --git a/Makefile b/Makefile
>>> index b9c5792c79e0..f717a4dc96d6 100644
>>> --- a/Makefile
>>> +++ b/Makefile
>>> @@ -1591,10 +1591,10 @@ tools/%: FORCE
>>>   
>>>   PHONY += kselftest
>>>   kselftest: headers
>>> -	$(Q)$(MAKE) -C $(srctree)/tools/testing/selftests run_tests
>>> +	$(Q)unset sub_make_done; $(MAKE) -C $(srctree)/tools/testing/selftests run_tests
>>>   
>>>   kselftest-%: headers FORCE
>>> -	$(Q)$(MAKE) -C $(srctree)/tools/testing/selftests $*
>>> +	$(Q)unset sub_make_done; $(MAKE) -C $(srctree)/tools/testing/selftests $*
>>>   
>>>   PHONY += kselftest-merge
>>>   kselftest-merge:
>> Heh, this is exactly the same change which Zelin Deng proposed as
>> well, see
>> https://lore.kernel.org/all/20260525083721.27857-1-zelin.deng@linux.alibaba.com/
> The difference is that my proposal is in the toplevel Makefile while
> Zelin's is in the selftest one. The toplevel one should fix all selftests at
> the same time.
Thank you Petr. Yeah, Thomas's proposal is in top-level Makefile - if 
any other selftest also re-invokes the top-level Makefile with 
KBUILD_EXTMOD, it'd be covered too.
>
>>> The same is done for cmd_install.
>> I guess that this is related to the commit 14ccc638b02f9ec ("kbuild:
>> cancel sub_make_done for the install target to fix DKMS"). Which
>> is related to the commit bcf637f54f6d2515d ("kbuild: parse C= and M=
>> before changing the working directory").
>>
>> Honestly, it all looks like a wild magic to me. I would need much
>> better understanding of the Makefile maze to get on top of it.
> I was not able to reproduce the issue yet. My proposal is just a guess.
> We'll need feedback from Zelin.

I had verify your proposal, it worked well - liveupatch kmod was built 
successfully and top-level Makefile wasn't overwritten any more.

Petr thank you for your Ack, I think Thomas's proposal is better than 
mine, we don't have to do the quirk everytime when new selftest kmod is 
added.

Thomas, so do I have to send a updated patch or you will do it by youself?

>
>> But it seems that it is a reasonable fix after all. It solves the
>> original problem. It does not break my workflow. So, I tend to add:
>>
>> Acked-by: Petr Mladek <pmladek@suse.com>
>
> Thomas

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

* Re: [PATCH] selftests: livepatch: unset sub_make_done in case top level Makefile be overwritten
  2026-07-02  2:40             ` Zelin Deng
@ 2026-07-02  7:11               ` Thomas Weißschuh
  2026-07-02  8:09                 ` Zelin Deng
  0 siblings, 1 reply; 10+ messages in thread
From: Thomas Weißschuh @ 2026-07-02  7:11 UTC (permalink / raw)
  To: Zelin Deng
  Cc: Petr Mladek, Miroslav Benes, shuah, linux-kselftest,
	live-patching, mpdesouza, Nathan Chancellor, Nicolas Schier,
	linux-kbuild

On Thu, Jul 02, 2026 at 10:40:21AM +0800, Zelin Deng wrote:
> 在 2026/7/1 23:19, Thomas Weißschuh 写道:

(...)

> I had verify your proposal, it worked well - liveupatch kmod was built
> successfully and top-level Makefile wasn't overwritten any more.

Thanks for testing!

> Petr thank you for your Ack, I think Thomas's proposal is better than mine,
> we don't have to do the quirk everytime when new selftest kmod is added.
> 
> Thomas, so do I have to send a updated patch or you will do it by youself?

Your choice. You did most of the work, so should be credited as author.
If you don't want I can do it, too.


Thomas

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

* Re: [PATCH] selftests: livepatch: unset sub_make_done in case top level Makefile be overwritten
  2026-07-02  7:11               ` Thomas Weißschuh
@ 2026-07-02  8:09                 ` Zelin Deng
  0 siblings, 0 replies; 10+ messages in thread
From: Zelin Deng @ 2026-07-02  8:09 UTC (permalink / raw)
  To: Thomas Weißschuh
  Cc: Petr Mladek, Miroslav Benes, shuah, linux-kselftest,
	live-patching, mpdesouza, Nathan Chancellor, Nicolas Schier,
	linux-kbuild


On 2026/7/2 15:11, Thomas Weißschuh wrote:
> On Thu, Jul 02, 2026 at 10:40:21AM +0800, Zelin Deng wrote:
>> 在 2026/7/1 23:19, Thomas Weißschuh 写道:
> (...)
:) Now client language has changed.
>> I had verify your proposal, it worked well - liveupatch kmod was built
>> successfully and top-level Makefile wasn't overwritten any more.
> Thanks for testing!
>
>> Petr thank you for your Ack, I think Thomas's proposal is better than mine,
>> we don't have to do the quirk everytime when new selftest kmod is added.
>>
>> Thomas, so do I have to send a updated patch or you will do it by youself?
> Your choice. You did most of the work, so should be credited as author.
> If you don't want I can do it, too.
Never mind, it will be good if you can do the change, so please do it 
thank you. I'm just glad to report the issue and get some positive 
feedbacks.
>
> Thomas

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

end of thread, other threads:[~2026-07-02  8:09 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-25  8:37 [PATCH] selftests: livepatch: unset sub_make_done in case top level Makefile be overwritten Zelin Deng
2026-06-19 14:42 ` Miroslav Benes
2026-06-21 14:36   ` Zelin Deng
2026-06-30 14:32     ` Petr Mladek
2026-06-30 16:12       ` Thomas Weißschuh
2026-07-01 15:14         ` Petr Mladek
2026-07-01 15:19           ` Thomas Weißschuh
2026-07-02  2:40             ` Zelin Deng
2026-07-02  7:11               ` Thomas Weißschuh
2026-07-02  8:09                 ` Zelin Deng

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