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,
	"Sandeep Bhoot" <sandeep.bhoot@hpe.com>,
	"Iraimani P" <iraimani.pavadai@hpe.com>
Subject: Re: [PATCH 02/23] net: hpe: sbl: add the Slingshot Base Link headers
Date: Sat, 31 Oct 2026 21:02:03 +0000	[thread overview]
Message-ID: <sashiko-outbox-192134@kernel.org> (raw)
In-Reply-To: <20261030-cxi-netdev-submission-v1-2-8c2c391cc283@hpe.com>

Thank you for your contribution! Sashiko AI review found 4 potential issue(s) to consider:
- [Low] net: hpe: sbl: non-static inline helpers in sbl_sbm.h break linkage
- [Low] net: hpe: sbl: missing include guard and type headers in sbl_fec.h
- [Low] net: hpe: sbl: duplicate sbl_platform.h and redundant macro definitions
- [Low] net: hpe: sbl: broken and duplicate macro definitions in sbl headers
--

commit 16e18859cf46bda5dac6f9baa31ae685653174a5
Author: Doug Ledford <doug.ledford@hpe.com>

net: hpe: sbl: add the Slingshot Base Link headers

This commit adds the internal, kernel, and UAPI header files for the HPE
Slingshot Base Link (SBL) 200 Gb/s link layer driver used by the first
generation Cassini NIC.

> diff --git a/drivers/net/ethernet/hpe/sbl/sbl_constants.h b/drivers/net/ethernet/hpe/sbl/sbl_constants.h
> new file mode 100644
> index 0000000000000..a21a43f84a047
> --- /dev/null
> +++ b/drivers/net/ethernet/hpe/sbl/sbl_constants.h

[ ... ]

> +#define SPICO_INT_DATA_TXEQ_DATA_MASK   0x00ff
> +#define SPICO_INT_DATA_RXEQ_VAL_MASK    0x00ff
> +#define SPICO_INT_DATA_PRBS_SUCCESS     0x0002

[ ... ]

> +#define SPICO_INT_DATA_RXEQ_SIGN_MASK   0x8000
> +#define SPICO_INT_DATA_RXEQ_VAL_MASK    0x00ff
> +
> +#define SPICO_INT_DATA_HAL_DFE_APPLY    0x0018

[ ... ]

