Hi Greg, stable all,
On Fri, Jul 09, 2021 at 01:50:16PM +0800, Gao Xiang wrote:
On Wed, Jul 07, 2021 at 01:15:28AM +0800, kernel test robot wrote:
tree: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.4.y head: 3909e2374335335c9504467caabc906d3f7487e4 commit: defcc2b5e54a4724fb5733f802edf5dd596018b6 [7045/7049] lib/lz4: explicitly support in-place decompression config: mips-randconfig-r036-20210706 (attached as .config) compiler: mipsel-linux-gcc (GCC) 9.3.0 reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git/c... git remote add linux-stable-rc https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git git fetch --no-tags linux-stable-rc linux-5.4.y git checkout defcc2b5e54a4724fb5733f802edf5dd596018b6 # save the attached .config to linux build tree mkdir build_dir COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross O=build_dir ARCH=mips SHELL=/bin/bash
If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot lkp@intel.com
Which is weird, does the preboot environment miss memmove() on mipsel? Just a guess, I may look into that myself later...
After manually checking, I found memmove() for the mips preboot environment was incidentally introduced by commit a510b616131f ("MIPS: Add support for ZSTD-compressed kernels") which wasn't included in v5.4, but included in v5.10 as below (so v5.10.y is fine): https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/ar...
And when I applied the following patch partially from the original commit, the compile error with the command lines mentioned above was gone:
diff --git a/arch/mips/boot/compressed/string.c b/arch/mips/boot/compressed/string.c index 43beecc3587c..e9ab7ea592ba 100644 --- a/arch/mips/boot/compressed/string.c +++ b/arch/mips/boot/compressed/string.c @@ -27,3 +27,19 @@ void *memset(void *s, int c, size_t n) ss[i] = c; return s; } + +void * __weak memmove(void *dest, const void *src, size_t n) +{ + unsigned int i; + const char *s = src; + char *d = dest; + + if ((uintptr_t)dest < (uintptr_t)src) { + for (i = 0; i < n; i++) + d[i] = s[i]; + } else { + for (i = n; i > 0; i--) + d[i - 1] = s[i - 1]; + } + return dest; +}
How to backport such commit partially to the v5.4.y stable kernel? ... Also, it would be better to check other mips compile combinations automatically since it's hard for me to check all such combinations one-by-one...
Thanks, Gao Xiang
Thanks, Gao Xiang
All errors (new ones prefixed by >>):
mipsel-linux-ld: arch/mips/boot/compressed/decompress.o: in function `LZ4_decompress_safe_withSmallPrefix': decompress.c:(.text+0x220): undefined reference to `memmove' mipsel-linux-ld: arch/mips/boot/compressed/decompress.o: in function `LZ4_decompress_fast_extDict': decompress.c:(.text+0x694): undefined reference to `memmove'
mipsel-linux-ld: decompress.c:(.text+0x774): undefined reference to `memmove'
mipsel-linux-ld: arch/mips/boot/compressed/decompress.o: in function `LZ4_decompress_safe': decompress.c:(.text+0xb88): undefined reference to `memmove' mipsel-linux-ld: arch/mips/boot/compressed/decompress.o: in function `LZ4_decompress_safe_partial': decompress.c:(.text+0x1078): undefined reference to `memmove' mipsel-linux-ld: arch/mips/boot/compressed/decompress.o:decompress.c:(.text+0x12f8): more undefined references to `memmove' follow
0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
On Fri, Jul 09, 2021 at 03:20:41PM +0800, Gao Xiang wrote:
Hi Greg, stable all,
On Fri, Jul 09, 2021 at 01:50:16PM +0800, Gao Xiang wrote:
On Wed, Jul 07, 2021 at 01:15:28AM +0800, kernel test robot wrote:
tree: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.4.y head: 3909e2374335335c9504467caabc906d3f7487e4 commit: defcc2b5e54a4724fb5733f802edf5dd596018b6 [7045/7049] lib/lz4: explicitly support in-place decompression config: mips-randconfig-r036-20210706 (attached as .config) compiler: mipsel-linux-gcc (GCC) 9.3.0 reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git/c... git remote add linux-stable-rc https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git git fetch --no-tags linux-stable-rc linux-5.4.y git checkout defcc2b5e54a4724fb5733f802edf5dd596018b6 # save the attached .config to linux build tree mkdir build_dir COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross O=build_dir ARCH=mips SHELL=/bin/bash
If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot lkp@intel.com
Which is weird, does the preboot environment miss memmove() on mipsel? Just a guess, I may look into that myself later...
After manually checking, I found memmove() for the mips preboot environment was incidentally introduced by commit a510b616131f ("MIPS: Add support for ZSTD-compressed kernels") which wasn't included in v5.4, but included in v5.10 as below (so v5.10.y is fine): https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/ar...
And when I applied the following patch partially from the original commit, the compile error with the command lines mentioned above was gone:
diff --git a/arch/mips/boot/compressed/string.c b/arch/mips/boot/compressed/string.c index 43beecc3587c..e9ab7ea592ba 100644 --- a/arch/mips/boot/compressed/string.c +++ b/arch/mips/boot/compressed/string.c @@ -27,3 +27,19 @@ void *memset(void *s, int c, size_t n) ss[i] = c; return s; }
+void * __weak memmove(void *dest, const void *src, size_t n) +{
- unsigned int i;
- const char *s = src;
- char *d = dest;
- if ((uintptr_t)dest < (uintptr_t)src) {
for (i = 0; i < n; i++)
d[i] = s[i];
- } else {
for (i = n; i > 0; i--)
d[i - 1] = s[i - 1];
- }
- return dest;
+}
How to backport such commit partially to the v5.4.y stable kernel?
Please submit it in a format which we can apply it.
... Also, it would be better to check other mips compile combinations automatically since it's hard for me to check all such combinations one-by-one...
That's what kernelci is for, can you use that?
thanks,
greg k-h
commit a510b616131f85215ba156ed67e5ed1c0701f80f upstream.
kernel test robot reported a 5.4.y build issue found by randconfig [1] after backporting commit 89b158635ad7 ("lib/lz4: explicitly support in-place decompression""). This isn't a problem for v5.10+ since commit a510b616131f ("MIPS: Add support for ZSTD-compressed kernels") which wasn't included in v5.4, but included in v5.10.y, so only v5.4.y is effected.
This partially cherry-picks the memmove part of commit a510b616131f to fix the reported build issue for v5.4.y stable only. Hopefully kernelci could also double check this.
[1] https://lore.kernel.org/r/202107070120.6dOj1kB7-lkp@intel.com/ Fixes: defcc2b5e54a ("lib/lz4: explicitly support in-place decompression") # 5.4.y Reported-by: kernel test robot lkp@intel.com Signed-off-by: Gao Xiang hsiangkao@linux.alibaba.com --- not sure if the stable-only patch format is like this, it partially cherry-picks the useful memmove part of commit a510b616131f to fix the build issue found by randconfig fuzz only.
arch/mips/boot/compressed/string.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+)
diff --git a/arch/mips/boot/compressed/string.c b/arch/mips/boot/compressed/string.c index 43beecc3587c..e9ab7ea592ba 100644 --- a/arch/mips/boot/compressed/string.c +++ b/arch/mips/boot/compressed/string.c @@ -27,3 +27,19 @@ void *memset(void *s, int c, size_t n) ss[i] = c; return s; } + +void * __weak memmove(void *dest, const void *src, size_t n) +{ + unsigned int i; + const char *s = src; + char *d = dest; + + if ((uintptr_t)dest < (uintptr_t)src) { + for (i = 0; i < n; i++) + d[i] = s[i]; + } else { + for (i = n; i > 0; i--) + d[i - 1] = s[i - 1]; + } + return dest; +}
Hi,
On Fri, Jul 09, 2021 at 09:24:08PM +0800, Gao Xiang wrote:
commit a510b616131f85215ba156ed67e5ed1c0701f80f upstream.
kernel test robot reported a 5.4.y build issue found by randconfig [1] after backporting commit 89b158635ad7 ("lib/lz4: explicitly support in-place decompression""). This isn't a problem for v5.10+ since commit a510b616131f ("MIPS: Add support for ZSTD-compressed kernels") which wasn't included in v5.4, but included in v5.10.y, so only v5.4.y is effected.
This partially cherry-picks the memmove part of commit a510b616131f to fix the reported build issue for v5.4.y stable only. Hopefully kernelci could also double check this.
[1] https://lore.kernel.org/r/202107070120.6dOj1kB7-lkp@intel.com/ Fixes: defcc2b5e54a ("lib/lz4: explicitly support in-place decompression") # 5.4.y Reported-by: kernel test robot lkp@intel.com Signed-off-by: Gao Xiang hsiangkao@linux.alibaba.com
not sure if the stable-only patch format is like this, it partially cherry-picks the useful memmove part of commit a510b616131f to fix the build issue found by randconfig fuzz only.
ping.. are there more things I can do for this?
Thanks, Gao Xiang
arch/mips/boot/compressed/string.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+)
diff --git a/arch/mips/boot/compressed/string.c b/arch/mips/boot/compressed/string.c index 43beecc3587c..e9ab7ea592ba 100644 --- a/arch/mips/boot/compressed/string.c +++ b/arch/mips/boot/compressed/string.c @@ -27,3 +27,19 @@ void *memset(void *s, int c, size_t n) ss[i] = c; return s; }
+void * __weak memmove(void *dest, const void *src, size_t n) +{
- unsigned int i;
- const char *s = src;
- char *d = dest;
- if ((uintptr_t)dest < (uintptr_t)src) {
for (i = 0; i < n; i++)
d[i] = s[i];
- } else {
for (i = n; i > 0; i--)
d[i - 1] = s[i - 1];
- }
- return dest;
+}
2.24.4
On Fri, Jul 09, 2021 at 09:24:08PM +0800, Gao Xiang wrote:
commit a510b616131f85215ba156ed67e5ed1c0701f80f upstream.
That is not what this commit id is :(
Please fix this up and be more careful.
thanks,
greg k-h
Hi Greg,
On Thu, Jul 15, 2021 at 12:52:33PM +0200, Greg Kroah-Hartman wrote:
On Fri, Jul 09, 2021 at 09:24:08PM +0800, Gao Xiang wrote:
commit a510b616131f85215ba156ed67e5ed1c0701f80f upstream.
That is not what this commit id is :(
Please fix this up and be more careful.
That's the exact commit, the original upstream commit was named as "MIPS: Add support for ZSTD-compressed kernels", which contains the memmove() definition so the upstream / 5.10 LTS kernel is fine.
But for 5.4 LTS, we shouldn't backport the whole patch since only memmove() part is needed in order to fix the build regression...
Thanks, Gao Xiang
thanks,
greg k-h
On Thu, Jul 15, 2021 at 07:22:00PM +0800, Gao Xiang wrote:
Hi Greg,
On Thu, Jul 15, 2021 at 12:52:33PM +0200, Greg Kroah-Hartman wrote:
On Fri, Jul 09, 2021 at 09:24:08PM +0800, Gao Xiang wrote:
commit a510b616131f85215ba156ed67e5ed1c0701f80f upstream.
That is not what this commit id is :(
Please fix this up and be more careful.
That's the exact commit, the original upstream commit was named as "MIPS: Add support for ZSTD-compressed kernels", which contains the memmove() definition so the upstream / 5.10 LTS kernel is fine.
But for 5.4 LTS, we shouldn't backport the whole patch since only memmove() part is needed in order to fix the build regression...
That was not obvious, and is confusing :(
Please just submit the fix and say _why_ this is not an upstream commit, do not attempt to emulate an upstream commit like your change did.
thanks,
greg k-h
On Thu, Jul 15, 2021 at 01:35:39PM +0200, Greg Kroah-Hartman wrote:
On Thu, Jul 15, 2021 at 07:22:00PM +0800, Gao Xiang wrote:
Hi Greg,
On Thu, Jul 15, 2021 at 12:52:33PM +0200, Greg Kroah-Hartman wrote:
On Fri, Jul 09, 2021 at 09:24:08PM +0800, Gao Xiang wrote:
commit a510b616131f85215ba156ed67e5ed1c0701f80f upstream.
That is not what this commit id is :(
Please fix this up and be more careful.
That's the exact commit, the original upstream commit was named as "MIPS: Add support for ZSTD-compressed kernels", which contains the memmove() definition so the upstream / 5.10 LTS kernel is fine.
But for 5.4 LTS, we shouldn't backport the whole patch since only memmove() part is needed in order to fix the build regression...
That was not obvious, and is confusing :(
Please just submit the fix and say _why_ this is not an upstream commit, do not attempt to emulate an upstream commit like your change did.
Ok, got it. I was confused how to handle such condition as well... Let me resend it...
Thanks, Gao Xiang
thanks,
greg k-h
On Fri, Jul 09, 2021 at 12:31:12PM +0200, Greg Kroah-Hartman wrote:
On Fri, Jul 09, 2021 at 03:20:41PM +0800, Gao Xiang wrote:
Hi Greg, stable all,
On Fri, Jul 09, 2021 at 01:50:16PM +0800, Gao Xiang wrote:
On Wed, Jul 07, 2021 at 01:15:28AM +0800, kernel test robot wrote:
tree: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.4.y head: 3909e2374335335c9504467caabc906d3f7487e4 commit: defcc2b5e54a4724fb5733f802edf5dd596018b6 [7045/7049] lib/lz4: explicitly support in-place decompression config: mips-randconfig-r036-20210706 (attached as .config) compiler: mipsel-linux-gcc (GCC) 9.3.0 reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git/c... git remote add linux-stable-rc https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git git fetch --no-tags linux-stable-rc linux-5.4.y git checkout defcc2b5e54a4724fb5733f802edf5dd596018b6 # save the attached .config to linux build tree mkdir build_dir COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross O=build_dir ARCH=mips SHELL=/bin/bash
If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot lkp@intel.com
Which is weird, does the preboot environment miss memmove() on mipsel? Just a guess, I may look into that myself later...
After manually checking, I found memmove() for the mips preboot environment was incidentally introduced by commit a510b616131f ("MIPS: Add support for ZSTD-compressed kernels") which wasn't included in v5.4, but included in v5.10 as below (so v5.10.y is fine): https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/ar...
And when I applied the following patch partially from the original commit, the compile error with the command lines mentioned above was gone:
diff --git a/arch/mips/boot/compressed/string.c b/arch/mips/boot/compressed/string.c index 43beecc3587c..e9ab7ea592ba 100644 --- a/arch/mips/boot/compressed/string.c +++ b/arch/mips/boot/compressed/string.c @@ -27,3 +27,19 @@ void *memset(void *s, int c, size_t n) ss[i] = c; return s; }
+void * __weak memmove(void *dest, const void *src, size_t n) +{
- unsigned int i;
- const char *s = src;
- char *d = dest;
- if ((uintptr_t)dest < (uintptr_t)src) {
for (i = 0; i < n; i++)
d[i] = s[i];
- } else {
for (i = n; i > 0; i--)
d[i - 1] = s[i - 1];
- }
- return dest;
+}
How to backport such commit partially to the v5.4.y stable kernel?
Please submit it in a format which we can apply it.
I've sent out a patch (although not sure if the exact format like this): https://lore.kernel.org/r/20210709132408.174206-1-hsiangkao@linux.alibaba.co...
... Also, it would be better to check other mips compile combinations automatically since it's hard for me to check all such combinations one-by-one...
That's what kernelci is for, can you use that?
I'm not sure how to use kernelci myself, maybe I missed something...
Thanks, Gao Xiang
thanks,
greg k-h
linux-stable-mirror@lists.linaro.org