From: kernel test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: [linux-next:master 4298/4500] include/linux/fortify-string.h:20:29: warning: argument 1 null where non-null expected
Date: Mon, 18 Jan 2021 22:46:30 +0800 [thread overview]
Message-ID: <202101182217.AI3THdpO-lkp@intel.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 10274 bytes --]
tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: 93bf8b946e5f9a0b0c68155597b53fd8ccce2827
commit: 1068f9c7eade6a755a2fe3b60b9941cf44ee2888 [4298/4500] string.h: move fortified functions definitions in a dedicated header.
config: s390-randconfig-r013-20210118 (attached as .config)
compiler: s390-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/next/linux-next.git/commit/?id=1068f9c7eade6a755a2fe3b60b9941cf44ee2888
git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
git fetch --no-tags linux-next master
git checkout 1068f9c7eade6a755a2fe3b60b9941cf44ee2888
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=s390
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All warnings (new ones prefixed by >>):
lib/zstd/decompress.c:126:12: warning: no previous prototype for 'ZSTD_createDCtx_advanced' [-Wmissing-prototypes]
126 | ZSTD_DCtx *ZSTD_createDCtx_advanced(ZSTD_customMem customMem)
| ^~~~~~~~~~~~~~~~~~~~~~~~
lib/zstd/decompress.c:394:8: warning: no previous prototype for 'ZSTD_getcBlockSize' [-Wmissing-prototypes]
394 | size_t ZSTD_getcBlockSize(const void *src, size_t srcSize, blockProperties_t *bpPtr)
| ^~~~~~~~~~~~~~~~~~
lib/zstd/decompress.c:432:8: warning: no previous prototype for 'ZSTD_decodeLiteralsBlock' [-Wmissing-prototypes]
432 | size_t ZSTD_decodeLiteralsBlock(ZSTD_DCtx *dctx, const void *src, size_t srcSize) /* note : srcSize < BLOCKSIZE */
| ^~~~~~~~~~~~~~~~~~~~~~~~
lib/zstd/decompress.c:794:8: warning: no previous prototype for 'ZSTD_decodeSeqHeaders' [-Wmissing-prototypes]
794 | size_t ZSTD_decodeSeqHeaders(ZSTD_DCtx *dctx, int *nbSeqPtr, const void *src, size_t srcSize)
| ^~~~~~~~~~~~~~~~~~~~~
lib/zstd/decompress.c:1497:8: warning: no previous prototype for 'ZSTD_generateNxBytes' [-Wmissing-prototypes]
1497 | size_t ZSTD_generateNxBytes(void *dst, size_t dstCapacity, BYTE byte, size_t length)
| ^~~~~~~~~~~~~~~~~~~~
In file included from lib/zstd/decompress.c:35:
lib/zstd/zstd_internal.h:124:18: warning: 'OF_defaultNormLog' defined but not used [-Wunused-const-variable=]
124 | static const U32 OF_defaultNormLog = OF_DEFAULTNORMLOG;
| ^~~~~~~~~~~~~~~~~
lib/zstd/zstd_internal.h:122:18: warning: 'OF_defaultNorm' defined but not used [-Wunused-const-variable=]
122 | static const S16 OF_defaultNorm[MaxOff + 1] = {1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, -1, -1, -1, -1};
| ^~~~~~~~~~~~~~
lib/zstd/zstd_internal.h:120:18: warning: 'ML_defaultNormLog' defined but not used [-Wunused-const-variable=]
120 | static const U32 ML_defaultNormLog = ML_DEFAULTNORMLOG;
| ^~~~~~~~~~~~~~~~~
lib/zstd/zstd_internal.h:117:18: warning: 'ML_defaultNorm' defined but not used [-Wunused-const-variable=]
117 | static const S16 ML_defaultNorm[MaxML + 1] = {1, 4, 3, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
| ^~~~~~~~~~~~~~
lib/zstd/zstd_internal.h:113:18: warning: 'LL_defaultNormLog' defined but not used [-Wunused-const-variable=]
113 | static const U32 LL_defaultNormLog = LL_DEFAULTNORMLOG;
| ^~~~~~~~~~~~~~~~~
lib/zstd/zstd_internal.h:111:18: warning: 'LL_defaultNorm' defined but not used [-Wunused-const-variable=]
111 | static const S16 LL_defaultNorm[MaxLL + 1] = {4, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, 1, 1, 1, 1, 1, -1, -1, -1, -1};
| ^~~~~~~~~~~~~~
In file included from include/linux/string.h:269,
from lib/zstd/mem.h:24,
from lib/zstd/bitstream.h:54,
from lib/zstd/fse.h:228,
from lib/zstd/decompress.c:32:
In function 'memcpy',
inlined from 'ZSTD_decompressContinue' at lib/zstd/decompress.c:416:2,
inlined from 'ZSTD_decompressStream'@lib/zstd/decompress.c:2354:5:
>> include/linux/fortify-string.h:20:29: warning: argument 1 null where non-null expected [-Wnonnull]
20 | #define __underlying_memcpy __builtin_memcpy
| ^
include/linux/fortify-string.h:191:9: note: in expansion of macro '__underlying_memcpy'
191 | return __underlying_memcpy(p, q, size);
| ^~~~~~~~~~~~~~~~~~~
lib/zstd/decompress.c: In function 'ZSTD_decompressStream':
include/linux/fortify-string.h:20:29: note: in a call to built-in function '__builtin_memcpy'
20 | #define __underlying_memcpy __builtin_memcpy
| ^
include/linux/fortify-string.h:191:9: note: in expansion of macro '__underlying_memcpy'
191 | return __underlying_memcpy(p, q, size);
| ^~~~~~~~~~~~~~~~~~~
In function 'memset',
inlined from 'ZSTD_decompressContinue' at lib/zstd/decompress.c:426:2,
inlined from 'ZSTD_decompressStream' at lib/zstd/decompress.c:2354:5:
include/linux/fortify-string.h:22:29: warning: argument 1 null where non-null expected [-Wnonnull]
22 | #define __underlying_memset __builtin_memset
| ^
include/linux/fortify-string.h:175:9: note: in expansion of macro '__underlying_memset'
175 | return __underlying_memset(p, c, size);
| ^~~~~~~~~~~~~~~~~~~
lib/zstd/decompress.c: In function 'ZSTD_decompressStream':
include/linux/fortify-string.h:22:29: note: in a call to built-in function '__builtin_memset'
22 | #define __underlying_memset __builtin_memset
| ^
include/linux/fortify-string.h:175:9: note: in expansion of macro '__underlying_memset'
175 | return __underlying_memset(p, c, size);
| ^~~~~~~~~~~~~~~~~~~
In function 'memcpy',
inlined from 'ZSTD_decompressContinue' at lib/zstd/decompress.c:416:2,
inlined from 'ZSTD_decompressStream' at lib/zstd/decompress.c:2357:6:
>> include/linux/fortify-string.h:20:29: warning: argument 1 null where non-null expected [-Wnonnull]
20 | #define __underlying_memcpy __builtin_memcpy
| ^
include/linux/fortify-string.h:191:9: note: in expansion of macro '__underlying_memcpy'
191 | return __underlying_memcpy(p, q, size);
| ^~~~~~~~~~~~~~~~~~~
lib/zstd/decompress.c: In function 'ZSTD_decompressStream':
include/linux/fortify-string.h:20:29: note: in a call to built-in function '__builtin_memcpy'
20 | #define __underlying_memcpy __builtin_memcpy
| ^
include/linux/fortify-string.h:191:9: note: in expansion of macro '__underlying_memcpy'
191 | return __underlying_memcpy(p, q, size);
| ^~~~~~~~~~~~~~~~~~~
In function 'memset',
inlined from 'ZSTD_decompressContinue' at lib/zstd/decompress.c:426:2,
inlined from 'ZSTD_decompressStream' at lib/zstd/decompress.c:2357:6:
include/linux/fortify-string.h:22:29: warning: argument 1 null where non-null expected [-Wnonnull]
22 | #define __underlying_memset __builtin_memset
| ^
include/linux/fortify-string.h:175:9: note: in expansion of macro '__underlying_memset'
175 | return __underlying_memset(p, c, size);
| ^~~~~~~~~~~~~~~~~~~
lib/zstd/decompress.c: In function 'ZSTD_decompressStream':
include/linux/fortify-string.h:22:29: note: in a call to built-in function '__builtin_memset'
22 | #define __underlying_memset __builtin_memset
| ^
include/linux/fortify-string.h:175:9: note: in expansion of macro '__underlying_memset'
175 | return __underlying_memset(p, c, size);
| ^~~~~~~~~~~~~~~~~~~
vim +20 include/linux/fortify-string.h
4
5
6 #if defined(CONFIG_KASAN_GENERIC) || defined(CONFIG_KASAN_SW_TAGS)
7 extern void *__underlying_memchr(const void *p, int c, __kernel_size_t size) __RENAME(memchr);
8 extern int __underlying_memcmp(const void *p, const void *q, __kernel_size_t size) __RENAME(memcmp);
9 extern void *__underlying_memcpy(void *p, const void *q, __kernel_size_t size) __RENAME(memcpy);
10 extern void *__underlying_memmove(void *p, const void *q, __kernel_size_t size) __RENAME(memmove);
11 extern void *__underlying_memset(void *p, int c, __kernel_size_t size) __RENAME(memset);
12 extern char *__underlying_strcat(char *p, const char *q) __RENAME(strcat);
13 extern char *__underlying_strcpy(char *p, const char *q) __RENAME(strcpy);
14 extern __kernel_size_t __underlying_strlen(const char *p) __RENAME(strlen);
15 extern char *__underlying_strncat(char *p, const char *q, __kernel_size_t count) __RENAME(strncat);
16 extern char *__underlying_strncpy(char *p, const char *q, __kernel_size_t size) __RENAME(strncpy);
17 #else
18 #define __underlying_memchr __builtin_memchr
19 #define __underlying_memcmp __builtin_memcmp
> 20 #define __underlying_memcpy __builtin_memcpy
21 #define __underlying_memmove __builtin_memmove
22 #define __underlying_memset __builtin_memset
23 #define __underlying_strcat __builtin_strcat
24 #define __underlying_strcpy __builtin_strcpy
25 #define __underlying_strlen __builtin_strlen
26 #define __underlying_strncat __builtin_strncat
27 #define __underlying_strncpy __builtin_strncpy
28 #endif
29
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 13614 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: kernel test robot <lkp@intel.com>
To: Francis Laniel <laniel_francis@privacyrequired.com>
Cc: kbuild-all@lists.01.org,
Linux Memory Management List <linux-mm@kvack.org>,
Andrew Morton <akpm@linux-foundation.org>
Subject: [linux-next:master 4298/4500] include/linux/fortify-string.h:20:29: warning: argument 1 null where non-null expected
Date: Mon, 18 Jan 2021 22:46:30 +0800 [thread overview]
Message-ID: <202101182217.AI3THdpO-lkp@intel.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 10118 bytes --]
tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: 93bf8b946e5f9a0b0c68155597b53fd8ccce2827
commit: 1068f9c7eade6a755a2fe3b60b9941cf44ee2888 [4298/4500] string.h: move fortified functions definitions in a dedicated header.
config: s390-randconfig-r013-20210118 (attached as .config)
compiler: s390-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/next/linux-next.git/commit/?id=1068f9c7eade6a755a2fe3b60b9941cf44ee2888
git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
git fetch --no-tags linux-next master
git checkout 1068f9c7eade6a755a2fe3b60b9941cf44ee2888
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-9.3.0 make.cross ARCH=s390
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All warnings (new ones prefixed by >>):
lib/zstd/decompress.c:126:12: warning: no previous prototype for 'ZSTD_createDCtx_advanced' [-Wmissing-prototypes]
126 | ZSTD_DCtx *ZSTD_createDCtx_advanced(ZSTD_customMem customMem)
| ^~~~~~~~~~~~~~~~~~~~~~~~
lib/zstd/decompress.c:394:8: warning: no previous prototype for 'ZSTD_getcBlockSize' [-Wmissing-prototypes]
394 | size_t ZSTD_getcBlockSize(const void *src, size_t srcSize, blockProperties_t *bpPtr)
| ^~~~~~~~~~~~~~~~~~
lib/zstd/decompress.c:432:8: warning: no previous prototype for 'ZSTD_decodeLiteralsBlock' [-Wmissing-prototypes]
432 | size_t ZSTD_decodeLiteralsBlock(ZSTD_DCtx *dctx, const void *src, size_t srcSize) /* note : srcSize < BLOCKSIZE */
| ^~~~~~~~~~~~~~~~~~~~~~~~
lib/zstd/decompress.c:794:8: warning: no previous prototype for 'ZSTD_decodeSeqHeaders' [-Wmissing-prototypes]
794 | size_t ZSTD_decodeSeqHeaders(ZSTD_DCtx *dctx, int *nbSeqPtr, const void *src, size_t srcSize)
| ^~~~~~~~~~~~~~~~~~~~~
lib/zstd/decompress.c:1497:8: warning: no previous prototype for 'ZSTD_generateNxBytes' [-Wmissing-prototypes]
1497 | size_t ZSTD_generateNxBytes(void *dst, size_t dstCapacity, BYTE byte, size_t length)
| ^~~~~~~~~~~~~~~~~~~~
In file included from lib/zstd/decompress.c:35:
lib/zstd/zstd_internal.h:124:18: warning: 'OF_defaultNormLog' defined but not used [-Wunused-const-variable=]
124 | static const U32 OF_defaultNormLog = OF_DEFAULTNORMLOG;
| ^~~~~~~~~~~~~~~~~
lib/zstd/zstd_internal.h:122:18: warning: 'OF_defaultNorm' defined but not used [-Wunused-const-variable=]
122 | static const S16 OF_defaultNorm[MaxOff + 1] = {1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, -1, -1, -1, -1, -1};
| ^~~~~~~~~~~~~~
lib/zstd/zstd_internal.h:120:18: warning: 'ML_defaultNormLog' defined but not used [-Wunused-const-variable=]
120 | static const U32 ML_defaultNormLog = ML_DEFAULTNORMLOG;
| ^~~~~~~~~~~~~~~~~
lib/zstd/zstd_internal.h:117:18: warning: 'ML_defaultNorm' defined but not used [-Wunused-const-variable=]
117 | static const S16 ML_defaultNorm[MaxML + 1] = {1, 4, 3, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
| ^~~~~~~~~~~~~~
lib/zstd/zstd_internal.h:113:18: warning: 'LL_defaultNormLog' defined but not used [-Wunused-const-variable=]
113 | static const U32 LL_defaultNormLog = LL_DEFAULTNORMLOG;
| ^~~~~~~~~~~~~~~~~
lib/zstd/zstd_internal.h:111:18: warning: 'LL_defaultNorm' defined but not used [-Wunused-const-variable=]
111 | static const S16 LL_defaultNorm[MaxLL + 1] = {4, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 1, 1, 2, 2, 2, 2, 2, 2, 2, 2, 2, 3, 2, 1, 1, 1, 1, 1, -1, -1, -1, -1};
| ^~~~~~~~~~~~~~
In file included from include/linux/string.h:269,
from lib/zstd/mem.h:24,
from lib/zstd/bitstream.h:54,
from lib/zstd/fse.h:228,
from lib/zstd/decompress.c:32:
In function 'memcpy',
inlined from 'ZSTD_decompressContinue' at lib/zstd/decompress.c:416:2,
inlined from 'ZSTD_decompressStream' at lib/zstd/decompress.c:2354:5:
>> include/linux/fortify-string.h:20:29: warning: argument 1 null where non-null expected [-Wnonnull]
20 | #define __underlying_memcpy __builtin_memcpy
| ^
include/linux/fortify-string.h:191:9: note: in expansion of macro '__underlying_memcpy'
191 | return __underlying_memcpy(p, q, size);
| ^~~~~~~~~~~~~~~~~~~
lib/zstd/decompress.c: In function 'ZSTD_decompressStream':
include/linux/fortify-string.h:20:29: note: in a call to built-in function '__builtin_memcpy'
20 | #define __underlying_memcpy __builtin_memcpy
| ^
include/linux/fortify-string.h:191:9: note: in expansion of macro '__underlying_memcpy'
191 | return __underlying_memcpy(p, q, size);
| ^~~~~~~~~~~~~~~~~~~
In function 'memset',
inlined from 'ZSTD_decompressContinue' at lib/zstd/decompress.c:426:2,
inlined from 'ZSTD_decompressStream' at lib/zstd/decompress.c:2354:5:
include/linux/fortify-string.h:22:29: warning: argument 1 null where non-null expected [-Wnonnull]
22 | #define __underlying_memset __builtin_memset
| ^
include/linux/fortify-string.h:175:9: note: in expansion of macro '__underlying_memset'
175 | return __underlying_memset(p, c, size);
| ^~~~~~~~~~~~~~~~~~~
lib/zstd/decompress.c: In function 'ZSTD_decompressStream':
include/linux/fortify-string.h:22:29: note: in a call to built-in function '__builtin_memset'
22 | #define __underlying_memset __builtin_memset
| ^
include/linux/fortify-string.h:175:9: note: in expansion of macro '__underlying_memset'
175 | return __underlying_memset(p, c, size);
| ^~~~~~~~~~~~~~~~~~~
In function 'memcpy',
inlined from 'ZSTD_decompressContinue' at lib/zstd/decompress.c:416:2,
inlined from 'ZSTD_decompressStream' at lib/zstd/decompress.c:2357:6:
>> include/linux/fortify-string.h:20:29: warning: argument 1 null where non-null expected [-Wnonnull]
20 | #define __underlying_memcpy __builtin_memcpy
| ^
include/linux/fortify-string.h:191:9: note: in expansion of macro '__underlying_memcpy'
191 | return __underlying_memcpy(p, q, size);
| ^~~~~~~~~~~~~~~~~~~
lib/zstd/decompress.c: In function 'ZSTD_decompressStream':
include/linux/fortify-string.h:20:29: note: in a call to built-in function '__builtin_memcpy'
20 | #define __underlying_memcpy __builtin_memcpy
| ^
include/linux/fortify-string.h:191:9: note: in expansion of macro '__underlying_memcpy'
191 | return __underlying_memcpy(p, q, size);
| ^~~~~~~~~~~~~~~~~~~
In function 'memset',
inlined from 'ZSTD_decompressContinue' at lib/zstd/decompress.c:426:2,
inlined from 'ZSTD_decompressStream' at lib/zstd/decompress.c:2357:6:
include/linux/fortify-string.h:22:29: warning: argument 1 null where non-null expected [-Wnonnull]
22 | #define __underlying_memset __builtin_memset
| ^
include/linux/fortify-string.h:175:9: note: in expansion of macro '__underlying_memset'
175 | return __underlying_memset(p, c, size);
| ^~~~~~~~~~~~~~~~~~~
lib/zstd/decompress.c: In function 'ZSTD_decompressStream':
include/linux/fortify-string.h:22:29: note: in a call to built-in function '__builtin_memset'
22 | #define __underlying_memset __builtin_memset
| ^
include/linux/fortify-string.h:175:9: note: in expansion of macro '__underlying_memset'
175 | return __underlying_memset(p, c, size);
| ^~~~~~~~~~~~~~~~~~~
vim +20 include/linux/fortify-string.h
4
5
6 #if defined(CONFIG_KASAN_GENERIC) || defined(CONFIG_KASAN_SW_TAGS)
7 extern void *__underlying_memchr(const void *p, int c, __kernel_size_t size) __RENAME(memchr);
8 extern int __underlying_memcmp(const void *p, const void *q, __kernel_size_t size) __RENAME(memcmp);
9 extern void *__underlying_memcpy(void *p, const void *q, __kernel_size_t size) __RENAME(memcpy);
10 extern void *__underlying_memmove(void *p, const void *q, __kernel_size_t size) __RENAME(memmove);
11 extern void *__underlying_memset(void *p, int c, __kernel_size_t size) __RENAME(memset);
12 extern char *__underlying_strcat(char *p, const char *q) __RENAME(strcat);
13 extern char *__underlying_strcpy(char *p, const char *q) __RENAME(strcpy);
14 extern __kernel_size_t __underlying_strlen(const char *p) __RENAME(strlen);
15 extern char *__underlying_strncat(char *p, const char *q, __kernel_size_t count) __RENAME(strncat);
16 extern char *__underlying_strncpy(char *p, const char *q, __kernel_size_t size) __RENAME(strncpy);
17 #else
18 #define __underlying_memchr __builtin_memchr
19 #define __underlying_memcmp __builtin_memcmp
> 20 #define __underlying_memcpy __builtin_memcpy
21 #define __underlying_memmove __builtin_memmove
22 #define __underlying_memset __builtin_memset
23 #define __underlying_strcat __builtin_strcat
24 #define __underlying_strcpy __builtin_strcpy
25 #define __underlying_strlen __builtin_strlen
26 #define __underlying_strncat __builtin_strncat
27 #define __underlying_strncpy __builtin_strncpy
28 #endif
29
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 13614 bytes --]
next reply other threads:[~2021-01-18 14:46 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-01-18 14:46 kernel test robot [this message]
2021-01-18 14:46 ` [linux-next:master 4298/4500] include/linux/fortify-string.h:20:29: warning: argument 1 null where non-null expected kernel test robot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202101182217.AI3THdpO-lkp@intel.com \
--to=lkp@intel.com \
--cc=kbuild-all@lists.01.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.