Linux kbuild/kconfig development
 help / color / mirror / Atom feed
From: sashiko-bot@kernel.org
To: "Doug Ledford" <doug.ledford@hpe.com>,
	"Slingshot Open Source Team"
	<slingshot-os-team@groups.ext.hpe.com>,
	"Nathan Chancellor" <nathan@kernel.org>,
	"Nicolas Schier" <nsc@kernel.org>,
	"Richard Cochran" <richardcochran@gmail.com>,
	"Andrew Lunn" <andrew+netdev@lunn.ch>,
	"David S. Miller" <davem@davemloft.net>,
	"Eric Dumazet" <edumazet@kernel.org>,
	"Jakub Kicinski" <kuba@kernel.org>,
	"Paolo Abeni" <pabeni@redhat.com>,
	"Sumit Semwal" <sumit.semwal@linaro.org>,
	"Christian König" <christian.koenig@amd.com>,
	"Guenter Roeck" <linux@roeck-us.net>
Cc: linux-kbuild@vger.kernel.org
Subject: Re: [PATCH 23/23] net: hpe: wire up the Slingshot NIC drivers
Date: Sat, 31 Oct 2026 21:02:20 +0000	[thread overview]
Message-ID: <sashiko-outbox-192149@kernel.org> (raw)
In-Reply-To: <20261030-cxi-netdev-submission-v1-23-8c2c391cc283@hpe.com>

Thank you for your contribution! Sashiko AI review found 12 potential issue(s) to consider:
- [Medium] net: hpe: ss1: missing HMM_MIRROR Kconfig selection for cass_hmm.c
- [Medium] net: hpe: ss1: missing IOMMU_IOVA Kconfig selection for cass_nta_iova_init()
- [Medium] net: hpe: ss1: missing I2C and HWMON Kconfig dependencies for cass_uc.c
- [Medium] net: hpe: ss1: missing PTP_1588_CLOCK_OPTIONAL dependency for cass_ptp.c
- [Medium] net: hpe: ss1: missing DMA_SHARED_BUFFER dependency on HPE_SS1_P2P_DMABUF
- [Low] MAINTAINERS: missing include/uapi/ethernet/ entry for Slingshot NIC driver
- [Low] net: hpe: missing IOMMU_IOVA select in HPE_SS1 breaks cass_nta.c
- [Low] net: hpe: missing SYSFS dependency in HPE_SS1 breaks SBL sprint calls
- [Low] net: hpe: compiling cass_sriov.o without CONFIG_KVM_VFIO fails -Werror
- [Low] net: hpe: cass_iommu_init() accesses pri_reqs_alloc without PCI_PRI
- [Low] net: hpe: sl: dead duplicate stub file sl_media_nic.c left unbuilt
- [Low] net: hpe: ss1: Makefile links unused cass_ats_inval.o dead code
--

commit 5de1fa07eeee00c1ea3705142e52d3babf03e9f2
Author: Doug Ledford <doug.ledford@hpe.com>

net: hpe: wire up the Slingshot NIC drivers

This commit hooks the HPE Slingshot SBL, SL, and SS1 drivers into Kconfig and
Kbuild and adds the corresponding MAINTAINERS entry.

> diff --git a/MAINTAINERS b/MAINTAINERS
> index 7336600952c8e..4974717d22c15 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -11608,6 +11608,13 @@ S:	Supported
>  F:	Documentation/watchdog/hpwdt.rst
>  F:	drivers/watchdog/hpwdt.c
>  
> +HEWLETT PACKARD ENTERPRISE SLINGSHOT NIC DRIVER
> +M:	Slingshot Open Source Team <slingshot-os-team@groups.ext.hpe.com>
> +L:	netdev@vger.kernel.org
> +S:	Supported
> +F:	include/linux/hpe
> +F:	drivers/net/ethernet/hpe

[Severity: Low]
Earlier commits in this series also introduce ten Slingshot and Cassini UAPI
headers under include/uapi/ethernet/ (cassini_user_defs.h, sbl-abi.h,
sbl_cassini.h, sbl_counters.h, sbl_platform_config.h, sbl_sbm_constants.h,
sbl_serdes.h, sbl_serdes_defaults.h, sbl_serdes_map.h, and
sbl_serdes_map_init.h).

Should this MAINTAINERS entry also include include/uapi/ethernet/ so
scripts/get_maintainer.pl routes changes to those UAPI headers to the driver
maintainers?

