All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jani Nikula <jani.nikula@intel.com>
To: kernel test robot <lkp@intel.com>, dri-devel@lists.freedesktop.org
Cc: oe-kbuild-all@lists.linux.dev, intel-gfx@lists.freedesktop.org,
	intel-xe@lists.freedesktop.org, "Daniel Vetter" <daniel@ffwll.ch>,
	"David Airlie" <airlied@gmail.com>,
	"Maarten Lankhorst" <maarten.lankhorst@linux.intel.com>,
	"Maxime Ripard" <mripard@kernel.org>,
	"Thomas Zimmermann" <tzimmermann@suse.de>,
	"Masahiro Yamada" <masahiroy@kernel.org>,
	"Thomas Hellström" <thomas.hellstrom@linux.intel.com>,
	"Geert Uytterhoeven" <geert@linux-m68k.org>
Subject: Re: [PATCH 22/22] drm: ensure drm headers are self-contained and pass kernel-doc
Date: Thu, 07 Mar 2024 10:44:01 +0200	[thread overview]
Message-ID: <878r2uxwha.fsf@intel.com> (raw)
In-Reply-To: <202403071317.uoW18ZR3-lkp@intel.com>

On Thu, 07 Mar 2024, kernel test robot <lkp@intel.com> wrote:
> Hi Jani,
>
> kernel test robot noticed the following build errors:

So I'm trying to make include/drm/ttm/ttm_caching.h self-contained by
including <linux/pgtable.h> with [1], but it fails like below.

Cc: Thomas and Geert, better ideas for the include there? Looks like
include/asm-generic/pgtable-nop4d.h isn't self-contained on m68k.


BR,
Jani.


[1] https://lore.kernel.org/r/c35ce1a59d0796da32b32e4c8f59464de35f200a.1709749576.git.jani.nikula@intel.com



