From: kernel test robot <lkp@intel.com>
To: cros-kernel-buildreports@googlegroups.com
Cc: oe-kbuild-all@lists.linux.dev
Subject: [android-common:android17-6.18-kminext 1/1] mm/hmm.c:263:18: warning: passing argument 1 of 'page_pgmap' makes pointer from integer without a cast
Date: Thu, 13 Aug 2026 06:41:32 +0800 [thread overview]
Message-ID: <202608130645.EbYCtcND-lkp@intel.com> (raw)
Hi Vamsidhar,
FYI, the error/warning still remains.
tree: https://android.googlesource.com/kernel/common android17-6.18-kminext
head: 10f6d538c651ab6dd44bb8679c8e2d6522f13a68
commit: ad36ecd6081db9827f1ebaa41671b0b336fd83bf [1/1] ANDROID: GKI: Enable HMM_MIRROR config for all arch
config: arm-randconfig-003-20260813 (https://download.01.org/0day-ci/archive/20260813/202608130645.EbYCtcND-lkp@intel.com/config)
compiler: arm-linux-gnueabi-gcc (GCC) 8.5.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260813/202608130645.EbYCtcND-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/202608130645.EbYCtcND-lkp@intel.com/
All warnings (new ones prefixed by >>):
mm/hmm.c: In function 'pte_to_hmm_pfn_flags':
mm/hmm.c:230:6: error: implicit declaration of function 'pte_none'; did you mean 'p4d_none'? [-Werror=implicit-function-declaration]
if (pte_none(pte) || !pte_present(pte) || pte_protnone(pte))
^~~~~~~~
p4d_none
mm/hmm.c:230:24: error: implicit declaration of function 'pte_present'; did you mean 'p4d_present'? [-Werror=implicit-function-declaration]
if (pte_none(pte) || !pte_present(pte) || pte_protnone(pte))
^~~~~~~~~~~
p4d_present
mm/hmm.c:230:44: error: implicit declaration of function 'pte_protnone'; did you mean 'p4d_none'? [-Werror=implicit-function-declaration]
if (pte_none(pte) || !pte_present(pte) || pte_protnone(pte))
^~~~~~~~~~~~
p4d_none
mm/hmm.c:232:9: error: implicit declaration of function 'pte_write'; did you mean 'pgd_write'? [-Werror=implicit-function-declaration]
return pte_write(pte) ? (HMM_PFN_VALID | HMM_PFN_WRITE) : HMM_PFN_VALID;
^~~~~~~~~
pgd_write
mm/hmm.c: In function 'hmm_vma_handle_pte':
mm/hmm.c:243:14: error: implicit declaration of function 'ptep_get'; did you mean 'kset_get'? [-Werror=implicit-function-declaration]
pte_t pte = ptep_get(ptep);
^~~~~~~~
kset_get
mm/hmm.c:247:6: error: implicit declaration of function 'pte_none_mostly'; did you mean 'pte_soft_dirty'? [-Werror=implicit-function-declaration]
if (pte_none_mostly(pte)) {
^~~~~~~~~~~~~~~
pte_soft_dirty
mm/hmm.c:256:23: error: implicit declaration of function 'pte_to_swp_entry'; did you mean 'page_swap_entry'? [-Werror=implicit-function-declaration]
swp_entry_t entry = pte_to_swp_entry(pte);
^~~~~~~~~~~~~~~~
page_swap_entry
mm/hmm.c:256:23: error: invalid initializer
mm/hmm.c:262:7: error: implicit declaration of function 'is_device_private_entry'; did you mean 'is_device_private_page'? [-Werror=implicit-function-declaration]
if (is_device_private_entry(entry) &&
^~~~~~~~~~~~~~~~~~~~~~~
is_device_private_page
mm/hmm.c:263:18: error: implicit declaration of function 'pfn_swap_entry_to_page'; did you mean 'swap_entry_swapped'? [-Werror=implicit-function-declaration]
page_pgmap(pfn_swap_entry_to_page(entry))->owner ==
^~~~~~~~~~~~~~~~~~~~~~
swap_entry_swapped
>> mm/hmm.c:263:18: warning: passing argument 1 of 'page_pgmap' makes pointer from integer without a cast [-Wint-conversion]
page_pgmap(pfn_swap_entry_to_page(entry))->owner ==
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from include/linux/gfp.h:7,
from include/linux/mm.h:7,
from include/linux/pagewalk.h:5,
from mm/hmm.c:11:
include/linux/mmzone.h:1245:65: note: expected 'const struct page *' but argument is of type 'int'
static inline struct dev_pagemap *page_pgmap(const struct page *page)
~~~~~~~~~~~~~~~~~~~^~~~
mm/hmm.c:266:8: error: implicit declaration of function 'is_writable_device_private_entry'; did you mean 'is_device_private_page'? [-Werror=implicit-function-declaration]
if (is_writable_device_private_entry(entry))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
is_device_private_page
mm/hmm.c:268:20: error: implicit declaration of function 'swp_offset_pfn'; did you mean 'pte_offset_map'? [-Werror=implicit-function-declaration]
new_pfn_flags = swp_offset_pfn(entry) | cpu_flags;
^~~~~~~~~~~~~~
pte_offset_map
mm/hmm.c:277:8: error: implicit declaration of function 'non_swap_entry'; did you mean 'page_swap_entry'? [-Werror=implicit-function-declaration]
if (!non_swap_entry(entry))
^~~~~~~~~~~~~~
page_swap_entry
mm/hmm.c:283:7: error: implicit declaration of function 'is_device_exclusive_entry'; did you mean 'wait_event_exclusive_cmd'? [-Werror=implicit-function-declaration]
if (is_device_exclusive_entry(entry))
^~~~~~~~~~~~~~~~~~~~~~~~~
wait_event_exclusive_cmd
mm/hmm.c:286:7: error: implicit declaration of function 'is_migration_entry'; did you mean 'list_first_entry'? [-Werror=implicit-function-declaration]
if (is_migration_entry(entry)) {
^~~~~~~~~~~~~~~~~~
list_first_entry
mm/hmm.c:287:4: error: implicit declaration of function 'pte_unmap'; did you mean 'memunmap'? [-Werror=implicit-function-declaration]
pte_unmap(ptep);
^~~~~~~~~
memunmap
mm/hmm.c:289:4: error: implicit declaration of function 'migration_entry_wait'; did you mean 'memalloc_retry_wait'? [-Werror=implicit-function-declaration]
migration_entry_wait(walk->mm, pmdp, addr);
^~~~~~~~~~~~~~~~~~~~
memalloc_retry_wait
mm/hmm.c:309:19: error: implicit declaration of function 'pte_pfn'; did you mean 'pud_pfn'? [-Werror=implicit-function-declaration]
!is_zero_pfn(pte_pfn(pte))) {
^~~~~~~
pud_pfn
mm/hmm.c: In function 'hmm_vma_walk_pmd':
mm/hmm.c:406:8: error: implicit declaration of function 'pmdp_get_lockless'; did you mean 'pmd_offset_lockless'? [-Werror=implicit-function-declaration]
pmd = pmdp_get_lockless(pmdp);
^~~~~~~~~~~~~~~~~
pmd_offset_lockless
mm/hmm.c:407:6: error: implicit declaration of function 'pmd_none'; did you mean 'p4d_none'? [-Werror=implicit-function-declaration]
if (pmd_none(pmd))
^~~~~~~~
p4d_none
mm/hmm.c:410:35: error: implicit declaration of function 'is_pmd_migration_entry'; did you mean 'list_first_entry'? [-Werror=implicit-function-declaration]
if (thp_migration_supported() && is_pmd_migration_entry(pmd)) {
^~~~~~~~~~~~~~~~~~~~~~
list_first_entry
mm/hmm.c:413:4: error: implicit declaration of function 'pmd_migration_entry_wait'; did you mean 'memalloc_retry_wait'? [-Werror=implicit-function-declaration]
pmd_migration_entry_wait(walk->mm, pmdp);
^~~~~~~~~~~~~~~~~~~~~~~~
memalloc_retry_wait
mm/hmm.c:419:7: error: implicit declaration of function 'pmd_present'; did you mean 'p4d_present'? [-Werror=implicit-function-declaration]
if (!pmd_present(pmd))
^~~~~~~~~~~
p4d_present
mm/hmm.c:423:6: error: implicit declaration of function 'pmd_trans_huge'; did you mean 'pmd_trans_huge_lock'? [-Werror=implicit-function-declaration]
if (pmd_trans_huge(pmd)) {
^~~~~~~~~~~~~~
pmd_trans_huge_lock
mm/hmm.c:446:6: error: implicit declaration of function 'pmd_bad'; did you mean 'p4d_bad'? [-Werror=implicit-function-declaration]
if (pmd_bad(pmd)) {
^~~~~~~
p4d_bad
mm/hmm.c: In function 'hmm_range_fault':
mm/hmm.c:667:7: error: implicit declaration of function 'mmu_interval_check_retry'; did you mean 'vma_interval_tree_remove'? [-Werror=implicit-function-declaration]
if (mmu_interval_check_retry(range->notifier,
^~~~~~~~~~~~~~~~~~~~~~~~
vma_interval_tree_remove
cc1: some warnings being treated as errors
Kconfig warnings: (for reference only)
WARNING: unmet direct dependencies detected for USB_PHY
Depends on [n]: USB_SUPPORT [=n]
Selected by [y]:
- GKI_HIDDEN_USB_CONFIGS [=y]
WARNING: unmet direct dependencies detected for SND_COMPRESS_ACCEL
Depends on [n]: SOUND [=m] && SND [=n]
Selected by [y]:
- GKI_HIDDEN_SND_CONFIGS [=y]
WARNING: unmet direct dependencies detected for SND_JACK
Depends on [n]: SOUND [=m] && SND [=n]
Selected by [y]:
- GKI_HIDDEN_SND_CONFIGS [=y]
WARNING: unmet direct dependencies detected for SND_VMASTER
Depends on [n]: SOUND [=m] && SND [=n]
Selected by [y]:
- GKI_HIDDEN_SND_CONFIGS [=y]
WARNING: unmet direct dependencies detected for CAN_RX_OFFLOAD
Depends on [n]: NETDEVICES [=n] && CAN_DEV [=n] && CAN_NETLINK [=n]
Selected by [y]:
- GKI_HIDDEN_MCP251XFD_CONFIGS [=y]
WARNING: unmet direct dependencies detected for SND_JACK_INPUT_DEV
Depends on [n]: SOUND [=m] && SND [=n] && SND_JACK [=y]
Selected by [y]:
- GKI_HIDDEN_SND_CONFIGS [=y]
WARNING: unmet direct dependencies detected for WEXT_PROC
Depends on [n]: NET [=y] && WIRELESS [=n] && PROC_FS [=n] && WEXT_CORE [=y]
Selected by [y]:
- GKI_LEGACY_WEXT_ALLCONFIG [=y]
WARNING: unmet direct dependencies detected for SND_PCM_ELD
Depends on [n]: SOUND [=m] && SND [=n]
Selected by [y]:
- GKI_HIDDEN_SND_CONFIGS [=y]
WARNING: unmet direct dependencies detected for WEXT_PRIV
Depends on [n]: NET [=y] && WIRELESS [=n]
Selected by [y]:
- GKI_LEGACY_WEXT_ALLCONFIG [=y]
WARNING: unmet direct dependencies detected for HMM_MIRROR
Depends on [n]: MMU [=n]
Selected by [y]:
- GKI_HIDDEN_DRM_CONFIGS [=y] && DRM [=y]
WARNING: unmet direct dependencies detected for DRM_GEM_SHMEM_HELPER
Depends on [n]: HAS_IOMEM [=y] && DRM [=y] && MMU [=n]
Selected by [y]:
- GKI_HIDDEN_DRM_CONFIGS [=y] && DRM [=y]
WARNING: unmet direct dependencies detected for BALLOON_COMPACTION
Depends on [n]: COMPACTION [=n] && MEMORY_BALLOON [=y]
Selected by [y]:
- GKI_HIDDEN_MM_CONFIGS [=y]
WARNING: unmet direct dependencies detected for PHYLINK
Depends on [n]: NETDEVICES [=n]
Selected by [y]:
- GKI_HIDDEN_ETHERNET_CONFIGS [=y]
WARNING: unmet direct dependencies detected for DRM_TTM
Depends on [n]: HAS_IOMEM [=y] && DRM [=y] && MMU [=n]
Selected by [y]:
- GKI_HIDDEN_DRM_CONFIGS [=y] && HAS_IOMEM [=y] && DRM [=y]
WARNING: unmet direct dependencies detected for SND_PCM_IEC958
Depends on [n]: SOUND [=m] && SND [=n]
Selected by [y]:
- GKI_HIDDEN_SND_SOC_CONFIGS [=y]
WARNING: unmet direct dependencies detected for IOMMU_SVA
Depends on [n]: IOMMU_SUPPORT [=n]
Selected by [y]:
- GKI_HIDDEN_IOMMU_CONFIGS [=y]
WARNING: unmet direct dependencies detected for WIRELESS_EXT
Depends on [n]: NET [=y] && WIRELESS [=n]
Selected by [y]:
- GKI_LEGACY_WEXT_ALLCONFIG [=y]
WARNING: unmet direct dependencies detected for WEXT_CORE
Depends on [n]: NET [=y] && WIRELESS [=n] && (CFG80211_WEXT [=n] || WIRELESS_EXT [=y])
Selected by [y]:
- GKI_LEGACY_WEXT_ALLCONFIG [=y]
vim +/page_pgmap +263 mm/hmm.c
2aee09d8c116421 Jérôme Glisse 2018-04-10 234
53f5c3f489ecddc Jérôme Glisse 2018-04-10 235 static int hmm_vma_handle_pte(struct mm_walk *walk, unsigned long addr,
53f5c3f489ecddc Jérôme Glisse 2018-04-10 236 unsigned long end, pmd_t *pmdp, pte_t *ptep,
2733ea144dcce78 Jason Gunthorpe 2020-05-01 237 unsigned long *hmm_pfn)
53f5c3f489ecddc Jérôme Glisse 2018-04-10 238 {
53f5c3f489ecddc Jérôme Glisse 2018-04-10 239 struct hmm_vma_walk *hmm_vma_walk = walk->private;
f88a1e90c665408 Jérôme Glisse 2018-04-10 240 struct hmm_range *range = hmm_vma_walk->range;
a3eb13c1579ba97 Jason Gunthorpe 2020-03-27 241 unsigned int required_fault;
2733ea144dcce78 Jason Gunthorpe 2020-05-01 242 unsigned long cpu_flags;
c33c794828f2121 Ryan Roberts 2023-06-12 243 pte_t pte = ptep_get(ptep);
2733ea144dcce78 Jason Gunthorpe 2020-05-01 244 uint64_t pfn_req_flags = *hmm_pfn;
285e871884ff3dc Leon Romanovsky 2025-04-28 245 uint64_t new_pfn_flags = 0;
da4c3c735ea4dcc Jérôme Glisse 2017-09-08 246
5c041f5d1f23d3a Peter Xu 2022-05-12 247 if (pte_none_mostly(pte)) {
2733ea144dcce78 Jason Gunthorpe 2020-05-01 248 required_fault =
2733ea144dcce78 Jason Gunthorpe 2020-05-01 249 hmm_pte_need_fault(hmm_vma_walk, pfn_req_flags, 0);
a3eb13c1579ba97 Jason Gunthorpe 2020-03-27 250 if (required_fault)
74eee180b935fcb Jérôme Glisse 2017-09-08 251 goto fault;
285e871884ff3dc Leon Romanovsky 2025-04-28 252 goto out;
74eee180b935fcb Jérôme Glisse 2017-09-08 253 }
74eee180b935fcb Jérôme Glisse 2017-09-08 254
74eee180b935fcb Jérôme Glisse 2017-09-08 255 if (!pte_present(pte)) {
8d63e4cd62b2583 Ralph Campbell 2018-01-31 @256 swp_entry_t entry = pte_to_swp_entry(pte);
74eee180b935fcb Jérôme Glisse 2017-09-08 257
74eee180b935fcb Jérôme Glisse 2017-09-08 258 /*
8a295dbbaf7292c Ralph Campbell 2022-07-25 259 * Don't fault in device private pages owned by the caller,
8a295dbbaf7292c Ralph Campbell 2022-07-25 260 * just report the PFN.
74eee180b935fcb Jérôme Glisse 2017-09-08 261 */
8a295dbbaf7292c Ralph Campbell 2022-07-25 262 if (is_device_private_entry(entry) &&
82ba975e4c43d98 Alistair Popple 2025-02-28 @263 page_pgmap(pfn_swap_entry_to_page(entry))->owner ==
8a295dbbaf7292c Ralph Campbell 2022-07-25 264 range->dev_private_owner) {
2733ea144dcce78 Jason Gunthorpe 2020-05-01 265 cpu_flags = HMM_PFN_VALID;
4dd845b5a3e57ad Alistair Popple 2021-06-30 266 if (is_writable_device_private_entry(entry))
2733ea144dcce78 Jason Gunthorpe 2020-05-01 267 cpu_flags |= HMM_PFN_WRITE;
285e871884ff3dc Leon Romanovsky 2025-04-28 268 new_pfn_flags = swp_offset_pfn(entry) | cpu_flags;
285e871884ff3dc Leon Romanovsky 2025-04-28 269 goto out;
53f5c3f489ecddc Jérôme Glisse 2018-04-10 270 }
53f5c3f489ecddc Jérôme Glisse 2018-04-10 271
2733ea144dcce78 Jason Gunthorpe 2020-05-01 272 required_fault =
2733ea144dcce78 Jason Gunthorpe 2020-05-01 273 hmm_pte_need_fault(hmm_vma_walk, pfn_req_flags, 0);
285e871884ff3dc Leon Romanovsky 2025-04-28 274 if (!required_fault)
285e871884ff3dc Leon Romanovsky 2025-04-28 275 goto out;
76612d6ce4ccd21 Jason Gunthorpe 2020-02-28 276
76612d6ce4ccd21 Jason Gunthorpe 2020-02-28 277 if (!non_swap_entry(entry))
76612d6ce4ccd21 Jason Gunthorpe 2020-02-28 278 goto fault;
76612d6ce4ccd21 Jason Gunthorpe 2020-02-28 279
8a295dbbaf7292c Ralph Campbell 2022-07-25 280 if (is_device_private_entry(entry))
8a295dbbaf7292c Ralph Campbell 2022-07-25 281 goto fault;
8a295dbbaf7292c Ralph Campbell 2022-07-25 282
b756a3b5e7ead8f Alistair Popple 2021-06-30 283 if (is_device_exclusive_entry(entry))
b756a3b5e7ead8f Alistair Popple 2021-06-30 284 goto fault;
b756a3b5e7ead8f Alistair Popple 2021-06-30 285
53f5c3f489ecddc Jérôme Glisse 2018-04-10 286 if (is_migration_entry(entry)) {
74eee180b935fcb Jérôme Glisse 2017-09-08 287 pte_unmap(ptep);
74eee180b935fcb Jérôme Glisse 2017-09-08 288 hmm_vma_walk->last = addr;
d2e8d551165ccb6 Ralph Campbell 2019-07-25 289 migration_entry_wait(walk->mm, pmdp, addr);
73231612dc7c907 Jérôme Glisse 2019-05-13 290 return -EBUSY;
74eee180b935fcb Jérôme Glisse 2017-09-08 291 }
53f5c3f489ecddc Jérôme Glisse 2018-04-10 292
53f5c3f489ecddc Jérôme Glisse 2018-04-10 293 /* Report error for everything else */
dfdc22078f3f064 Jason Gunthorpe 2020-02-28 294 pte_unmap(ptep);
53f5c3f489ecddc Jérôme Glisse 2018-04-10 295 return -EFAULT;
da4c3c735ea4dcc Jérôme Glisse 2017-09-08 296 }
da4c3c735ea4dcc Jérôme Glisse 2017-09-08 297
76612d6ce4ccd21 Jason Gunthorpe 2020-02-28 298 cpu_flags = pte_to_hmm_pfn_flags(range, pte);
2733ea144dcce78 Jason Gunthorpe 2020-05-01 299 required_fault =
2733ea144dcce78 Jason Gunthorpe 2020-05-01 300 hmm_pte_need_fault(hmm_vma_walk, pfn_req_flags, cpu_flags);
a3eb13c1579ba97 Jason Gunthorpe 2020-03-27 301 if (required_fault)
74eee180b935fcb Jérôme Glisse 2017-09-08 302 goto fault;
74eee180b935fcb Jérôme Glisse 2017-09-08 303
ac541f250372294 Ralph Campbell 2019-10-23 304 /*
405506274922910 Jason Gunthorpe 2020-03-05 305 * Since each architecture defines a struct page for the zero page, just
405506274922910 Jason Gunthorpe 2020-03-05 306 * fall through and treat it like a normal page.
ac541f250372294 Ralph Campbell 2019-10-23 307 */
87c01d57fa23de8 Alistair Popple 2022-01-14 308 if (!vm_normal_page(walk->vma, addr, pte) &&
4b42fb213678d2b Li Zhijian 2021-09-08 309 !is_zero_pfn(pte_pfn(pte))) {
2733ea144dcce78 Jason Gunthorpe 2020-05-01 310 if (hmm_pte_need_fault(hmm_vma_walk, pfn_req_flags, 0)) {
405506274922910 Jason Gunthorpe 2020-03-05 311 pte_unmap(ptep);
405506274922910 Jason Gunthorpe 2020-03-05 312 return -EFAULT;
405506274922910 Jason Gunthorpe 2020-03-05 313 }
285e871884ff3dc Leon Romanovsky 2025-04-28 314 new_pfn_flags = HMM_PFN_ERROR;
285e871884ff3dc Leon Romanovsky 2025-04-28 315 goto out;
ac541f250372294 Ralph Campbell 2019-10-23 316 }
992de9a8b751167 Jérôme Glisse 2019-05-13 317
285e871884ff3dc Leon Romanovsky 2025-04-28 318 new_pfn_flags = pte_pfn(pte) | cpu_flags;
285e871884ff3dc Leon Romanovsky 2025-04-28 319 out:
285e871884ff3dc Leon Romanovsky 2025-04-28 320 *hmm_pfn = (*hmm_pfn & HMM_PFN_INOUT_FLAGS) | new_pfn_flags;
53f5c3f489ecddc Jérôme Glisse 2018-04-10 321 return 0;
74eee180b935fcb Jérôme Glisse 2017-09-08 322
74eee180b935fcb Jérôme Glisse 2017-09-08 323 fault:
74eee180b935fcb Jérôme Glisse 2017-09-08 324 pte_unmap(ptep);
5504ed29692faad Jérôme Glisse 2018-04-10 325 /* Fault any virtual address we were asked to fault */
a3eb13c1579ba97 Jason Gunthorpe 2020-03-27 326 return hmm_vma_fault(addr, end, required_fault, walk);
53f5c3f489ecddc Jérôme Glisse 2018-04-10 327 }
53f5c3f489ecddc Jérôme Glisse 2018-04-10 328
:::::: The code at line 263 was first introduced by commit
:::::: 82ba975e4c43d98afebced82d940ddb7aec42a9d mm: allow compound zone device pages
:::::: TO: Alistair Popple <apopple@nvidia.com>
:::::: CC: Andrew Morton <akpm@linux-foundation.org>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
reply other threads:[~2026-08-12 22:42 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
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=202608130645.EbYCtcND-lkp@intel.com \
--to=lkp@intel.com \
--cc=cros-kernel-buildreports@googlegroups.com \
--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.