[ ... ]

> diff --git a/drivers/net/ethernet/hpe/sl/Makefile b/drivers/net/ethernet/hpe/sl/Makefile
> new file mode 100644
> index 0000000000000..1930da475e599
> --- /dev/null
> +++ b/drivers/net/ethernet/hpe/sl/Makefile

[ ... ]

> +# Everything after here is specific to NICs
> +cxi-sl-$(CONFIG_HPE_SL)	+= nic/sl_ldev.o nic/sl_media.o \

[Severity: Low]
Here cxi-sl-$(CONFIG_HPE_SL) builds nic/sl_media.o, which provides the real
NIC implementations of sl_media_cable_insert() and sl_media_cable_remove() in
drivers/net/ethernet/hpe/sl/nic/sl_media.c.

However, drivers/net/ethernet/hpe/sl/sl_media_nic.c (added earlier in the
series) defines stub placeholder versions of the same two exported symbols:

drivers/net/ethernet/hpe/sl/sl_media_nic.c:
    int sl_media_cable_insert(struct sl_lgrp *lgrp, u8 *eeprom_page0,
                              u8 *eeprom_page1, u32 flags)
    {
            /* placeholder for future functionality */
            return 0;
    }
    EXPORT_SYMBOL(sl_media_cable_insert);

and is left unreferenced by this Makefile. Is
drivers/net/ethernet/hpe/sl/sl_media_nic.c a leftover stub file that should be
removed?

[ ... ]

> diff --git a/drivers/net/ethernet/hpe/ss1/Kconfig b/drivers/net/ethernet/hpe/ss1/Kconfig
> new file mode 100644
> index 0000000000000..d154506749d17
> --- /dev/null
> +++ b/drivers/net/ethernet/hpe/ss1/Kconfig
> @@ -0,0 +1,35 @@
> +# SPDX-License-Identifier: GPL-2.0
> +#
> +# Kernel config for HPE/Cray Net Cassini Slingshot 200/400Gbs hardware
> +# Copyright 2025 Hewlett Packard Enterprise Development LP
> +
> +config HPE_SS1
> +	tristate "HPE/Cray Slingshot 200/400Gbs NIC driver"
> +	depends on PCI && ETHERNET && NETDEVICES && INET
> +	depends on (ARM64 && CPU_LITTLE_ENDIAN) || X86_64

[Severity: Medium]
Can this fail to build or link when CONFIG_I2C or CONFIG_HWMON is disabled or
built as a module while CONFIG_HPE_SS1=y?

drivers/net/ethernet/hpe/ss1/Makefile unconditionally builds cass_uc.o into
cxi-ss1. In drivers/net/ethernet/hpe/ss1/cass_uc.c, create_sensors_intf() and
cass_unregister_uc() call hwmon_device_register_with_info() and
hwmon_device_unregister():

drivers/net/ethernet/hpe/ss1/cass_uc.c:create_sensors_intf()
    hw->hwmon.dev = hwmon_device_register_with_info(&hw->cdev.pdev->dev,
                                                    hw->cdev.name,
                                                    hw,
                                                    &hw->hwmon.chip_info,
                                                    NULL);

and uc_register_i2c() and uc_unregister_i2c() call i2c_add_adapter() and
i2c_del_adapter():

drivers/net/ethernet/hpe/ss1/cass_uc.c:uc_register_i2c()
    ret = i2c_add_adapter(&hw->uc_i2c);

In include/linux/i2c.h, i2c_add_adapter() and i2c_del_adapter() are guarded by
#if IS_ENABLED(CONFIG_I2C) with no fallback stubs, and in
include/linux/hwmon.h, hwmon_device_register_with_info() and
hwmon_device_unregister() are declared extern without inline stubs when
CONFIG_HWMON=n. Should HPE_SS1 depend on I2C and HWMON?

[Severity: Medium]
Does HPE_SS1 also need a dependency on PTP_1588_CLOCK_OPTIONAL?

drivers/net/ethernet/hpe/ss1/Makefile unconditionally compiles cass_ptp.o and
cass_eth.o into cxi-ss1. In drivers/net/ethernet/hpe/ss1/cass_ptp.c,
cass_ptp_init() and cass_ptp_fini() call ptp_clock_register() and
ptp_clock_unregister(), and in drivers/net/ethernet/hpe/ss1/cass_eth.c,
cxi_eth_devinfo() calls ptp_clock_index():

