From: kernel test robot <lkp@intel.com>
To: cros-kernel-buildreports@googlegroups.com
Cc: oe-kbuild-all@lists.linux.dev
Subject: [android-common:android15-6.6 1/1] arch/arm64/kvm/hyp/nvhe/../../../../../drivers/iommu/io-pgtable-arm-common.c:143:5: warning: no previous prototype for '__arm_lpae_map'
Date: Tue, 13 Oct 2026 04:17:03 +0200 [thread overview]
Message-ID: <202610130455.GsOGPhms-lkp@intel.com> (raw)
Hi Jean-Philippe,
FYI, the error/warning still remains.
tree: https://android.googlesource.com/kernel/common android15-6.6
head: 5597a6bf0b11918da3f4fc2e4354f904acd26cc7
commit: cc07183cc836e2c8e29a55ae6e8e2aa431d59170 [1/1] BACKPORT: FROMLIST: KVM: arm64: smmu-v3: Support io-pgtable
config: arm64-randconfig-r2105-20261012 (https://download.01.org/0day-ci/archive/20261013/202610130455.GsOGPhms-lkp@intel.com/config)
compiler: aarch64-linux-gcc (GCC) 15.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20261013/202610130455.GsOGPhms-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/202610130455.GsOGPhms-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> arch/arm64/kvm/hyp/nvhe/../../../../../drivers/iommu/io-pgtable-arm-common.c:143:5: warning: no previous prototype for '__arm_lpae_map' [-Wmissing-prototypes]
143 | int __arm_lpae_map(struct arm_lpae_io_pgtable *data, unsigned long iova,
| ^~~~~~~~~~~~~~
>> arch/arm64/kvm/hyp/nvhe/../../../../../drivers/iommu/io-pgtable-arm-common.c:264:5: warning: no previous prototype for 'arm_lpae_map_pages' [-Wmissing-prototypes]
264 | int arm_lpae_map_pages(struct io_pgtable_ops *ops, unsigned long iova,
| ^~~~~~~~~~~~~~~~~~
>> arch/arm64/kvm/hyp/nvhe/../../../../../drivers/iommu/io-pgtable-arm-common.c:471:8: warning: no previous prototype for '__arm_lpae_unmap_pages' [-Wmissing-prototypes]
471 | size_t __arm_lpae_unmap_pages(struct io_pgtable_ops *ops, unsigned long iova,
| ^~~~~~~~~~~~~~~~~~~~~~
>> arch/arm64/kvm/hyp/nvhe/../../../../../drivers/iommu/io-pgtable-arm-common.c:493:13: warning: no previous prototype for 'arm_lpae_iova_to_phys' [-Wmissing-prototypes]
493 | phys_addr_t arm_lpae_iova_to_phys(struct io_pgtable_ops *ops,
| ^~~~~~~~~~~~~~~~~~~~~
>> arch/arm64/kvm/hyp/nvhe/../../../../../drivers/iommu/io-pgtable-arm-common.c:529:8: warning: no previous prototype for 'arm_lpae_unmap_pages' [-Wmissing-prototypes]
529 | size_t arm_lpae_unmap_pages(struct io_pgtable_ops *ops, unsigned long iova,
| ^~~~~~~~~~~~~~~~~~~~
>> arch/arm64/kvm/hyp/nvhe/../../../../../drivers/iommu/io-pgtable-arm-common.c:536:8: warning: no previous prototype for 'arm_lpae_unmap_pages_walk' [-Wmissing-prototypes]
536 | size_t arm_lpae_unmap_pages_walk(struct io_pgtable_ops *ops, unsigned long iova,
| ^~~~~~~~~~~~~~~~~~~~~~~~~
Kconfig warnings: (for reference only)
WARNING: unmet direct dependencies detected for SND_JACK
Depends on [n]: SOUND [=n] && SND [=n]
Selected by [y]:
- GKI_HIDDEN_SND_CONFIGS [=y]
WARNING: unmet direct dependencies detected for SND_VMASTER
Depends on [n]: SOUND [=n] && SND [=n]
Selected by [y]:
- GKI_HIDDEN_SND_CONFIGS [=y]
WARNING: unmet direct dependencies detected for CAN_RX_OFFLOAD
Depends on [n]: NETDEVICES [=y] && CAN_DEV [=n] && CAN_NETLINK [=n]
Selected by [y]:
- GKI_HIDDEN_MCP251XFD_CONFIGS [=y]
WARNING: unmet direct dependencies detected for SND_PCM_IEC958
Depends on [n]: SOUND [=n] && SND [=n]
Selected by [y]:
- GKI_HIDDEN_SND_SOC_CONFIGS [=y]
WARNING: unmet direct dependencies detected for SND_JACK_INPUT_DEV
Depends on [n]: SOUND [=n] && SND [=n] && SND_JACK [=y]
Selected by [y]:
- GKI_HIDDEN_SND_CONFIGS [=y]
WARNING: unmet direct dependencies detected for SND_PCM_ELD
Depends on [n]: SOUND [=n] && SND [=n]
Selected by [y]:
- GKI_HIDDEN_SND_CONFIGS [=y]
WARNING: unmet direct dependencies detected for WEXT_PROC
Depends on [n]: NET [=y] && WIRELESS [=y] && PROC_FS [=n] && WEXT_CORE [=y]
Selected by [y]:
- GKI_LEGACY_WEXT_ALLCONFIG [=y]
WARNING: unmet direct dependencies detected for SND_INTEL_NHLT
Depends on [n]: SOUND [=n] && SND [=n]
Selected by [y]:
- GKI_HIDDEN_SND_CONFIGS [=y] && ACPI [=y]
vim +/__arm_lpae_map +143 arch/arm64/kvm/hyp/nvhe/../../../../../drivers/iommu/io-pgtable-arm-common.c
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 142
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 @143 int __arm_lpae_map(struct arm_lpae_io_pgtable *data, unsigned long iova,
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 144 phys_addr_t paddr, size_t size, size_t pgcount,
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 145 arm_lpae_iopte prot, int lvl, arm_lpae_iopte *ptep,
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 146 gfp_t gfp, size_t *mapped)
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 147 {
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 148 arm_lpae_iopte *cptep, pte;
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 149 size_t block_size = ARM_LPAE_BLOCK_SIZE(lvl, data);
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 150 size_t tblsz = ARM_LPAE_GRANULE(data);
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 151 struct io_pgtable_cfg *cfg = &data->iop.cfg;
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 152 int ret = 0, num_entries, max_entries, map_idx_start;
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 153
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 154 /* Find our entry at the current level */
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 155 map_idx_start = ARM_LPAE_LVL_IDX(iova, lvl, data);
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 156 ptep += map_idx_start;
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 157
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 158 /* If we can install a leaf entry at this level, then do so */
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 159 if (size == block_size) {
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 160 max_entries = ARM_LPAE_PTES_PER_TABLE(data) - map_idx_start;
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 161 num_entries = min_t(int, pgcount, max_entries);
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 162 ret = arm_lpae_init_pte(data, iova, paddr, prot, lvl, num_entries, ptep);
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 163 if (!ret)
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 164 *mapped += num_entries * size;
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 165
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 166 return ret;
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 167 }
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 168
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 169 /* We can't allocate tables at the final level */
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 170 if (WARN_ON(lvl >= ARM_LPAE_MAX_LEVELS - 1))
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 171 return -EINVAL;
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 172
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 173 /* Grab a pointer to the next level */
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 174 pte = READ_ONCE(*ptep);
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 175 if (!pte) {
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 176 cptep = __arm_lpae_alloc_pages(tblsz, gfp, cfg);
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 177 if (!cptep)
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 178 return -ENOMEM;
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 179
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 180 pte = arm_lpae_install_table(cptep, ptep, 0, data);
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 181 if (pte)
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 182 __arm_lpae_free_pages(cptep, tblsz, cfg);
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 183 } else if (!cfg->coherent_walk && !(pte & ARM_LPAE_PTE_SW_SYNC)) {
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 184 __arm_lpae_sync_pte(ptep, 1, cfg);
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 185 }
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 186
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 187 if (pte && !iopte_leaf(pte, lvl, data->iop.fmt)) {
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 188 cptep = iopte_deref(pte, data);
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 189 } else if (pte) {
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 190 /* We require an unmap first */
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 191 WARN_ON(!selftest_running);
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 192 return -EEXIST;
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 193 }
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 194
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 195 /* Rinse, repeat */
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 196 return __arm_lpae_map(data, iova, paddr, size, pgcount, prot, lvl + 1,
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 197 cptep, gfp, mapped);
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 198 }
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 199
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 200 static arm_lpae_iopte arm_lpae_prot_to_pte(struct arm_lpae_io_pgtable *data,
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 201 int prot)
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 202 {
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 203 arm_lpae_iopte pte;
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 204
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 205 if (data->iop.fmt == ARM_64_LPAE_S1 ||
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 206 data->iop.fmt == ARM_32_LPAE_S1) {
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 207 pte = ARM_LPAE_PTE_nG;
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 208 if (!(prot & IOMMU_WRITE) && (prot & IOMMU_READ))
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 209 pte |= ARM_LPAE_PTE_AP_RDONLY;
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 210 if (!(prot & IOMMU_PRIV))
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 211 pte |= ARM_LPAE_PTE_AP_UNPRIV;
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 212 } else {
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 213 pte = ARM_LPAE_PTE_HAP_FAULT;
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 214 if (prot & IOMMU_READ)
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 215 pte |= ARM_LPAE_PTE_HAP_READ;
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 216 if (prot & IOMMU_WRITE)
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 217 pte |= ARM_LPAE_PTE_HAP_WRITE;
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 218 }
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 219
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 220 /*
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 221 * Note that this logic is structured to accommodate Mali LPAE
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 222 * having stage-1-like attributes but stage-2-like permissions.
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 223 */
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 224 if (data->iop.fmt == ARM_64_LPAE_S2 ||
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 225 data->iop.fmt == ARM_32_LPAE_S2) {
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 226 if (prot & IOMMU_MMIO)
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 227 pte |= ARM_LPAE_PTE_MEMATTR_DEV;
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 228 else if (prot & IOMMU_CACHE)
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 229 pte |= ARM_LPAE_PTE_MEMATTR_OIWB;
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 230 else
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 231 pte |= ARM_LPAE_PTE_MEMATTR_NC;
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 232 } else {
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 233 if (prot & IOMMU_MMIO)
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 234 pte |= (ARM_LPAE_MAIR_ATTR_IDX_DEV
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 235 << ARM_LPAE_PTE_ATTRINDX_SHIFT);
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 236 else if (prot & IOMMU_CACHE)
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 237 pte |= (ARM_LPAE_MAIR_ATTR_IDX_CACHE
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 238 << ARM_LPAE_PTE_ATTRINDX_SHIFT);
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 239 }
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 240
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 241 /*
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 242 * Also Mali has its own notions of shareability wherein its Inner
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 243 * domain covers the cores within the GPU, and its Outer domain is
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 244 * "outside the GPU" (i.e. either the Inner or System domain in CPU
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 245 * terms, depending on coherency).
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 246 */
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 247 if (prot & IOMMU_CACHE && data->iop.fmt != ARM_MALI_LPAE)
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 248 pte |= ARM_LPAE_PTE_SH_IS;
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 249 else
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 250 pte |= ARM_LPAE_PTE_SH_OS;
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 251
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 252 if (prot & IOMMU_NOEXEC)
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 253 pte |= ARM_LPAE_PTE_XN;
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 254
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 255 if (data->iop.cfg.quirks & IO_PGTABLE_QUIRK_ARM_NS)
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 256 pte |= ARM_LPAE_PTE_NS;
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 257
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 258 if (data->iop.fmt != ARM_MALI_LPAE)
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 259 pte |= ARM_LPAE_PTE_AF;
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 260
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 261 return pte;
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 262 }
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 263
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 @264 int arm_lpae_map_pages(struct io_pgtable_ops *ops, unsigned long iova,
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 265 phys_addr_t paddr, size_t pgsize, size_t pgcount,
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 266 int iommu_prot, gfp_t gfp, size_t *mapped)
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 267 {
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 268 struct arm_lpae_io_pgtable *data = io_pgtable_ops_to_data(ops);
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 269 struct io_pgtable_cfg *cfg = &data->iop.cfg;
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 270 arm_lpae_iopte *ptep = data->pgd;
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 271 int ret, lvl = data->start_level;
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 272 arm_lpae_iopte prot;
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 273 long iaext = (s64)iova >> cfg->ias;
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 274
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 275 if (WARN_ON(!pgsize || (pgsize & cfg->pgsize_bitmap) != pgsize))
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 276 return -EINVAL;
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 277
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 278 if (cfg->quirks & IO_PGTABLE_QUIRK_ARM_TTBR1)
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 279 iaext = ~iaext;
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 280 if (WARN_ON(iaext || paddr >> cfg->oas))
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 281 return -ERANGE;
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 282
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 283 /* If no access, then nothing to do */
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 284 if (!(iommu_prot & (IOMMU_READ | IOMMU_WRITE)))
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 285 return 0;
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 286
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 287 prot = arm_lpae_prot_to_pte(data, iommu_prot);
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 288 ret = __arm_lpae_map(data, iova, paddr, pgsize, pgcount, prot, lvl,
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 289 ptep, gfp, mapped);
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 290 /*
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 291 * Synchronise all PTE updates for the new mapping before there's
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 292 * a chance for anything to kick off a table walk for the new iova.
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 293 */
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 294 wmb();
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 295
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 296 return ret;
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 297 }
cf616fc76f2555 Jean-Philippe Brucker 2022-11-18 298
:::::: The code at line 143 was first introduced by commit
:::::: cf616fc76f2555d91fc88a543badc8a051f749c9 BACKPORT: FROMLIST: iommu/io-pgtable-arm: Split the page table driver
:::::: TO: Jean-Philippe Brucker <jean-philippe@linaro.org>
:::::: CC: Mostafa Saleh <smostafa@google.com>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
reply other threads:[~2026-10-13 2:17 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=202610130455.GsOGPhms-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.