>
> [auto build test ERROR on drm-misc/drm-misc-next]
> [cannot apply to drm/drm-next drm-intel/for-linux-next drm-intel/for-linux-next-fixes linus/master v6.8-rc7 next-20240306]
> [If your patch is applied to the wrong git tree, kindly drop us a note.
> And when submitting patch, we suggest to use '--base' as documented in
> https://git-scm.com/docs/git-format-patch#_base_tree_information]
>
> url:    https://github.com/intel-lab-lkp/linux/commits/Jani-Nikula/drm-crtc-make-drm_crtc_internal-h-self-contained/20240307-023603
> base:   git://anongit.freedesktop.org/drm/drm-misc drm-misc-next
> patch link:    https://lore.kernel.org/r/e22ab28836ee1689ea4781ed53fd2e4e4f84728e.1709749576.git.jani.nikula%40intel.com
> patch subject: [PATCH 22/22] drm: ensure drm headers are self-contained and pass kernel-doc
> config: m68k-allmodconfig (https://download.01.org/0day-ci/archive/20240307/202403071317.uoW18ZR3-lkp@intel.com/config)
> compiler: m68k-linux-gcc (GCC) 13.2.0
> reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240307/202403071317.uoW18ZR3-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/202403071317.uoW18ZR3-lkp@intel.com/
>
> All error/warnings (new ones prefixed by >>):
>
>    In file included from include/asm-generic/pgtable-nopud.h:7,
>                     from arch/m68k/include/asm/pgtable_mm.h:9,
>                     from arch/m68k/include/asm/pgtable.h:8,
>                     from include/linux/pgtable.h:6,
>                     from include/drm/ttm/ttm_caching.h:28,
>                     from <command-line>:
>>> include/asm-generic/pgtable-nop4d.h:9:18: error: unknown type name 'pgd_t'
>        9 | typedef struct { pgd_t pgd; } p4d_t;
>          |                  ^~~~~
>    include/asm-generic/pgtable-nop4d.h:21:28: error: unknown type name 'pgd_t'; did you mean 'p4d_t'?
>       21 | static inline int pgd_none(pgd_t pgd)           { return 0; }
>          |                            ^~~~~
>          |                            p4d_t
>    include/asm-generic/pgtable-nop4d.h:22:27: error: unknown type name 'pgd_t'; did you mean 'p4d_t'?
>       22 | static inline int pgd_bad(pgd_t pgd)            { return 0; }
>          |                           ^~~~~
>          |                           p4d_t
>    include/asm-generic/pgtable-nop4d.h:23:31: error: unknown type name 'pgd_t'; did you mean 'p4d_t'?
>       23 | static inline int pgd_present(pgd_t pgd)        { return 1; }
>          |                               ^~~~~
>          |                               p4d_t
>    include/asm-generic/pgtable-nop4d.h:24:30: error: unknown type name 'pgd_t'; did you mean 'p4d_t'?
>       24 | static inline void pgd_clear(pgd_t *pgd)        { }
>          |                              ^~~~~
>          |                              p4d_t
>    include/asm-generic/pgtable-nop4d.h:35:33: error: unknown type name 'pgd_t'; did you mean 'p4d_t'?
>       35 | static inline p4d_t *p4d_offset(pgd_t *pgd, unsigned long address)
>          |                                 ^~~~~
>          |                                 p4d_t
>    In file included from arch/m68k/include/asm/thread_info.h:6,
>                     from include/linux/thread_info.h:60,
>                     from include/asm-generic/preempt.h:5,
>                     from ./arch/m68k/include/generated/asm/preempt.h:1,
>                     from include/linux/preempt.h:79,
>                     from arch/m68k/include/asm/processor.h:11,
>                     from arch/m68k/include/asm/pgtable_mm.h:15:
>    arch/m68k/include/asm/motorola_pgtable.h: In function 'pud_set':
>>> arch/m68k/include/asm/page.h:46:29: error: request for member 'pgd' in something not a structure or union
>       46 | #define pgd_val(x)      ((x).pgd)
>          |                             ^
>    include/asm-generic/pgtable-nop4d.h:40:50: note: in expansion of macro 'pgd_val'
>       40 | #define p4d_val(x)                              (pgd_val((x).pgd))
>          |                                                  ^~~~~~~
>    include/asm-generic/pgtable-nopud.h:48:50: note: in expansion of macro 'p4d_val'
>       48 | #define pud_val(x)                              (p4d_val((x).p4d))
>          |                                                  ^~~~~~~
>    arch/m68k/include/asm/motorola_pgtable.h:103:9: note: in expansion of macro 'pud_val'
>      103 |         pud_val(*pudp) = _PAGE_TABLE | _PAGE_ACCESSED | __pa(pmdp);
>          |         ^~~~~~~
>    include/linux/pgtable.h: In function 'pmd_offset':
>>> arch/m68k/include/asm/page.h:46:29: error: request for member 'pgd' in something not a structure or union
>       46 | #define pgd_val(x)      ((x).pgd)
>          |                             ^
>    include/asm-generic/pgtable-nop4d.h:40:50: note: in expansion of macro 'pgd_val'
>       40 | #define p4d_val(x)                              (pgd_val((x).pgd))
>          |                                                  ^~~~~~~
>    include/asm-generic/pgtable-nopud.h:48:50: note: in expansion of macro 'p4d_val'
>       48 | #define pud_val(x)                              (p4d_val((x).p4d))
>          |                                                  ^~~~~~~
>    arch/m68k/include/asm/motorola_pgtable.h:108:41: note: in expansion of macro 'pud_val'
>      108 | #define pud_pgtable(pud) ((pmd_t *)__va(pud_val(pud) & _TABLE_MASK))
>          |                                         ^~~~~~~
>    include/linux/pgtable.h:123:16: note: in expansion of macro 'pud_pgtable'
>      123 |         return pud_pgtable(*pud) + pmd_index(address);
>          |                ^~~~~~~~~~~
>    include/linux/pgtable.h: In function 'pmd_off':
>>> include/linux/pgtable.h:165:38: error: implicit declaration of function 'p4d_offset'; did you mean 'pmd_offset'? [-Werror=implicit-function-declaration]
>      165 |         return pmd_offset(pud_offset(p4d_offset(pgd_offset(mm, va), va), va), va);
>          |                                      ^~~~~~~~~~
>          |                                      pmd_offset
>>> include/linux/pgtable.h:165:38: warning: passing argument 1 of 'pud_offset' makes pointer from integer without a cast [-Wint-conversion]
>      165 |         return pmd_offset(pud_offset(p4d_offset(pgd_offset(mm, va), va), va), va);
>          |                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>          |                                      |
>          |                                      int
>    include/asm-generic/pgtable-nopud.h:42:40: note: expected 'p4d_t *' but argument is of type 'int'
>       42 | static inline pud_t *pud_offset(p4d_t *p4d, unsigned long address)
>          |                                 ~~~~~~~^~~
>    include/linux/pgtable.h: In function 'pmd_off_k':
>    include/linux/pgtable.h:170:38: warning: passing argument 1 of 'pud_offset' makes pointer from integer without a cast [-Wint-conversion]
>      170 |         return pmd_offset(pud_offset(p4d_offset(pgd_offset_k(va), va), va), va);
>          |                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>          |                                      |
>          |                                      int
>    include/asm-generic/pgtable-nopud.h:42:40: note: expected 'p4d_t *' but argument is of type 'int'
>       42 | static inline pud_t *pud_offset(p4d_t *p4d, unsigned long address)
>          |                                 ~~~~~~~^~~
>    include/linux/pgtable.h: In function 'pud_same':
>>> arch/m68k/include/asm/page.h:46:29: error: request for member 'pgd' in something not a structure or union
>       46 | #define pgd_val(x)      ((x).pgd)
>          |                             ^
>    include/asm-generic/pgtable-nop4d.h:40:50: note: in expansion of macro 'pgd_val'
>       40 | #define p4d_val(x)                              (pgd_val((x).pgd))
>          |                                                  ^~~~~~~
>    include/asm-generic/pgtable-nopud.h:48:50: note: in expansion of macro 'p4d_val'
>       48 | #define pud_val(x)                              (p4d_val((x).p4d))
>          |                                                  ^~~~~~~
>    include/linux/pgtable.h:829:16: note: in expansion of macro 'pud_val'
>      829 |         return pud_val(pud_a) == pud_val(pud_b);
>          |                ^~~~~~~
>>> arch/m68k/include/asm/page.h:46:29: error: request for member 'pgd' in something not a structure or union
>       46 | #define pgd_val(x)      ((x).pgd)
>          |                             ^
>    include/asm-generic/pgtable-nop4d.h:40:50: note: in expansion of macro 'pgd_val'
>       40 | #define p4d_val(x)                              (pgd_val((x).pgd))
>          |                                                  ^~~~~~~
>    include/asm-generic/pgtable-nopud.h:48:50: note: in expansion of macro 'p4d_val'
>       48 | #define pud_val(x)                              (p4d_val((x).p4d))
>          |                                                  ^~~~~~~
>    include/linux/pgtable.h:829:34: note: in expansion of macro 'pud_val'
>      829 |         return pud_val(pud_a) == pud_val(pud_b);
>          |                                  ^~~~~~~
>>> include/linux/pgtable.h:827:34: warning: parameter 'pud_a' set but not used [-Wunused-but-set-parameter]
>      827 | static inline int pud_same(pud_t pud_a, pud_t pud_b)
>          |                            ~~~~~~^~~~~
>>> include/linux/pgtable.h:827:47: warning: parameter 'pud_b' set but not used [-Wunused-but-set-parameter]
>      827 | static inline int pud_same(pud_t pud_a, pud_t pud_b)
>          |                                         ~~~~~~^~~~~
>    include/linux/pgtable.h: In function 'p4d_same':
>>> arch/m68k/include/asm/page.h:46:29: error: request for member 'pgd' in something not a structure or union
>       46 | #define pgd_val(x)      ((x).pgd)
>          |                             ^
>    include/asm-generic/pgtable-nop4d.h:40:50: note: in expansion of macro 'pgd_val'
>       40 | #define p4d_val(x)                              (pgd_val((x).pgd))
>          |                                                  ^~~~~~~
>    include/linux/pgtable.h:837:16: note: in expansion of macro 'p4d_val'
>      837 |         return p4d_val(p4d_a) == p4d_val(p4d_b);
>          |                ^~~~~~~
>>> arch/m68k/include/asm/page.h:46:29: error: request for member 'pgd' in something not a structure or union
>       46 | #define pgd_val(x)      ((x).pgd)
>          |                             ^
>    include/asm-generic/pgtable-nop4d.h:40:50: note: in expansion of macro 'pgd_val'
>       40 | #define p4d_val(x)                              (pgd_val((x).pgd))
>          |                                                  ^~~~~~~
>    include/linux/pgtable.h:837:34: note: in expansion of macro 'p4d_val'
>      837 |         return p4d_val(p4d_a) == p4d_val(p4d_b);
>          |                                  ^~~~~~~
>>> include/linux/pgtable.h:835:34: warning: parameter 'p4d_a' set but not used [-Wunused-but-set-parameter]
>      835 | static inline int p4d_same(p4d_t p4d_a, p4d_t p4d_b)
>          |                            ~~~~~~^~~~~
>>> include/linux/pgtable.h:835:47: warning: parameter 'p4d_b' set but not used [-Wunused-but-set-parameter]
>      835 | static inline int p4d_same(p4d_t p4d_a, p4d_t p4d_b)
>          |                                         ~~~~~~^~~~~
>    include/linux/pgtable.h: In function 'pgd_none_or_clear_bad':
>>> include/linux/pgtable.h:1021:13: error: implicit declaration of function 'pgd_none'; did you mean 'p4d_none'? [-Werror=implicit-function-declaration]
>     1021 |         if (pgd_none(*pgd))
>          |             ^~~~~~~~
>          |             p4d_none
>    In file included from include/linux/export.h:5,
>                     from include/linux/linkage.h:7,
>                     from include/linux/preempt.h:10:
>>> include/linux/pgtable.h:1023:22: error: implicit declaration of function 'pgd_bad'; did you mean 'p4d_bad'? [-Werror=implicit-function-declaration]
>     1023 |         if (unlikely(pgd_bad(*pgd))) {
>          |                      ^~~~~~~
>    include/linux/compiler.h:77:45: note: in definition of macro 'unlikely'
>       77 | # define unlikely(x)    __builtin_expect(!!(x), 0)
>          |                                             ^
>    include/linux/pgtable.h: In function 'pud_none_or_clear_bad':
>>> arch/m68k/include/asm/page.h:46:29: error: request for member 'pgd' in something not a structure or union
>       46 | #define pgd_val(x)      ((x).pgd)
>          |                             ^
>    include/asm-generic/pgtable-nop4d.h:40:50: note: in expansion of macro 'pgd_val'
>       40 | #define p4d_val(x)                              (pgd_val((x).pgd))
>          |                                                  ^~~~~~~
>    include/asm-generic/pgtable-nopud.h:48:50: note: in expansion of macro 'p4d_val'
>       48 | #define pud_val(x)                              (p4d_val((x).p4d))
>          |                                                  ^~~~~~~
>    arch/m68k/include/asm/motorola_pgtable.h:134:35: note: in expansion of macro 'pud_val'
>      134 | #define pud_none(pud)           (!pud_val(pud))
>          |                                   ^~~~~~~
>    include/linux/pgtable.h:1043:13: note: in expansion of macro 'pud_none'
>     1043 |         if (pud_none(*pud))
>          |             ^~~~~~~~
>>> arch/m68k/include/asm/page.h:46:29: error: request for member 'pgd' in something not a structure or union
>       46 | #define pgd_val(x)      ((x).pgd)
>          |                             ^
>    include/linux/compiler.h:77:45: note: in definition of macro 'unlikely'
>       77 | # define unlikely(x)    __builtin_expect(!!(x), 0)
>          |                                             ^
>    include/asm-generic/pgtable-nop4d.h:40:50: note: in expansion of macro 'pgd_val'
>       40 | #define p4d_val(x)                              (pgd_val((x).pgd))
>          |                                                  ^~~~~~~
>    include/asm-generic/pgtable-nopud.h:48:50: note: in expansion of macro 'p4d_val'
>       48 | #define pud_val(x)                              (p4d_val((x).p4d))
>          |                                                  ^~~~~~~
>    arch/m68k/include/asm/motorola_pgtable.h:135:35: note: in expansion of macro 'pud_val'
>      135 | #define pud_bad(pud)            ((pud_val(pud) & _DESCTYPE_MASK) != _PAGE_TABLE)
>          |                                   ^~~~~~~
>    include/linux/pgtable.h:1045:22: note: in expansion of macro 'pud_bad'
>     1045 |         if (unlikely(pud_bad(*pud))) {
>          |                      ^~~~~~~
>    cc1: some warnings being treated as errors
>
>
> vim +/pgd_t +9 include/asm-generic/pgtable-nop4d.h
>
> 048456dcf2c56a Kirill A. Shutemov 2017-03-09   8  
> 048456dcf2c56a Kirill A. Shutemov 2017-03-09  @9  typedef struct { pgd_t pgd; } p4d_t;
> 048456dcf2c56a Kirill A. Shutemov 2017-03-09  10  

-- 
Jani Nikula, Intel

  reply	other threads:[~2024-03-07  8:44 UTC|newest]

Thread overview: 61+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-03-06 18:31 [PATCH 00/22] drm: fix headers, add header test facility Jani Nikula
2024-03-06 18:31 ` [PATCH 01/22] drm/crtc: make drm_crtc_internal.h self-contained Jani Nikula
2024-03-07  8:34   ` [PATCH v2] " Jani Nikula
2024-03-06 18:31 ` [PATCH 02/22] drm: add missing header guards to drm_internal.h Jani Nikula
2024-03-06 18:31 ` [PATCH 03/22] drm/kunit: fix drm_kunit_helpers.h kernel-doc Jani Nikula
2024-03-06 18:31 ` [PATCH 04/22] drm/amdgpu: make amd_asic_type.h self-contained Jani Nikula
2024-03-07 14:36   ` Alex Deucher
2024-03-07 15:02     ` Jani Nikula
2024-03-06 18:31 ` [PATCH 05/22] drm: bridge: samsung-dsim: make samsung-dsim.h self-contained Jani Nikula
2024-03-06 18:31 ` [PATCH 06/22] drm/dp_mst: fix drm_dp_mst_helper.h kernel-doc Jani Nikula
2024-03-06 18:31 ` [PATCH 07/22] drm/crc: make drm_debugfs_crc.h self-contained and fix kernel-doc Jani Nikula
2024-03-06 18:31 ` [PATCH 08/22] drm/encoder: silence drm_encoder_slave.h kernel-doc Jani Nikula
2024-03-06 18:31 ` [PATCH 09/22] drm: fix drm_format_helper.h kernel-doc warnings Jani Nikula
2024-03-06 18:31 ` [PATCH 10/22] drm/lease: make drm_lease.h self-contained Jani Nikula
2024-03-06 18:31 ` [PATCH 11/22] drm: fix drm_gem_vram_helper.h kernel-doc Jani Nikula
2024-03-06 18:31 ` [PATCH 12/22] drm/of: make drm_of.h self-contained Jani Nikula
2024-03-06 18:31 ` [PATCH 13/22] drm/i2c: silence ch7006.h and sil164.h kernel-doc warnings Jani Nikula
2024-03-06 18:31 ` [PATCH 14/22] drm/suballoc: fix drm_suballoc.h kernel-doc Jani Nikula
2024-03-06 18:31 ` [PATCH 15/22] drm/i915: fix i915_gsc_proxy_mei_interface.h kernel-doc Jani Nikula
2024-03-07 17:56   ` Lucas De Marchi
2024-03-06 18:31 ` [PATCH 16/22] drm/i915/hdcp: fix i915_hdcp_interface.h kernel-doc warnings Jani Nikula
2024-03-07 18:00   ` Lucas De Marchi
2024-03-06 18:31 ` [PATCH 17/22] drm/i915/pxp: fix i915_pxp_tee_interface.h " Jani Nikula
2024-03-07 18:02   ` Lucas De Marchi
2024-03-07 20:49     ` Jani Nikula
2024-03-06 18:31 ` [PATCH 18/22] drm/ttm: fix ttm_bo.h " Jani Nikula
2024-03-06 18:31 ` [PATCH 19/22] drm/ttm: make ttm_caching.h self-contained Jani Nikula
2024-03-06 18:31 ` [PATCH 20/22] drm/ttm: fix ttm_execbuf_util.h kernel-doc warnings Jani Nikula
2024-03-06 18:31 ` [PATCH 21/22] drm/ttm: fix ttm_kmap_iter.h " Jani Nikula
2024-03-06 18:31 ` [PATCH 22/22] drm: ensure drm headers are self-contained and pass kernel-doc Jani Nikula
2024-03-07  5:06   ` kernel test robot
2024-03-07  5:28   ` kernel test robot
2024-03-07  8:44     ` Jani Nikula [this message]
2024-03-07  9:36       ` Geert Uytterhoeven
2024-03-07 15:43         ` Jani Nikula
2024-03-07 14:49   ` kernel test robot
2024-03-06 18:38 ` ✓ CI.Patch_applied: success for drm: fix headers, add header test facility Patchwork
2024-03-06 18:39 ` ✗ CI.checkpatch: warning " Patchwork
2024-03-06 18:39 ` ✓ CI.KUnit: success " Patchwork
2024-03-06 18:50 ` ✓ CI.Build: " Patchwork
2024-03-06 18:51 ` ✗ CI.Hooks: failure " Patchwork
2024-03-06 18:52 ` ✗ CI.checksparse: warning " Patchwork
2024-03-06 19:26 ` ✓ CI.BAT: success " Patchwork
2024-03-07  0:47 ` ✗ Fi.CI.CHECKPATCH: warning " Patchwork
2024-03-07  0:47 ` ✗ Fi.CI.SPARSE: " Patchwork
2024-03-07  1:06 ` ✗ Fi.CI.BAT: failure " Patchwork
2024-03-07  8:35 ` [PATCH] drm: add missing header guards to drm_crtc_internal.h Jani Nikula
2024-03-07  8:39 ` ✓ CI.Patch_applied: success for drm: add missing header guards to drm_crtc_internal.h (rev2) Patchwork
2024-03-07  8:40 ` ✗ CI.checkpatch: warning " Patchwork
2024-03-07  8:40 ` ✓ CI.KUnit: success " Patchwork
2024-03-07  8:54 ` ✓ CI.Build: " Patchwork
2024-03-07  8:55 ` ✗ CI.Hooks: failure " Patchwork
2024-03-07  8:55 ` [PATCH 00/22] drm: fix headers, add header test facility Thomas Zimmermann
2024-03-07  9:04   ` Jani Nikula
2024-03-07 15:23   ` Jani Nikula
2024-03-07  8:57 ` ✗ CI.checksparse: warning for drm: add missing header guards to drm_crtc_internal.h (rev2) Patchwork
2024-03-07  9:24 ` ✓ CI.BAT: success " Patchwork
2024-03-07  9:38 ` ✗ Fi.CI.CHECKPATCH: warning " Patchwork
2024-03-07  9:38 ` ✗ Fi.CI.SPARSE: " Patchwork
2024-03-07  9:55 ` ✓ Fi.CI.BAT: success " Patchwork
2024-03-07 18:27 ` ✗ Fi.CI.IGT: failure " Patchwork

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=878r2uxwha.fsf@intel.com \
    --to=jani.nikula@intel.com \
    --cc=airlied@gmail.com \
    --cc=daniel@ffwll.ch \
    --cc=dri-devel@lists.freedesktop.org \
    --cc=geert@linux-m68k.org \
    --cc=intel-gfx@lists.freedesktop.org \
    --cc=intel-xe@lists.freedesktop.org \
    --cc=lkp@intel.com \
    --cc=maarten.lankhorst@linux.intel.com \
    --cc=masahiroy@kernel.org \
    --cc=mripard@kernel.org \
    --cc=oe-kbuild-all@lists.linux.dev \
    --cc=thomas.hellstrom@linux.intel.com \
    --cc=tzimmermann@suse.de \
    /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.