drivers/net/ethernet/hpe/ss1/cass_ptp.c:cass_ptp_init()
    hw->ptp_clock = ptp_clock_register(&hw->ptp_info,
                                       &hw->cdev.pdev->dev);

drivers/net/ethernet/hpe/ss1/cass_eth.c:cxi_eth_devinfo()
    eth_info->ptp_clock_index = ptp_clock_index(hw->ptp_clock);

When CONFIG_HPE_SS1=y and CONFIG_PTP_1588_CLOCK=m,
IS_ENABLED(CONFIG_PTP_1588_CLOCK) is true in include/linux/ptp_clock_kernel.h,
so built-in cxi-ss1 references symbols from the loadable ptp module and fails
to link vmlinux.

[Severity: Low]
What happens if CONFIG_HPE_SS1 is built with CONFIG_SYSFS=n (under
CONFIG_EXPERT=y)?

In include/linux/hpe/sbl/sbl.h and drivers/net/ethernet/hpe/sbl/*.c, the
sbl_*_sysfs_sprint() declarations and definitions are guarded by
#ifdef CONFIG_SYSFS:

include/linux/hpe/sbl/sbl.h:
    #ifdef CONFIG_SYSFS
    int sbl_media_sysfs_sprint(struct sbl_inst *sbl, int port_num, char *buf, size_t size);

However, drivers/net/ethernet/hpe/ss1/cass_sbl.c (in link_layer_retry_show(),
loopback_show(), media_show(), and speed_show()) and
drivers/net/ethernet/hpe/ss1/cass_ss1_debugfs.c (in port_debugfs_print() and
sbl_counters_print()) call sbl_base_link_llr_sysfs_sprint(),
sbl_media_sysfs_sprint(), and related helpers outside #ifdef CONFIG_SYSFS.
Should HPE_SS1 depend on SYSFS (or guard those callers with CONFIG_SYSFS)?

> +	select HPE_SBL
> +	select HPE_SL
> +	select CONFIGFS_FS
> +	select AUXILIARY_BUS

[Severity: Medium]
Should HPE_SS1 also select HMM_MIRROR?

drivers/net/ethernet/hpe/ss1/Makefile unconditionally includes cass_hmm.o in
cxi-ss1-objs. In drivers/net/ethernet/hpe/ss1/cass_hmm.c, cass_range_fault()
calls hmm_range_fault():

drivers/net/ethernet/hpe/ss1/cass_hmm.c:cass_range_fault()
    if (range->default_flags & HMM_PFN_REQ_FAULT)
            return hmm_range_fault(range);

and cass_notifier_cleanup(), cass_mirror_fault(), cass_sync_pagetables(), and
cass_mmu_notifier_insert() call mmu_interval_notifier_insert(),
mmu_interval_notifier_remove(), mmu_interval_read_begin(),
mmu_interval_read_retry(), mmu_notifier_range_blockable(), and
mmu_interval_set_seq():

drivers/net/ethernet/hpe/ss1/cass_hmm.c:cass_mmu_notifier_insert()
    ret = mmu_interval_notifier_insert(&md_priv->mn_sub,
                                       current->mm,
                                       m_opts->va_start,
                                       m_opts->va_len,
                                       &cass_notifier_ops);

Both HMM_MIRROR (which selects MMU_NOTIFIER) and MMU_NOTIFIER are promptless
bool symbols in mm/Kconfig with no fallback stubs in include/linux/hmm.h or
include/linux/mmu_notifier.h when disabled, so building CONFIG_HPE_SS1 when
nothing else selects HMM_MIRROR fails to compile and link cass_hmm.o.

[Severity: Medium]
Should HPE_SS1 also select IOMMU_IOVA?

drivers/net/ethernet/hpe/ss1/Makefile unconditionally includes cass_nta.o in
cxi-ss1-objs, and drivers/net/ethernet/hpe/ss1/cxi_core.h unconditionally
defines HAVE_IOVA_INIT_RCACHES. In drivers/net/ethernet/hpe/ss1/cass_nta.c,
cass_nta_iova_init() calls iova_domain_init_rcaches():

drivers/net/ethernet/hpe/ss1/cass_nta.c:cass_nta_iova_init()
    #ifdef HAVE_IOVA_INIT_RCACHES
            ret = iova_domain_init_rcaches(cac->iovad);
            if (ret) {
                    cass_nta_iova_fini(cac);
                    return ret;
            }
    #endif

In include/linux/iova.h, iova_domain_init_rcaches() is only declared under
#if IS_REACHABLE(CONFIG_IOMMU_IOVA) with no stub in the #else branch, and
IOMMU_IOVA is a promptless tristate symbol in drivers/iommu/Kconfig. When
CONFIG_IOMMU_IOVA is not reachable, cass_nta.c fails to compile with an
implicit declaration of iova_domain_init_rcaches().

[ ... ]

> +config HPE_SS1_P2P_DMABUF
> +	bool "Enable Peer-2-Peer dmabuf support"
> +	depends on HPE_SS1 && PCI_P2PDMA

[Severity: Medium]
Does HPE_SS1_P2P_DMABUF need a dependency on (or select of) DMA_SHARED_BUFFER?

When CONFIG_HPE_SS1_P2P_DMABUF=y, drivers/net/ethernet/hpe/ss1/Makefile
builds cass_dma_buf.o into cxi-ss1. In
drivers/net/ethernet/hpe/ss1/cass_dma_buf.c, cxi_dmabuf_get_pages() and
cxi_dmabuf_put_pages() call dma_buf_get(), dma_buf_put(),
dma_buf_dynamic_attach(), dma_buf_detach(), dma_buf_map_attachment(),
dma_buf_unmap_attachment(), dma_resv_get_singleton(), and
dma_resv_wait_timeout():

drivers/net/ethernet/hpe/ss1/cass_dma_buf.c:cxi_dmabuf_get_pages()
    md_priv->dmabuf = dma_buf_get(md_priv->dmabuf_fd);

Neither HPE_SS1 nor PCI_P2PDMA selects or depends on DMA_SHARED_BUFFER, and
include/linux/dma-buf.h declares those symbols extern without stubs when
CONFIG_DMA_SHARED_BUFFER=n, causing link failures when DMA_SHARED_BUFFER is
not enabled by another driver.

[ ... ]

> diff --git a/drivers/net/ethernet/hpe/ss1/Makefile b/drivers/net/ethernet/hpe/ss1/Makefile
> new file mode 100644
> index 0000000000000..538ac762cff22
> --- /dev/null
> +++ b/drivers/net/ethernet/hpe/ss1/Makefile
> @@ -0,0 +1,28 @@
> +# SPDX-License-Identifier: GPL-2.0
> +#
> +# Makefile for HPE/Cray Net Cassini Slingshot version 200/400Gbs hardware
> +# Copyright 2025 Hewlett Packard Enterprise Development LP
> +
> +subdir-ccflags-y += -I$(src)
> +
> +obj-$(CONFIG_HPE_SS1) += cxi-ss1.o cxi-eth.o
> +
> +cxi-ss1-objs := cxi_core.o cass_core.o cass_lni.o cass_rmu.o cass_eq.o \
> +		cass_cpt.o cass_cq.o cass_pt.o cass_atu.o cass_ct.o \
> +		cass_errors.o cass_sriov.o cass_nta.o cass_ptp.o \

[Severity: Low]
Will compiling cass_sriov.o fail under CONFIG_WERROR=y when CONFIG_KVM_VFIO is
not enabled?

In drivers/net/ethernet/hpe/ss1/cass_core.h, CXI_DISABLE_SRIOV is defined
whenever CONFIG_KVM_VFIO is not set:

drivers/net/ethernet/hpe/ss1/cass_core.h:
    #if !defined(CONFIG_KVM_VFIO)
    #define CXI_DISABLE_SRIOV
    #endif

and drivers/net/ethernet/hpe/ss1/cass_sriov.c then emits a preprocessor
#warning:

drivers/net/ethernet/hpe/ss1/cass_sriov.c:
    #if defined(CXI_DISABLE_SRIOV)
    #warning "SR-IOV support is disabled."

With CONFIG_WERROR=y, this #warning causes -Werror=cpp to fail the build
whenever CONFIG_KVM_VFIO is unset.

[Severity: Low]
In addition to the iova_domain_init_rcaches() build issue in cass_nta.o when
CONFIG_IOMMU_IOVA is not reachable, does cass_nta_init() also fail at runtime
if alloc_iova_fast() falls back to the stub in include/linux/iova.h?

In drivers/net/ethernet/hpe/ss1/cass_nta.c, cass_nta_init() calls
cass_nta_iova_alloc() -> alloc_iova_fast():

drivers/net/ethernet/hpe/ss1/cass_nta.c:cass_nta_init()
    m_opts->iova = cass_nta_iova_alloc(cac, m_opts);
    if (!m_opts->iova) {
            if (cac->iovad) {
                    pr_debug("cass_iova_alloc failed %lld\n", m_opts->iova);
                    ret = -ENOENT;
                    goto alloc_iova_fail;
            }
    }

When !IS_REACHABLE(CONFIG_IOMMU_IOVA), alloc_iova_fast() and iova_cache_get()
resolve to stubs returning 0 and -ENOTSUPP, causing NTA IOVA allocation in
cass_nta_init() to fail with -ENOENT unless IOMMU_IOVA is selected by HPE_SS1.

> +		cass_hni.o cass_eth.o cass_rmu_eth.o cass_ats.o cass_uc.o \

[Severity: Low]
Can building cass_ats.o fail on ARM64 when CONFIG_IOMMU_SVA=y and
CONFIG_PCI_PRI=n?

In drivers/net/ethernet/hpe/ss1/cass_ats.c, cass_iommu_init() accesses
pdev->pri_reqs_alloc inside an #ifdef CONFIG_IOMMU_SVA block:

drivers/net/ethernet/hpe/ss1/cass_ats.c:cass_iommu_init()
    #ifdef CONFIG_IOMMU_SVA
            ...
            pdev->pri_reqs_alloc = max_requests;

In include/linux/pci.h, struct pci_dev only defines pri_reqs_alloc under
#ifdef CONFIG_PCI_PRI:

include/linux/pci.h:struct pci_dev
    #ifdef CONFIG_PCI_PRI
            u16             pri_cap;        /* PRI Capability offset */
            u32             pri_reqs_alloc; /* Number of PRI requests allocated */
            unsigned int    pasid_required:1; /* PRG Response PASID Required */
    #endif

