All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: Eric Biggers <ebiggers@kernel.org>
Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev
Subject: [ebiggers:wip-aes 6/10] fs/smb/client/cifs_unicode.c:195:13: error: call to undeclared function 'get_unaligned_le16'; ISO C99 and later do not support implicit function declarations
Date: Sun, 15 Feb 2026 14:18:39 +0100	[thread overview]
Message-ID: <202602151406.eZcaINgz-lkp@intel.com> (raw)

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/ebiggers/linux.git wip-aes
head:   1ec222c94bbd407081e99e0efbbfbc5e9c258ee7
commit: c3c35f7367a6e4195dbd41f3287c4fed5e52e472 [6/10] smb: client: Use AES-CMAC library for SMB3 signature calculation
config: x86_64-kexec (https://download.01.org/0day-ci/archive/20260215/202602151406.eZcaINgz-lkp@intel.com/config)
compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260215/202602151406.eZcaINgz-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202602151406.eZcaINgz-lkp@intel.com/

All errors (new ones prefixed by >>):

>> fs/smb/client/cifs_unicode.c:195:13: error: call to undeclared function 'get_unaligned_le16'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
     195 |                 ftmp[0] = get_unaligned_le16(&from[i]);
         |                           ^
>> fs/smb/client/cifs_unicode.c:284:3: error: call to undeclared function 'put_unaligned_le16'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
     284 |                 put_unaligned_le16(wchar_to, &to[i]);
         |                 ^
   fs/smb/client/cifs_unicode.c:288:2: error: call to undeclared function 'put_unaligned_le16'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
     288 |         put_unaligned_le16(0, &to[i]);
         |         ^
   fs/smb/client/cifs_unicode.c:313:13: error: call to undeclared function 'get_unaligned_le16'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
     313 |                 ftmp[0] = get_unaligned_le16(&from[i]);
         |                           ^
>> fs/smb/client/cifs_unicode.c:543:5: error: call to undeclared function 'put_unaligned'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
     543 |                                 put_unaligned(dst_char, &target[j]);
         |                                 ^
   fs/smb/client/cifs_unicode.c:575:3: error: call to undeclared function 'put_unaligned'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
     575 |                 put_unaligned(dst_char, &target[j]);
         |                 ^
   fs/smb/client/cifs_unicode.c:579:2: error: call to undeclared function 'put_unaligned'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
     579 |         put_unaligned(0, &target[j]); /* Null terminate target unicode string */
         |         ^
   7 errors generated.


vim +/get_unaligned_le16 +195 fs/smb/client/cifs_unicode.c

7fabf0c9479fef fs/cifs/cifs_unicode.c Jeff Layton     2009-04-30  152  
7fabf0c9479fef fs/cifs/cifs_unicode.c Jeff Layton     2009-04-30  153  /*
acbbb76a26648d fs/cifs/cifs_unicode.c Steve French    2012-01-18  154   * cifs_from_utf16 - convert utf16le string to local charset
7fabf0c9479fef fs/cifs/cifs_unicode.c Jeff Layton     2009-04-30  155   * @to - destination buffer
7fabf0c9479fef fs/cifs/cifs_unicode.c Jeff Layton     2009-04-30  156   * @from - source buffer
7fabf0c9479fef fs/cifs/cifs_unicode.c Jeff Layton     2009-04-30  157   * @tolen - destination buffer size (in bytes)
7fabf0c9479fef fs/cifs/cifs_unicode.c Jeff Layton     2009-04-30  158   * @fromlen - source buffer size (in bytes)
7fabf0c9479fef fs/cifs/cifs_unicode.c Jeff Layton     2009-04-30  159   * @codepage - codepage to which characters should be converted
7fabf0c9479fef fs/cifs/cifs_unicode.c Jeff Layton     2009-04-30  160   * @mapchar - should characters be remapped according to the mapchars option?
7fabf0c9479fef fs/cifs/cifs_unicode.c Jeff Layton     2009-04-30  161   *
acbbb76a26648d fs/cifs/cifs_unicode.c Steve French    2012-01-18  162   * Convert a little-endian utf16le string (as sent by the server) to a string
7fabf0c9479fef fs/cifs/cifs_unicode.c Jeff Layton     2009-04-30  163   * in the provided codepage. The tolen and fromlen parameters are to ensure
7fabf0c9479fef fs/cifs/cifs_unicode.c Jeff Layton     2009-04-30  164   * that the code doesn't walk off of the end of the buffer (which is always
7fabf0c9479fef fs/cifs/cifs_unicode.c Jeff Layton     2009-04-30  165   * a danger if the alignment of the source buffer is off). The destination
7fabf0c9479fef fs/cifs/cifs_unicode.c Jeff Layton     2009-04-30  166   * string is always properly null terminated and fits in the destination
7fabf0c9479fef fs/cifs/cifs_unicode.c Jeff Layton     2009-04-30  167   * buffer. Returns the length of the destination string in bytes (including
7fabf0c9479fef fs/cifs/cifs_unicode.c Jeff Layton     2009-04-30  168   * null terminator).
7fabf0c9479fef fs/cifs/cifs_unicode.c Jeff Layton     2009-04-30  169   *
7fabf0c9479fef fs/cifs/cifs_unicode.c Jeff Layton     2009-04-30  170   * Note that some windows versions actually send multiword UTF-16 characters
acbbb76a26648d fs/cifs/cifs_unicode.c Steve French    2012-01-18  171   * instead of straight UTF16-2. The linux nls routines however aren't able to
7fabf0c9479fef fs/cifs/cifs_unicode.c Jeff Layton     2009-04-30  172   * deal with those characters properly. In the event that we get some of
7fabf0c9479fef fs/cifs/cifs_unicode.c Jeff Layton     2009-04-30  173   * those characters, they won't be translated properly.
7fabf0c9479fef fs/cifs/cifs_unicode.c Jeff Layton     2009-04-30  174   */
7fabf0c9479fef fs/cifs/cifs_unicode.c Jeff Layton     2009-04-30  175  int
acbbb76a26648d fs/cifs/cifs_unicode.c Steve French    2012-01-18  176  cifs_from_utf16(char *to, const __le16 *from, int tolen, int fromlen,
b693855fe67314 fs/cifs/cifs_unicode.c Steve French    2014-09-25  177  		const struct nls_table *codepage, int map_type)
7fabf0c9479fef fs/cifs/cifs_unicode.c Jeff Layton     2009-04-30  178  {
7fabf0c9479fef fs/cifs/cifs_unicode.c Jeff Layton     2009-04-30  179  	int i, charlen, safelen;
7fabf0c9479fef fs/cifs/cifs_unicode.c Jeff Layton     2009-04-30  180  	int outlen = 0;
7fabf0c9479fef fs/cifs/cifs_unicode.c Jeff Layton     2009-04-30  181  	int nullsize = nls_nullsize(codepage);
7fabf0c9479fef fs/cifs/cifs_unicode.c Jeff Layton     2009-04-30  182  	int fromwords = fromlen / 2;
7fabf0c9479fef fs/cifs/cifs_unicode.c Jeff Layton     2009-04-30  183  	char tmp[NLS_MAX_CHARSET_SIZE];
b29103076bec83 fs/cifs/cifs_unicode.c Nakajima Akira  2015-04-09  184  	__u16 ftmp[3];		/* ftmp[3] = 3array x 2bytes = 6bytes UTF-16 */
7fabf0c9479fef fs/cifs/cifs_unicode.c Jeff Layton     2009-04-30  185  
7fabf0c9479fef fs/cifs/cifs_unicode.c Jeff Layton     2009-04-30  186  	/*
7fabf0c9479fef fs/cifs/cifs_unicode.c Jeff Layton     2009-04-30  187  	 * because the chars can be of varying widths, we need to take care
7fabf0c9479fef fs/cifs/cifs_unicode.c Jeff Layton     2009-04-30  188  	 * not to overflow the destination buffer when we get close to the
7fabf0c9479fef fs/cifs/cifs_unicode.c Jeff Layton     2009-04-30  189  	 * end of it. Until we get to this offset, we don't need to check
7fabf0c9479fef fs/cifs/cifs_unicode.c Jeff Layton     2009-04-30  190  	 * for overflow however.
7fabf0c9479fef fs/cifs/cifs_unicode.c Jeff Layton     2009-04-30  191  	 */
7fabf0c9479fef fs/cifs/cifs_unicode.c Jeff Layton     2009-04-30  192  	safelen = tolen - (NLS_MAX_CHARSET_SIZE + nullsize);
7fabf0c9479fef fs/cifs/cifs_unicode.c Jeff Layton     2009-04-30  193  
ba2dbf30df210b fs/cifs/cifs_unicode.c Jeff Layton     2011-01-20  194  	for (i = 0; i < fromwords; i++) {
b29103076bec83 fs/cifs/cifs_unicode.c Nakajima Akira  2015-04-09 @195  		ftmp[0] = get_unaligned_le16(&from[i]);
b29103076bec83 fs/cifs/cifs_unicode.c Nakajima Akira  2015-04-09  196  		if (ftmp[0] == 0)
ba2dbf30df210b fs/cifs/cifs_unicode.c Jeff Layton     2011-01-20  197  			break;
b29103076bec83 fs/cifs/cifs_unicode.c Nakajima Akira  2015-04-09  198  		if (i + 1 < fromwords)
b29103076bec83 fs/cifs/cifs_unicode.c Nakajima Akira  2015-04-09  199  			ftmp[1] = get_unaligned_le16(&from[i + 1]);
b29103076bec83 fs/cifs/cifs_unicode.c Nakajima Akira  2015-04-09  200  		else
b29103076bec83 fs/cifs/cifs_unicode.c Nakajima Akira  2015-04-09  201  			ftmp[1] = 0;
b29103076bec83 fs/cifs/cifs_unicode.c Nakajima Akira  2015-04-09  202  		if (i + 2 < fromwords)
b29103076bec83 fs/cifs/cifs_unicode.c Nakajima Akira  2015-04-09  203  			ftmp[2] = get_unaligned_le16(&from[i + 2]);
b29103076bec83 fs/cifs/cifs_unicode.c Nakajima Akira  2015-04-09  204  		else
b29103076bec83 fs/cifs/cifs_unicode.c Nakajima Akira  2015-04-09  205  			ftmp[2] = 0;
ba2dbf30df210b fs/cifs/cifs_unicode.c Jeff Layton     2011-01-20  206  
7fabf0c9479fef fs/cifs/cifs_unicode.c Jeff Layton     2009-04-30  207  		/*
7fabf0c9479fef fs/cifs/cifs_unicode.c Jeff Layton     2009-04-30  208  		 * check to see if converting this character might make the
7fabf0c9479fef fs/cifs/cifs_unicode.c Jeff Layton     2009-04-30  209  		 * conversion bleed into the null terminator
7fabf0c9479fef fs/cifs/cifs_unicode.c Jeff Layton     2009-04-30  210  		 */
7fabf0c9479fef fs/cifs/cifs_unicode.c Jeff Layton     2009-04-30  211  		if (outlen >= safelen) {
b693855fe67314 fs/cifs/cifs_unicode.c Steve French    2014-09-25  212  			charlen = cifs_mapchar(tmp, ftmp, codepage, map_type);
7fabf0c9479fef fs/cifs/cifs_unicode.c Jeff Layton     2009-04-30  213  			if ((outlen + charlen) > (tolen - nullsize))
7fabf0c9479fef fs/cifs/cifs_unicode.c Jeff Layton     2009-04-30  214  				break;
7fabf0c9479fef fs/cifs/cifs_unicode.c Jeff Layton     2009-04-30  215  		}
7fabf0c9479fef fs/cifs/cifs_unicode.c Jeff Layton     2009-04-30  216  
7fabf0c9479fef fs/cifs/cifs_unicode.c Jeff Layton     2009-04-30  217  		/* put converted char into 'to' buffer */
b693855fe67314 fs/cifs/cifs_unicode.c Steve French    2014-09-25  218  		charlen = cifs_mapchar(&to[outlen], ftmp, codepage, map_type);
7fabf0c9479fef fs/cifs/cifs_unicode.c Jeff Layton     2009-04-30  219  		outlen += charlen;
b29103076bec83 fs/cifs/cifs_unicode.c Nakajima Akira  2015-04-09  220  
b29103076bec83 fs/cifs/cifs_unicode.c Nakajima Akira  2015-04-09  221  		/* charlen (=bytes of UTF-8 for 1 character)
b29103076bec83 fs/cifs/cifs_unicode.c Nakajima Akira  2015-04-09  222  		 * 4bytes UTF-8(surrogate pair) is charlen=4
b29103076bec83 fs/cifs/cifs_unicode.c Nakajima Akira  2015-04-09  223  		 *   (4bytes UTF-16 code)
b29103076bec83 fs/cifs/cifs_unicode.c Nakajima Akira  2015-04-09  224  		 * 7-8bytes UTF-8(IVS) is charlen=3+4 or 4+4
b29103076bec83 fs/cifs/cifs_unicode.c Nakajima Akira  2015-04-09  225  		 *   (2 UTF-8 pairs divided to 2 UTF-16 pairs) */
b29103076bec83 fs/cifs/cifs_unicode.c Nakajima Akira  2015-04-09  226  		if (charlen == 4)
b29103076bec83 fs/cifs/cifs_unicode.c Nakajima Akira  2015-04-09  227  			i++;
b29103076bec83 fs/cifs/cifs_unicode.c Nakajima Akira  2015-04-09  228  		else if (charlen >= 5)
b29103076bec83 fs/cifs/cifs_unicode.c Nakajima Akira  2015-04-09  229  			/* 5-6bytes UTF-8 */
b29103076bec83 fs/cifs/cifs_unicode.c Nakajima Akira  2015-04-09  230  			i += 2;
7fabf0c9479fef fs/cifs/cifs_unicode.c Jeff Layton     2009-04-30  231  	}
7fabf0c9479fef fs/cifs/cifs_unicode.c Jeff Layton     2009-04-30  232  
7fabf0c9479fef fs/cifs/cifs_unicode.c Jeff Layton     2009-04-30  233  	/* properly null-terminate string */
7fabf0c9479fef fs/cifs/cifs_unicode.c Jeff Layton     2009-04-30  234  	for (i = 0; i < nullsize; i++)
7fabf0c9479fef fs/cifs/cifs_unicode.c Jeff Layton     2009-04-30  235  		to[outlen++] = 0;
7fabf0c9479fef fs/cifs/cifs_unicode.c Jeff Layton     2009-04-30  236  
7fabf0c9479fef fs/cifs/cifs_unicode.c Jeff Layton     2009-04-30  237  	return outlen;
7fabf0c9479fef fs/cifs/cifs_unicode.c Jeff Layton     2009-04-30  238  }
7fabf0c9479fef fs/cifs/cifs_unicode.c Jeff Layton     2009-04-30  239  
^1da177e4c3f41 fs/cifs/cifs_unicode.c Linus Torvalds  2005-04-16  240  /*
acbbb76a26648d fs/cifs/cifs_unicode.c Steve French    2012-01-18  241   * NAME:	cifs_strtoUTF16()
^1da177e4c3f41 fs/cifs/cifs_unicode.c Linus Torvalds  2005-04-16  242   *
^1da177e4c3f41 fs/cifs/cifs_unicode.c Linus Torvalds  2005-04-16  243   * FUNCTION:	Convert character string to unicode string
^1da177e4c3f41 fs/cifs/cifs_unicode.c Linus Torvalds  2005-04-16  244   *
^1da177e4c3f41 fs/cifs/cifs_unicode.c Linus Torvalds  2005-04-16  245   */
^1da177e4c3f41 fs/cifs/cifs_unicode.c Linus Torvalds  2005-04-16  246  int
acbbb76a26648d fs/cifs/cifs_unicode.c Steve French    2012-01-18  247  cifs_strtoUTF16(__le16 *to, const char *from, int len,
^1da177e4c3f41 fs/cifs/cifs_unicode.c Linus Torvalds  2005-04-16  248  	      const struct nls_table *codepage)
^1da177e4c3f41 fs/cifs/cifs_unicode.c Linus Torvalds  2005-04-16  249  {
^1da177e4c3f41 fs/cifs/cifs_unicode.c Linus Torvalds  2005-04-16  250  	int charlen;
^1da177e4c3f41 fs/cifs/cifs_unicode.c Linus Torvalds  2005-04-16  251  	int i;
ba2dbf30df210b fs/cifs/cifs_unicode.c Jeff Layton     2011-01-20  252  	wchar_t wchar_to; /* needed to quiet sparse */
^1da177e4c3f41 fs/cifs/cifs_unicode.c Linus Torvalds  2005-04-16  253  
fd3ba42c76d3d4 fs/cifs/cifs_unicode.c Frediano Ziglio 2012-08-07  254  	/* special case for utf8 to handle no plane0 chars */
fd3ba42c76d3d4 fs/cifs/cifs_unicode.c Frediano Ziglio 2012-08-07  255  	if (!strcmp(codepage->charset, "utf8")) {
fd3ba42c76d3d4 fs/cifs/cifs_unicode.c Frediano Ziglio 2012-08-07  256  		/*
fd3ba42c76d3d4 fs/cifs/cifs_unicode.c Frediano Ziglio 2012-08-07  257  		 * convert utf8 -> utf16, we assume we have enough space
fd3ba42c76d3d4 fs/cifs/cifs_unicode.c Frediano Ziglio 2012-08-07  258  		 * as caller should have assumed conversion does not overflow
fd3ba42c76d3d4 fs/cifs/cifs_unicode.c Frediano Ziglio 2012-08-07  259  		 * in destination len is length in wchar_t units (16bits)
fd3ba42c76d3d4 fs/cifs/cifs_unicode.c Frediano Ziglio 2012-08-07  260  		 */
fd3ba42c76d3d4 fs/cifs/cifs_unicode.c Frediano Ziglio 2012-08-07  261  		i  = utf8s_to_utf16s(from, len, UTF16_LITTLE_ENDIAN,
fd3ba42c76d3d4 fs/cifs/cifs_unicode.c Frediano Ziglio 2012-08-07  262  				       (wchar_t *) to, len);
fd3ba42c76d3d4 fs/cifs/cifs_unicode.c Frediano Ziglio 2012-08-07  263  
fd3ba42c76d3d4 fs/cifs/cifs_unicode.c Frediano Ziglio 2012-08-07  264  		/* if success terminate and exit */
fd3ba42c76d3d4 fs/cifs/cifs_unicode.c Frediano Ziglio 2012-08-07  265  		if (i >= 0)
fd3ba42c76d3d4 fs/cifs/cifs_unicode.c Frediano Ziglio 2012-08-07  266  			goto success;
fd3ba42c76d3d4 fs/cifs/cifs_unicode.c Frediano Ziglio 2012-08-07  267  		/*
fd3ba42c76d3d4 fs/cifs/cifs_unicode.c Frediano Ziglio 2012-08-07  268  		 * if fails fall back to UCS encoding as this
fd3ba42c76d3d4 fs/cifs/cifs_unicode.c Frediano Ziglio 2012-08-07  269  		 * function should not return negative values
fd3ba42c76d3d4 fs/cifs/cifs_unicode.c Frediano Ziglio 2012-08-07  270  		 * currently can fail only if source contains
fd3ba42c76d3d4 fs/cifs/cifs_unicode.c Frediano Ziglio 2012-08-07  271  		 * invalid encoded characters
fd3ba42c76d3d4 fs/cifs/cifs_unicode.c Frediano Ziglio 2012-08-07  272  		 */
fd3ba42c76d3d4 fs/cifs/cifs_unicode.c Frediano Ziglio 2012-08-07  273  	}
fd3ba42c76d3d4 fs/cifs/cifs_unicode.c Frediano Ziglio 2012-08-07  274  
^1da177e4c3f41 fs/cifs/cifs_unicode.c Linus Torvalds  2005-04-16  275  	for (i = 0; len && *from; i++, from += charlen, len -= charlen) {
ba2dbf30df210b fs/cifs/cifs_unicode.c Jeff Layton     2011-01-20  276  		charlen = codepage->char2uni(from, len, &wchar_to);
^1da177e4c3f41 fs/cifs/cifs_unicode.c Linus Torvalds  2005-04-16  277  		if (charlen < 1) {
f96637be081141 fs/cifs/cifs_unicode.c Joe Perches     2013-05-04  278  			cifs_dbg(VFS, "strtoUTF16: char2uni of 0x%x returned %d\n",
ba2dbf30df210b fs/cifs/cifs_unicode.c Jeff Layton     2011-01-20  279  				 *from, charlen);
69114089b75e03 fs/cifs/cifs_unicode.c Steve French    2005-11-10  280  			/* A question mark */
ba2dbf30df210b fs/cifs/cifs_unicode.c Jeff Layton     2011-01-20  281  			wchar_to = 0x003f;
^1da177e4c3f41 fs/cifs/cifs_unicode.c Linus Torvalds  2005-04-16  282  			charlen = 1;
ba2dbf30df210b fs/cifs/cifs_unicode.c Jeff Layton     2011-01-20  283  		}
ba2dbf30df210b fs/cifs/cifs_unicode.c Jeff Layton     2011-01-20 @284  		put_unaligned_le16(wchar_to, &to[i]);
^1da177e4c3f41 fs/cifs/cifs_unicode.c Linus Torvalds  2005-04-16  285  	}
^1da177e4c3f41 fs/cifs/cifs_unicode.c Linus Torvalds  2005-04-16  286  
fd3ba42c76d3d4 fs/cifs/cifs_unicode.c Frediano Ziglio 2012-08-07  287  success:
ba2dbf30df210b fs/cifs/cifs_unicode.c Jeff Layton     2011-01-20  288  	put_unaligned_le16(0, &to[i]);
^1da177e4c3f41 fs/cifs/cifs_unicode.c Linus Torvalds  2005-04-16  289  	return i;
^1da177e4c3f41 fs/cifs/cifs_unicode.c Linus Torvalds  2005-04-16  290  }
^1da177e4c3f41 fs/cifs/cifs_unicode.c Linus Torvalds  2005-04-16  291  

:::::: The code at line 195 was first introduced by commit
:::::: b29103076bec8316e155e71309dc0fba499022c6 Fix to convert SURROGATE PAIR

:::::: TO: Nakajima Akira <nakajima.akira@nttcom.co.jp>
:::::: CC: Steve French <smfrench@gmail.com>

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

             reply	other threads:[~2026-02-15 13:19 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-02-15 13:18 kernel test robot [this message]
  -- strict thread matches above, loose matches on Subject: below --
2026-02-15 10:52 [ebiggers:wip-aes 6/10] fs/smb/client/cifs_unicode.c:195:13: error: call to undeclared function 'get_unaligned_le16'; ISO C99 and later do not support implicit function declarations 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=202602151406.eZcaINgz-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=ebiggers@kernel.org \
    --cc=llvm@lists.linux.dev \
    --cc=oe-kbuild-all@lists.linux.dev \
    /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.