> diff --git a/drivers/net/ethernet/hpe/sbl/sbl_platform.h b/drivers/net/ethernet/hpe/sbl/sbl_platform.h
> new file mode 100644
> index 0000000000000..d47630f9e84a1
> --- /dev/null
> +++ b/drivers/net/ethernet/hpe/sbl/sbl_platform.h
> @@ -0,0 +1,35 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +
> +/* Copyright 2025 Hewlett Packard Enterprise Development LP */
> +
> +#ifndef _SBL_PLATFORM_H_
> +#define _SBL_PLATFORM_H_
> +
> +#define SBUS_RING_MTX(sbl, ring) ((sbl)->sbus_ring_mtx)
> +#define SBM_FW_MTX(sbl, ring) ((sbl)->sbm_fw_mtx)
> +
> +#define sbl_dev_log(_logfn, _dev, _fmt, ...)						\
> +	do {									\
> +		char __sbl_inst[sizeof(sbl->iattr.inst_name)];			\
> +		char __sbl_eth[sizeof(sbl->iattr.eth_if_name)];		\
> +		sbl_inst_names_get(sbl, __sbl_inst, __sbl_eth);			\
> +		_logfn((_dev), "%s[%s]: " _fmt, __sbl_inst, __sbl_eth, ##__VA_ARGS__);	\
> +	} while (0)
> +
> +#define sbl_dev_err(_dev, _fmt, ...) sbl_dev_log(dev_err, _dev, _fmt, ##__VA_ARGS__)
> +#define sbl_dev_dbg(_dev, _fmt, ...) sbl_dev_log(dev_dbg, _dev, _fmt, ##__VA_ARGS__)
> +#define sbl_dev_warn(_dev, _fmt, ...) sbl_dev_log(dev_warn, _dev, _fmt, ##__VA_ARGS__)
> +#define sbl_dev_info(_dev, _fmt, ...) sbl_dev_log(dev_info, _dev, _fmt, ##__VA_ARGS__)
> +#define sbl_dev_err_ratelimited(_dev, _fmt, ...) \
> +	sbl_dev_log(dev_err_ratelimited, _dev, _fmt, ##__VA_ARGS__)
> +#define sbl_dev_dbg_ratelimited(_dev, _fmt, ...) \
> +	sbl_dev_log(dev_dbg_ratelimited, _dev, _fmt, ##__VA_ARGS__)
> +/* Configuration passing into SBL init */
> +struct sbl_init_attr {
> +	u32 magic;
> +	u32 uc_nic;
> +	u32 uc_platform;
> +	bool is_hw;
> +};
> +
> +#endif /* _SBL_PLATFORM_H_ */

[Severity: Low]
This isn't a bug, but drivers/net/ethernet/hpe/sbl/sbl_platform.h and
include/linux/hpe/sbl/sbl_platform.h are byte-for-byte identical files with
the same _SBL_PLATFORM_H_ include guard. Since include/linux/hpe/sbl/sbl.h
includes sbl_platform.h from its own directory, one copy can shadow the other
depending on include order. Could the duplicate file in
drivers/net/ethernet/hpe/sbl/sbl_platform.h be dropped?

In addition, sbl_dev_log() takes _dev as a macro parameter but implicitly
references an undeclared caller variable named sbl, calls
sbl_inst_names_get() which is only defined later in
include/linux/hpe/sbl/sbl.h, and unconditionally acquires and releases
sbl->name_lock even when dynamic debug logging is disabled. Could sbl be
passed explicitly (or derived from _dev) and sbl_dev_log() moved after
sbl_inst_names_get()?

There are also several other duplicated definitions across the headers in
this patch:
- SPICO_INT_DATA_RXEQ_VAL_MASK is defined twice in
  drivers/net/ethernet/hpe/sbl/sbl_constants.h.
- SBUS_ADDR, SBUS_RING, SBUS_RX_ADDR, LEVEL_ERR, LEVEL_WARN, LEVEL_INFO,
  LEVEL_DBG, SPICO_SBR_DATA_BE_012, SPICO_SBR_DATA_BE_01,
  SPICO_SBR_DATA_BE_0, SPICO_SBR_DATA_W0_OFFSET, SPICO_SBR_DATA_W1_OFFSET,
  SPICO_SBR_DATA_W2_OFFSET, and SPICO_INT_DATA_NONE are defined in both
  drivers/net/ethernet/hpe/sbl/sbl_constants.h and
  include/uapi/ethernet/sbl_sbm_constants.h.
- sbl_pml_pcs_sysfs_sprint() and sbl_pml_pcs_lane_degrade_sysfs_sprint() are
  declared in both drivers/net/ethernet/hpe/sbl/sbl_link.h and
  include/linux/hpe/sbl/sbl.h.

Could these duplicate definitions be consolidated?

> diff --git a/drivers/net/ethernet/hpe/sbl/sbl_sbm.h b/drivers/net/ethernet/hpe/sbl/sbl_sbm.h
> new file mode 100644
> index 0000000000000..73b97081a5d77
> --- /dev/null
> +++ b/drivers/net/ethernet/hpe/sbl/sbl_sbm.h
> @@ -0,0 +1,73 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +/* Copyright 2019-2026 Hewlett Packard Enterprise Development LP. All rights reserved. */
> +
> +#ifndef SBL_SBM_H
> +#define SBL_SBM_H
> +
> +#include <linux/kernel.h>
> +#include <linux/device.h>
> +#include <linux/errno.h>
> +
> +#include <linux/hpe/sbl/sbl.h>
> +
> +#include "sbl_internal.h"
> +
> +#define SBL_ERR(dev, format, args...)    sbl_dev_err(dev, format, ## args)
> +#define SBL_WARN(dev, format, args...)   sbl_dev_warn(dev, format, ## args)
> +#define SBL_INFO(dev, format, args...)   sbl_dev_info(dev, format, ## args)
> +#define SBL_TRACE1(dev, format, args...) dev_dbg(dev, format, ## args)
> +#define SBL_TRACE2(dev, format, args...) DEV_TRACE2(dev, format, ## args)
> +#define SBL_TRACE3(dev, format, args...) DEV_TRACE3(dev, format, ## args)
> +
> +inline int sbl_sbm_sbus_op(struct sbl_inst *sbl, int ring, u32 req_data,
> +			     u8 data_addr, u8 rx_addr, u8 command,
> +			     u32 *rsp_data, u8 *result_code, u8 *overrun,
> +			     int timeout, u32 flags)
> +{
> +	return sbl_sbus_op(sbl, ring, req_data, data_addr, rx_addr, command,
> +			   rsp_data, result_code, overrun, timeout, flags);
> +}
> +
> +inline int sbl_sbm_sbus_op_reset(struct sbl_inst *sbl, int ring)
> +{
> +	return sbl_sbus_op_reset(sbl, ring);
> +}
> +
> +inline int sbl_sbm_pml_serdes_op(struct sbl_inst *sbl, int port_num,
> +				   u64 serdes_sel, u64 op, u64 data,
> +				   u16 *result, int timeout, u32 flags)
> +{
> +	return sbl_pml_serdes_op(sbl, port_num, serdes_sel, op, data, result,
> +				 timeout, flags);
> +}
> +
> +inline int sbl_sbm_get_sbus_op_timeout_ms(struct sbl_inst *sbl)
> +{
> +	return sbl->iattr.sbus_op_timeout_ms;
> +}
> +
> +inline int sbl_sbm_get_sbus_int_timeout(struct sbl_inst *sbl)
> +{
> +	return sbl->iattr.sbus_int_timeout;
> +}
> +
> +inline int sbl_sbm_get_sbus_int_poll_interval(struct sbl_inst *sbl)
> +{
> +	return sbl->iattr.sbus_int_poll_interval;
> +}
> +
> +inline int sbl_sbm_get_serdes_op_timeout_ms(struct sbl_inst *sbl)
> +{
> +	return sbl->iattr.serdes_op_timeout_ms;
> +}
> +
> +inline int sbl_sbm_get_sbus_op_flags(struct sbl_inst *sbl)
> +{
> +	return sbl->sbus_op_flags;
> +}
> +
> +inline int sbl_sbm_get_serdes_op_flags(struct sbl_inst *sbl)
> +{
> +	return sbl->iattr.serdes_op_flags;
> +}
> +#endif /* SBL_SBM_H */

[Severity: Low]
Should these nine inline helper functions in
drivers/net/ethernet/hpe/sbl/sbl_sbm.h (sbl_sbm_sbus_op() through
sbl_sbm_get_serdes_op_flags()) be declared static inline instead of bare
inline?

In the kernel, inline expands with __gnu_inline, so a bare inline definition
without static or a prior prototype emits an externally visible out-of-line
function symbol in every translation unit that includes sbl_sbm.h. That
triggers -Wmissing-prototypes and -Wmissing-declarations warnings (breaking
the build under CONFIG_WERROR=y) when compiling sbl_sbm_serdes.c, and will
cause multiple-definition linker errors if more than one translation unit
includes this header.

> diff --git a/include/linux/hpe/sbl/sbl_fec.h b/include/linux/hpe/sbl/sbl_fec.h
> new file mode 100644
> index 0000000000000..23594d79a91a9
> --- /dev/null
> +++ b/include/linux/hpe/sbl/sbl_fec.h
> @@ -0,0 +1,88 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +
> +/* Copyright 2024 Hewlett Packard Enterprise Development LP */
> +
> +/* FEC up check */
> +#define SBL_FEC_UP_SETTLE_PERIOD	 250	   /* ms */
> +#define SBL_FEC_UP_WINDOW		 250	   /* ms */
> +#define SBL_FEC_UP_COUNT_FABRIC		 4
> +#define SBL_FEC_UP_COUNT_EDGE		 1
> +#define SBL_FEC_MON_PERIOD		 1000	   /* 1sec*/
> +#define SBL_FEC_LLR_TX_REPLAY_THRESH	 100000	   /* llr_tx_replays/s */
> +#define SBL_PCS_NUM_FECL_CNTRS		 8
> +#define SBL_MAX_FEC_WARNINGS		 3	   /* number of warnings issued */
> +
> +struct sbl_pcs_fec_cntrs {
> +	u64 ccw;				  /* corrected code words */
> +	u64 ucw;				  /* uncorrected code words */
> +	u64 llr_tx_replay;			  /* llr_tx_replay_event count */
> +	u64 fecl[SBL_PCS_NUM_FECL_CNTRS];	  /* lane errors */
> +	unsigned long time;			  /* either abs or interval */
> +};

[Severity: Low]
Unlike the other headers in this patch, include/linux/hpe/sbl/sbl_fec.h does
not have an #ifndef / #define / #endif include guard, and it uses u64, u32,
s32, bool, spinlock_t, struct timer_list, and struct work_struct without
including linux/types.h, linux/spinlock.h, linux/timer.h, or
linux/workqueue.h.

If sbl_fec.h is included more than once in a translation unit, or included
before those kernel headers, compilation will fail with redefinition or
unknown type errors. Could an include guard and the required header includes
be added to sbl_fec.h?

> diff --git a/include/linux/hpe/sbl/sbl_pml.h b/include/linux/hpe/sbl/sbl_pml.h
> new file mode 100644
> index 0000000000000..92b32f1dcf220
> --- /dev/null
> +++ b/include/linux/hpe/sbl/sbl_pml.h

[ ... ]

> +#define SBL_PML_CFG_PCS_PCS_MODE_UPDATE(a, b) \
> +	C_UPDATE(a, b, c1_hni_pml_cfg_pcs, pcs_mode)
> +#define SBL_PML_CFG_PCS_BY_25G_FEC_MODE_UPDATE(a, b) \
> +	C_UPDATE(a, b, c1_hni_pml_cfg_pcs, by_25g_fec_mode)
> +#define SBL_PML_CFG_PCS_TIMESTAMP_SHIFT_UPDATE(a, b) \
> +	C_UPDATE(a, b, c1_hni_pml_cfg_pcs, timestamp_shift)

[ ... ]

> +/* DFLT defines */
> +#define SBL_PML_CFG_LLR_MAC_IF_CREDITS C1_HNI_CFG_LLR_MAC__IF_CREDITS
> +#define SBL_PML_CFG_TX_MAC_PCS_CREDITS C1_HNI_CFG_TX_MAC__PCS_CREDITS
> +#define SBL_PML_CFG_TX_PCS_CDC_READY_LEVEL C1_HNI_CFG_TX_PCS__CDC_READY_LEVEL
> +#define SBL_PML_CFG_TX_PCS_GEARBOX_CREDITS C1_HNI_CFG_TX_PCS__GEARBOX_CREDITS
> +#define SBL_PML_CFG_TX_PCS_CDC_READY_LEVEL_DFLT \
> +	C1_HNI_PML_CFG_TX_PCS__CDC_READY_LEVEL

[ ... ]

> +#define SBL_PML_CFG_SERDES_CORE_INTERRUPT_CAPTURE_INTERRUPT_DATA_DELAY_SET(a) \
> +	C_SET(a, c1_hni_pml_cfg_serdes_core_interrupt,                        \
> +	      capture_interrupt_data_delay)
> +#define SBL_PML_CFG_SERDES_CORE_INTERRUPT_CLEAR_INTERRUPT_DELAY_SET(a) \
> +	C_SET(a, c1_hni_pml_cfg_serdes_core_interrupt, clear_interrupt_delay)
> +#define SBL_PML_CFG_SERDES_CORE_INTERRUPT_SET_INTERRUPT_DELAY_SET(a) \
> +	C_SET(a, c1_hni_pml_cfg_serdes_core_interrupt, set_interrupt_delay)

[ ... ]

> +#define SBL_PML_CFG_SERDES_CORE_INTERRUPT_CAPTURE_INTERRUPT_DATA_DELAY_SET(a) \
> +	C_SET(a, c1_hni_pml_cfg_serdes_core_interrupt,                        \
> +	      capture_interrupt_data_delay)
> +#define SBL_PML_CFG_SERDES_CORE_INTERRUPT_CLEAR_INTERRUPT_DELAY_SET(a) \
> +	C_SET(a, c1_hni_pml_cfg_serdes_core_interrupt, clear_interrupt_delay)
> +#define SBL_PML_CFG_SERDES_CORE_INTERRUPT_SET_INTERRUPT_DELAY_SET(a) \
> +	C_SET(a, c1_hni_pml_cfg_serdes_core_interrupt, set_interrupt_delay)

[ ... ]

> +/* GET defines */
> +#define SBL_PML_CFG_LLR_LINK_DOWN_BEHAVIOR_GET(a) \
> +	C_GET(a, c1_hni_pml_cfg_llr, link_down_behavior)
> +#define SBL_PML_CFG_LLR_LLR_MODE_GET(a) C_GET(a, c1_hni_pml_cfg_llr, llr_mode)
> +#define SBL_PML_CFG_LLR_SM_REPLAY_CT_MAX_GET(a) \
> +	C_GET(a, c_hni_pml_cfg_llr_sm, replay_ct_max)
> +#define SBL_PML_CFG_PCS_AUTONEG_NEXT_PAGE_LOADED_GET(a) \
> +	C_GET(a, c1_hni_pml_cfg_pcs_autoneg, next_page_loaded)

[ ... ]

> +#define SS2_PORT_PML_CFG_TX_PCS_SUBPORT_GEARBOX_CREDITS_UPDATE(a, b) \
> +	C_UPDATE(a, b, ss2_port_pml_cfg_tx_pcs_subport, gearbox_credits)
> +#define SS2_PORT_PML_CFG_TX_PCS_KEEP_ALL_LANES_ACTIVE_UPDATE(a, b) \
> +	C_UPDATE(a, b, ss2_port_pml_cfg_tx_pcs, keep_all_lanes_active)

[ ... ]

> diff --git a/include/uapi/ethernet/sbl_serdes_defaults.h b/include/uapi/ethernet/sbl_serdes_defaults.h
> new file mode 100644
> index 0000000000000..440ee8631ce79
> --- /dev/null
> +++ b/include/uapi/ethernet/sbl_serdes_defaults.h

[ ... ]

> +#define SBL_DFLT_CORE_STATUS_RD_TIMEOUT                     1
> +#define SBL_DFLT_CORE_STATUS_RD_POLL_INTERVAL              50
> +#define SBL_DFLT_PLATFORM                   SBL_PLAT_HARDWARE

[Severity: Low]
Several macro definitions in include/linux/hpe/sbl/sbl_pml.h and
include/uapi/ethernet/sbl_serdes_defaults.h reference nonexistent types,
members, or constants, or are duplicated:

1. SBL_PML_CFG_PCS_AUTONEG_NEXT_PAGE_LOADED_GET(a) references union
   c1_hni_pml_cfg_pcs_autoneg, whereas include/uapi/ethernet/cassini_user_defs.h
   defines union c_hni_pml_cfg_pcs_autoneg (as used by
   SBL_PML_CFG_PCS_AUTONEG_NEXT_PAGE_LOADED_UPDATE and
   SBL_PML_CFG_PCS_AUTONEG_NEXT_PAGE_LOADED_SET).
2. SBL_PML_CFG_PCS_BY_25G_FEC_MODE_UPDATE(a, b) accesses member
   by_25g_fec_mode on union c1_hni_pml_cfg_pcs, which does not have that
   field in cassini_user_defs.h (only union ss2_port_pml_cfg_pcs has
   by_25g_fec_mode).
3. SS2_PORT_PML_CFG_TX_PCS_KEEP_ALL_LANES_ACTIVE_UPDATE(a, b) accesses member
   keep_all_lanes_active on union ss2_port_pml_cfg_tx_pcs, which does not
   exist in cassini_user_defs.h.
4. SBL_PML_CFG_LLR_MAC_IF_CREDITS, SBL_PML_CFG_TX_MAC_PCS_CREDITS,
   SBL_PML_CFG_TX_PCS_CDC_READY_LEVEL, and
   SBL_PML_CFG_TX_PCS_GEARBOX_CREDITS expand to C1_HNI_CFG_* identifiers that
   omit _PML_ and do not exist in
   include/linux/hpe/cxi/cassini_csr_defaults.h (unlike the _DFLT variants
   right below them).
5. SBL_PML_CFG_SERDES_CORE_INTERRUPT_CAPTURE_INTERRUPT_DATA_DELAY_SET,
   SBL_PML_CFG_SERDES_CORE_INTERRUPT_CLEAR_INTERRUPT_DELAY_SET, and
   SBL_PML_CFG_SERDES_CORE_INTERRUPT_SET_INTERRUPT_DELAY_SET are defined
   twice in include/linux/hpe/sbl/sbl_pml.h.
6. In include/uapi/ethernet/sbl_serdes_defaults.h, SBL_DFLT_PLATFORM expands
   to SBL_PLAT_HARDWARE, which is not defined in any UAPI or kernel header.

Should these macro definitions be fixed or removed if unused?

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

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

Thread overview: 48+ 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 [this message]
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
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
2026-11-02  1:02     ` Doug Ledford
2026-11-02  1:35       ` Andrew Lunn
2026-11-02  3:45         ` Doug Ledford
2026-11-02  3:01       ` Guenter Roeck

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-192134@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=iraimani.pavadai@hpe.com \
    --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=sandeep.bhoot@hpe.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