On ARM64, CONFIG_ARM_SMMU_V3_SVA selects IOMMU_SVA without selecting PCI_PRI,
so compiling cass_ats.c with CONFIG_IOMMU_SVA=y and CONFIG_PCI_PRI=n fails.

> +		cass_hmm.o cxi_qos_profiles.o cass_tc.o cass_svc.o \
> +		cass_telem.o cxi_link.o cass_sbl.o cass_sl.o \
> +		cass_sl_io.o cass_sysfs.o cass_sbus.o cass_phy.o \
> +		cass_dmac.o cass_link.o cass_link_misc.o cass_port_misc.o \
> +		cass_lmon.o cass_ixe.o cass_irq.o cass_cable.o \
> +		cass_odp_decouple.o cass_ats_inval.o cass_pcie_mon.o \

[Severity: Low]
Is cass_ats_inval.o needed in cxi-ss1-objs?

Its only non-static function is cass_amd_iommu_inval_cb_init() in
drivers/net/ethernet/hpe/ss1/cass_ats_inval.c:

drivers/net/ethernet/hpe/ss1/cass_ats_inval.c:cass_amd_iommu_inval_cb_init()
    void cass_amd_iommu_inval_cb_init(struct pci_dev *pdev)
    {
            int (*set_inval_range_cb)(struct pci_dev *pdev,
                                      amd_iommu_invalidate_range cb);
            struct cass_dev *hw = pci_get_drvdata(pdev);
            int ret;

            /* Only set up invalidation callback for Cassini 1 */
            if (!cass_version(hw, CASSINI_1))
                    return;

            set_inval_range_cb = symbol_get(amd_iommu_set_invalidate_range_cb);

cass_amd_iommu_inval_cb_init() has no callers anywhere in the tree, and
amd_iommu_set_invalidate_range_cb does not exist in the mainline kernel. Should
cass_ats_inval.o (and cass_ats_inval.c) be dropped?

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20261030-cxi-netdev-submission-v1-0-8c2c391cc283@hpe.com?part=23

  reply	other threads:[~2026-10-31 21:02 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-30 20:58 [PATCH 00/23] Subject: [PATCH net-next 00/23] net/hpe: add HPE Slingshot NIC drivers Doug Ledford
2026-10-30 20:58 ` [PATCH 01/23] net: hpe: ss1: add the Cassini headers Doug Ledford
2026-10-31 13:58   ` Andrew Lunn
2026-10-31 19:34     ` Doug Ledford
2026-10-30 20:58 ` [PATCH 02/23] net: hpe: sbl: add the Slingshot Base Link headers Doug Ledford
2026-10-31 21:02   ` sashiko-bot
2026-10-30 20:58 ` [PATCH 03/23] net: hpe: sbl: add the core instance and configuration layer Doug Ledford
2026-10-31 21:02   ` sashiko-bot
2026-10-30 20:59 ` [PATCH 04/23] net: hpe: sbl: add the SerDes layer Doug Ledford
2026-10-31 21:02   ` sashiko-bot
2026-10-30 20:59 ` [PATCH 05/23] net: hpe: sbl: add the PML link layer Doug Ledford
2026-10-31 21:02   ` sashiko-bot
2026-10-30 20:59 ` [PATCH 06/23] net: hpe: sbl: add link state management Doug Ledford
2026-10-31 21:02   ` sashiko-bot
2026-10-30 20:59 ` [PATCH 07/23] net: hpe: sbl: add the SBM serial bus layer Doug Ledford
2026-10-31 21:02   ` sashiko-bot
2026-10-30 20:59 ` [PATCH 08/23] net: hpe: sbl: add media, FEC and counter support Doug Ledford
2026-10-31 21:02   ` sashiko-bot
2026-10-30 20:59 ` [PATCH 09/23] net: hpe: sl: add the Slingshot Link headers Doug Ledford
2026-10-30 20:59 ` [PATCH 10/23] net: hpe: sl: add the module entry points Doug Ledford
2026-10-31 21:02   ` sashiko-bot
2026-10-30 20:59 ` [PATCH 11/23] net: hpe: sl: add the core link state machines Doug Ledford
2026-10-30 20:59 ` [PATCH 12/23] net: hpe: sl: add the control layer Doug Ledford
2026-10-31 21:02   ` sashiko-bot
2026-10-30 20:59 ` [PATCH 13/23] net: hpe: sl: add media and cable handling Doug Ledford
2026-10-31 21:02   ` sashiko-bot
2026-10-30 20:59 ` [PATCH 14/23] net: hpe: sl: add the sysfs interface Doug Ledford
2026-10-30 20:59 ` [PATCH 15/23] net: hpe: sl: add the NIC binding and logging helpers Doug Ledford
2026-10-31 21:02   ` sashiko-bot
2026-10-30 20:59 ` [PATCH 16/23] net: hpe: ss1: add the Cassini core device layer Doug Ledford
2026-10-30 20:59 ` [PATCH 17/23] net: hpe: ss1: add the datapath and memory translation layers Doug Ledford
2026-10-30 20:59 ` [PATCH 18/23] net: hpe: ss1: add the link layer glue Doug Ledford
2026-10-31 21:02   ` sashiko-bot
2026-10-30 20:59 ` [PATCH 19/23] net: hpe: ss1: add SR-IOV support Doug Ledford
2026-10-31 21:02   ` sashiko-bot
2026-10-30 20:59 ` [PATCH 20/23] net: hpe: ss1: add the CXI core interfaces Doug Ledford
2026-10-31 21:02   ` sashiko-bot
2026-10-30 20:59 ` [PATCH 21/23] net: hpe: ss1: add resource groups, QoS and services Doug Ledford
2026-10-30 20:59 ` [PATCH 22/23] net: hpe: ss1: add the Ethernet personality Doug Ledford
2026-10-31 21:02   ` sashiko-bot
2026-10-30 20:59 ` [PATCH 23/23] net: hpe: wire up the Slingshot NIC drivers Doug Ledford
2026-10-31 21:02   ` sashiko-bot [this message]
2026-10-30 22:11 ` [PATCH 00/23] Subject: [PATCH net-next 00/23] net/hpe: add HPE " Jakub Kicinski
2026-10-31 20:17   ` Andrew Lunn

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=sashiko-outbox-192149@kernel.org \
    --to=sashiko-bot@kernel.org \
    --cc=andrew+netdev@lunn.ch \
    --cc=christian.koenig@amd.com \
    --cc=davem@davemloft.net \
    --cc=doug.ledford@hpe.com \
    --cc=edumazet@kernel.org \
    --cc=kuba@kernel.org \
    --cc=linux-kbuild@vger.kernel.org \
    --cc=linux@roeck-us.net \
    --cc=nathan@kernel.org \
    --cc=nsc@kernel.org \
    --cc=pabeni@redhat.com \
    --cc=richardcochran@gmail.com \
    --cc=sashiko-reviews@lists.linux.dev \
    --cc=slingshot-os-team@groups.ext.hpe.com \
    --cc=sumit.semwal@linaro.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox