From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: stable@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
patches@lists.linux.dev,
Arkadiusz Kubalewski <arkadiusz.kubalewski@intel.com>,
Karol Kolacinski <karol.kolacinski@intel.com>,
Grzegorz Nitka <grzegorz.nitka@intel.com>,
Tony Nguyen <anthony.l.nguyen@intel.com>,
Sasha Levin <sashal@kernel.org>,
Pucha Himasekhar Reddy <himasekharx.reddy.pucha@intel.com>
Subject: [PATCH 6.12 009/122] ice: Fix quad registers read on E825
Date: Tue, 21 Jan 2025 18:50:57 +0100 [thread overview]
Message-ID: <20250121174533.354568772@linuxfoundation.org> (raw)
In-Reply-To: <20250121174532.991109301@linuxfoundation.org>
6.12-stable review patch. If anyone has any objections, please let me know.
------------------
From: Karol Kolacinski <karol.kolacinski@intel.com>
[ Upstream commit dc26548d729e5f732197d2b210fb77c745b01495 ]
Quad registers are read/written incorrectly. E825 devices always use
quad 0 address and differentiate between the PHYs by changing SBQ
destination device (phy_0 or phy_0_peer).
Add helpers for reading/writing PTP registers shared per quad and use
correct quad address and SBQ destination device based on port.
Fixes: 7cab44f1c35f ("ice: Introduce ETH56G PHY model for E825C products")
Reviewed-by: Arkadiusz Kubalewski <arkadiusz.kubalewski@intel.com>
Signed-off-by: Karol Kolacinski <karol.kolacinski@intel.com>
Signed-off-by: Grzegorz Nitka <grzegorz.nitka@intel.com>
Tested-by: Pucha Himasekhar Reddy <himasekharx.reddy.pucha@intel.com> (A Contingent worker at Intel)
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/net/ethernet/intel/ice/ice_ptp_hw.c | 219 ++++++++++++--------
drivers/net/ethernet/intel/ice/ice_type.h | 1 -
2 files changed, 133 insertions(+), 87 deletions(-)
diff --git a/drivers/net/ethernet/intel/ice/ice_ptp_hw.c b/drivers/net/ethernet/intel/ice/ice_ptp_hw.c
index f6816c2f71438..64c36620a02f3 100644
--- a/drivers/net/ethernet/intel/ice/ice_ptp_hw.c
+++ b/drivers/net/ethernet/intel/ice/ice_ptp_hw.c
@@ -877,31 +877,46 @@ static void ice_ptp_exec_tmr_cmd(struct ice_hw *hw)
* The following functions operate on devices with the ETH 56G PHY.
*/
+/**
+ * ice_ptp_get_dest_dev_e825 - get destination PHY for given port number
+ * @hw: pointer to the HW struct
+ * @port: destination port
+ *
+ * Return: destination sideband queue PHY device.
+ */
+static enum ice_sbq_msg_dev ice_ptp_get_dest_dev_e825(struct ice_hw *hw,
+ u8 port)
+{
+ /* On a single complex E825, PHY 0 is always destination device phy_0
+ * and PHY 1 is phy_0_peer.
+ */
+ if (port >= hw->ptp.ports_per_phy)
+ return eth56g_phy_1;
+ else
+ return eth56g_phy_0;
+}
+
/**
* ice_write_phy_eth56g - Write a PHY port register
* @hw: pointer to the HW struct
- * @phy_idx: PHY index
+ * @port: destination port
* @addr: PHY register address
* @val: Value to write
*
* Return: 0 on success, other error codes when failed to write to PHY
*/
-static int ice_write_phy_eth56g(struct ice_hw *hw, u8 phy_idx, u32 addr,
- u32 val)
+static int ice_write_phy_eth56g(struct ice_hw *hw, u8 port, u32 addr, u32 val)
{
- struct ice_sbq_msg_input phy_msg;
+ struct ice_sbq_msg_input msg = {
+ .dest_dev = ice_ptp_get_dest_dev_e825(hw, port),
+ .opcode = ice_sbq_msg_wr,
+ .msg_addr_low = lower_16_bits(addr),
+ .msg_addr_high = upper_16_bits(addr),
+ .data = val
+ };
int err;
- phy_msg.opcode = ice_sbq_msg_wr;
-
- phy_msg.msg_addr_low = lower_16_bits(addr);
- phy_msg.msg_addr_high = upper_16_bits(addr);
-
- phy_msg.data = val;
- phy_msg.dest_dev = hw->ptp.phy.eth56g.phy_addr[phy_idx];
-
- err = ice_sbq_rw_reg(hw, &phy_msg, ICE_AQ_FLAG_RD);
-
+ err = ice_sbq_rw_reg(hw, &msg, ICE_AQ_FLAG_RD);
if (err)
ice_debug(hw, ICE_DBG_PTP, "PTP failed to send msg to phy %d\n",
err);
@@ -912,41 +927,36 @@ static int ice_write_phy_eth56g(struct ice_hw *hw, u8 phy_idx, u32 addr,
/**
* ice_read_phy_eth56g - Read a PHY port register
* @hw: pointer to the HW struct
- * @phy_idx: PHY index
+ * @port: destination port
* @addr: PHY register address
* @val: Value to write
*
* Return: 0 on success, other error codes when failed to read from PHY
*/
-static int ice_read_phy_eth56g(struct ice_hw *hw, u8 phy_idx, u32 addr,
- u32 *val)
+static int ice_read_phy_eth56g(struct ice_hw *hw, u8 port, u32 addr, u32 *val)
{
- struct ice_sbq_msg_input phy_msg;
+ struct ice_sbq_msg_input msg = {
+ .dest_dev = ice_ptp_get_dest_dev_e825(hw, port),
+ .opcode = ice_sbq_msg_rd,
+ .msg_addr_low = lower_16_bits(addr),
+ .msg_addr_high = upper_16_bits(addr)
+ };
int err;
- phy_msg.opcode = ice_sbq_msg_rd;
-
- phy_msg.msg_addr_low = lower_16_bits(addr);
- phy_msg.msg_addr_high = upper_16_bits(addr);
-
- phy_msg.data = 0;
- phy_msg.dest_dev = hw->ptp.phy.eth56g.phy_addr[phy_idx];
-
- err = ice_sbq_rw_reg(hw, &phy_msg, ICE_AQ_FLAG_RD);
- if (err) {
+ err = ice_sbq_rw_reg(hw, &msg, ICE_AQ_FLAG_RD);
+ if (err)
ice_debug(hw, ICE_DBG_PTP, "PTP failed to send msg to phy %d\n",
err);
- return err;
- }
-
- *val = phy_msg.data;
+ else
+ *val = msg.data;
- return 0;
+ return err;
}
/**
* ice_phy_res_address_eth56g - Calculate a PHY port register address
- * @port: Port number to be written
+ * @hw: pointer to the HW struct
+ * @lane: Lane number to be written
* @res_type: resource type (register/memory)
* @offset: Offset from PHY port register base
* @addr: The result address
@@ -955,17 +965,19 @@ static int ice_read_phy_eth56g(struct ice_hw *hw, u8 phy_idx, u32 addr,
* * %0 - success
* * %EINVAL - invalid port number or resource type
*/
-static int ice_phy_res_address_eth56g(u8 port, enum eth56g_res_type res_type,
- u32 offset, u32 *addr)
+static int ice_phy_res_address_eth56g(struct ice_hw *hw, u8 lane,
+ enum eth56g_res_type res_type,
+ u32 offset,
+ u32 *addr)
{
- u8 lane = port % ICE_PORTS_PER_QUAD;
- u8 phy = ICE_GET_QUAD_NUM(port);
-
if (res_type >= NUM_ETH56G_PHY_RES)
return -EINVAL;
- *addr = eth56g_phy_res[res_type].base[phy] +
+ /* Lanes 4..7 are in fact 0..3 on a second PHY */
+ lane %= hw->ptp.ports_per_phy;
+ *addr = eth56g_phy_res[res_type].base[0] +
lane * eth56g_phy_res[res_type].step + offset;
+
return 0;
}
@@ -985,19 +997,17 @@ static int ice_phy_res_address_eth56g(u8 port, enum eth56g_res_type res_type,
static int ice_write_port_eth56g(struct ice_hw *hw, u8 port, u32 offset,
u32 val, enum eth56g_res_type res_type)
{
- u8 phy_port = port % hw->ptp.ports_per_phy;
- u8 phy_idx = port / hw->ptp.ports_per_phy;
u32 addr;
int err;
if (port >= hw->ptp.num_lports)
return -EINVAL;
- err = ice_phy_res_address_eth56g(phy_port, res_type, offset, &addr);
+ err = ice_phy_res_address_eth56g(hw, port, res_type, offset, &addr);
if (err)
return err;
- return ice_write_phy_eth56g(hw, phy_idx, addr, val);
+ return ice_write_phy_eth56g(hw, port, addr, val);
}
/**
@@ -1016,19 +1026,17 @@ static int ice_write_port_eth56g(struct ice_hw *hw, u8 port, u32 offset,
static int ice_read_port_eth56g(struct ice_hw *hw, u8 port, u32 offset,
u32 *val, enum eth56g_res_type res_type)
{
- u8 phy_port = port % hw->ptp.ports_per_phy;
- u8 phy_idx = port / hw->ptp.ports_per_phy;
u32 addr;
int err;
if (port >= hw->ptp.num_lports)
return -EINVAL;
- err = ice_phy_res_address_eth56g(phy_port, res_type, offset, &addr);
+ err = ice_phy_res_address_eth56g(hw, port, res_type, offset, &addr);
if (err)
return err;
- return ice_read_phy_eth56g(hw, phy_idx, addr, val);
+ return ice_read_phy_eth56g(hw, port, addr, val);
}
/**
@@ -1177,6 +1185,56 @@ static int ice_write_port_mem_eth56g(struct ice_hw *hw, u8 port, u16 offset,
return ice_write_port_eth56g(hw, port, offset, val, ETH56G_PHY_MEM_PTP);
}
+/**
+ * ice_write_quad_ptp_reg_eth56g - Write a PHY quad register
+ * @hw: pointer to the HW struct
+ * @offset: PHY register offset
+ * @port: Port number
+ * @val: Value to write
+ *
+ * Return:
+ * * %0 - success
+ * * %EIO - invalid port number or resource type
+ * * %other - failed to write to PHY
+ */
+static int ice_write_quad_ptp_reg_eth56g(struct ice_hw *hw, u8 port,
+ u32 offset, u32 val)
+{
+ u32 addr;
+
+ if (port >= hw->ptp.num_lports)
+ return -EIO;
+
+ addr = eth56g_phy_res[ETH56G_PHY_REG_PTP].base[0] + offset;
+
+ return ice_write_phy_eth56g(hw, port, addr, val);
+}
+
+/**
+ * ice_read_quad_ptp_reg_eth56g - Read a PHY quad register
+ * @hw: pointer to the HW struct
+ * @offset: PHY register offset
+ * @port: Port number
+ * @val: Value to read
+ *
+ * Return:
+ * * %0 - success
+ * * %EIO - invalid port number or resource type
+ * * %other - failed to read from PHY
+ */
+static int ice_read_quad_ptp_reg_eth56g(struct ice_hw *hw, u8 port,
+ u32 offset, u32 *val)
+{
+ u32 addr;
+
+ if (port >= hw->ptp.num_lports)
+ return -EIO;
+
+ addr = eth56g_phy_res[ETH56G_PHY_REG_PTP].base[0] + offset;
+
+ return ice_read_phy_eth56g(hw, port, addr, val);
+}
+
/**
* ice_is_64b_phy_reg_eth56g - Check if this is a 64bit PHY register
* @low_addr: the low address to check
@@ -1896,7 +1954,6 @@ ice_phy_get_speed_eth56g(struct ice_link_status *li)
*/
static int ice_phy_cfg_parpcs_eth56g(struct ice_hw *hw, u8 port)
{
- u8 port_blk = port & ~(ICE_PORTS_PER_QUAD - 1);
u32 val;
int err;
@@ -1911,8 +1968,8 @@ static int ice_phy_cfg_parpcs_eth56g(struct ice_hw *hw, u8 port)
switch (ice_phy_get_speed_eth56g(&hw->port_info->phy.link_info)) {
case ICE_ETH56G_LNK_SPD_1G:
case ICE_ETH56G_LNK_SPD_2_5G:
- err = ice_read_ptp_reg_eth56g(hw, port_blk,
- PHY_GPCS_CONFIG_REG0, &val);
+ err = ice_read_quad_ptp_reg_eth56g(hw, port,
+ PHY_GPCS_CONFIG_REG0, &val);
if (err) {
ice_debug(hw, ICE_DBG_PTP, "Failed to read PHY_GPCS_CONFIG_REG0, status: %d",
err);
@@ -1923,8 +1980,8 @@ static int ice_phy_cfg_parpcs_eth56g(struct ice_hw *hw, u8 port)
val |= FIELD_PREP(PHY_GPCS_CONFIG_REG0_TX_THR_M,
ICE_ETH56G_NOMINAL_TX_THRESH);
- err = ice_write_ptp_reg_eth56g(hw, port_blk,
- PHY_GPCS_CONFIG_REG0, val);
+ err = ice_write_quad_ptp_reg_eth56g(hw, port,
+ PHY_GPCS_CONFIG_REG0, val);
if (err) {
ice_debug(hw, ICE_DBG_PTP, "Failed to write PHY_GPCS_CONFIG_REG0, status: %d",
err);
@@ -1965,50 +2022,47 @@ static int ice_phy_cfg_parpcs_eth56g(struct ice_hw *hw, u8 port)
*/
int ice_phy_cfg_ptp_1step_eth56g(struct ice_hw *hw, u8 port)
{
- u8 port_blk = port & ~(ICE_PORTS_PER_QUAD - 1);
- u8 blk_port = port & (ICE_PORTS_PER_QUAD - 1);
+ u8 quad_lane = port % ICE_PORTS_PER_QUAD;
+ u32 addr, val, peer_delay;
bool enable, sfd_ena;
- u32 val, peer_delay;
int err;
enable = hw->ptp.phy.eth56g.onestep_ena;
peer_delay = hw->ptp.phy.eth56g.peer_delay;
sfd_ena = hw->ptp.phy.eth56g.sfd_ena;
- /* PHY_PTP_1STEP_CONFIG */
- err = ice_read_ptp_reg_eth56g(hw, port_blk, PHY_PTP_1STEP_CONFIG, &val);
+ addr = PHY_PTP_1STEP_CONFIG;
+ err = ice_read_quad_ptp_reg_eth56g(hw, port, addr, &val);
if (err)
return err;
if (enable)
- val |= blk_port;
+ val |= BIT(quad_lane);
else
- val &= ~blk_port;
+ val &= ~BIT(quad_lane);
val &= ~(PHY_PTP_1STEP_T1S_UP64_M | PHY_PTP_1STEP_T1S_DELTA_M);
- err = ice_write_ptp_reg_eth56g(hw, port_blk, PHY_PTP_1STEP_CONFIG, val);
+ err = ice_write_quad_ptp_reg_eth56g(hw, port, addr, val);
if (err)
return err;
- /* PHY_PTP_1STEP_PEER_DELAY */
+ addr = PHY_PTP_1STEP_PEER_DELAY(quad_lane);
val = FIELD_PREP(PHY_PTP_1STEP_PD_DELAY_M, peer_delay);
if (peer_delay)
val |= PHY_PTP_1STEP_PD_ADD_PD_M;
val |= PHY_PTP_1STEP_PD_DLY_V_M;
- err = ice_write_ptp_reg_eth56g(hw, port_blk,
- PHY_PTP_1STEP_PEER_DELAY(blk_port), val);
+ err = ice_write_quad_ptp_reg_eth56g(hw, port, addr, val);
if (err)
return err;
val &= ~PHY_PTP_1STEP_PD_DLY_V_M;
- err = ice_write_ptp_reg_eth56g(hw, port_blk,
- PHY_PTP_1STEP_PEER_DELAY(blk_port), val);
+ err = ice_write_quad_ptp_reg_eth56g(hw, port, addr, val);
if (err)
return err;
- /* PHY_MAC_XIF_MODE */
- err = ice_read_mac_reg_eth56g(hw, port, PHY_MAC_XIF_MODE, &val);
+ addr = PHY_MAC_XIF_MODE;
+ err = ice_read_mac_reg_eth56g(hw, port, addr, &val);
if (err)
return err;
@@ -2028,7 +2082,7 @@ int ice_phy_cfg_ptp_1step_eth56g(struct ice_hw *hw, u8 port)
FIELD_PREP(PHY_MAC_XIF_TS_BIN_MODE_M, enable) |
FIELD_PREP(PHY_MAC_XIF_TS_SFD_ENA_M, sfd_ena);
- return ice_write_mac_reg_eth56g(hw, port, PHY_MAC_XIF_MODE, val);
+ return ice_write_mac_reg_eth56g(hw, port, addr, val);
}
/**
@@ -2070,21 +2124,22 @@ static u32 ice_ptp_calc_bitslip_eth56g(struct ice_hw *hw, u8 port, u32 bs,
bool fc, bool rs,
enum ice_eth56g_link_spd spd)
{
- u8 port_offset = port & (ICE_PORTS_PER_QUAD - 1);
- u8 port_blk = port & ~(ICE_PORTS_PER_QUAD - 1);
u32 bitslip;
int err;
if (!bs || rs)
return 0;
- if (spd == ICE_ETH56G_LNK_SPD_1G || spd == ICE_ETH56G_LNK_SPD_2_5G)
+ if (spd == ICE_ETH56G_LNK_SPD_1G || spd == ICE_ETH56G_LNK_SPD_2_5G) {
err = ice_read_gpcs_reg_eth56g(hw, port, PHY_GPCS_BITSLIP,
&bitslip);
- else
- err = ice_read_ptp_reg_eth56g(hw, port_blk,
- PHY_REG_SD_BIT_SLIP(port_offset),
- &bitslip);
+ } else {
+ u8 quad_lane = port % ICE_PORTS_PER_QUAD;
+ u32 addr;
+
+ addr = PHY_REG_SD_BIT_SLIP(quad_lane);
+ err = ice_read_quad_ptp_reg_eth56g(hw, port, addr, &bitslip);
+ }
if (err)
return 0;
@@ -2679,8 +2734,6 @@ static void ice_ptp_init_phy_e825(struct ice_hw *hw)
params->onestep_ena = false;
params->peer_delay = 0;
params->sfd_ena = false;
- params->phy_addr[0] = eth56g_phy_0;
- params->phy_addr[1] = eth56g_phy_1;
params->num_phys = 2;
ptp->ports_per_phy = 4;
ptp->num_lports = params->num_phys * ptp->ports_per_phy;
@@ -2711,10 +2764,9 @@ static void ice_fill_phy_msg_e82x(struct ice_hw *hw,
struct ice_sbq_msg_input *msg, u8 port,
u16 offset)
{
- int phy_port, phy, quadtype;
+ int phy_port, quadtype;
phy_port = port % hw->ptp.ports_per_phy;
- phy = port / hw->ptp.ports_per_phy;
quadtype = ICE_GET_QUAD_NUM(port) %
ICE_GET_QUAD_NUM(hw->ptp.ports_per_phy);
@@ -2726,12 +2778,7 @@ static void ice_fill_phy_msg_e82x(struct ice_hw *hw,
msg->msg_addr_high = P_Q1_H(P_4_BASE + offset, phy_port);
}
- if (phy == 0)
- msg->dest_dev = rmn_0;
- else if (phy == 1)
- msg->dest_dev = rmn_1;
- else
- msg->dest_dev = rmn_2;
+ msg->dest_dev = rmn_0;
}
/**
diff --git a/drivers/net/ethernet/intel/ice/ice_type.h b/drivers/net/ethernet/intel/ice/ice_type.h
index 45768796691fe..479227bdff75e 100644
--- a/drivers/net/ethernet/intel/ice/ice_type.h
+++ b/drivers/net/ethernet/intel/ice/ice_type.h
@@ -850,7 +850,6 @@ struct ice_mbx_data {
struct ice_eth56g_params {
u8 num_phys;
- u8 phy_addr[2];
bool onestep_ena;
bool sfd_ena;
u32 peer_delay;
--
2.39.5
next prev parent reply other threads:[~2025-01-21 17:58 UTC|newest]
Thread overview: 146+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-01-21 17:50 [PATCH 6.12 000/122] 6.12.11-rc1 review Greg Kroah-Hartman
2025-01-21 17:50 ` [PATCH 6.12 001/122] efi/zboot: Limit compression options to GZIP and ZSTD Greg Kroah-Hartman
2025-01-21 17:50 ` [PATCH 6.12 002/122] net: ethernet: ti: cpsw_ale: Fix cpsw_ale_get_field() Greg Kroah-Hartman
2025-01-21 17:50 ` [PATCH 6.12 003/122] bpf: Fix bpf_sk_select_reuseport() memory leak Greg Kroah-Hartman
2025-01-21 17:50 ` [PATCH 6.12 004/122] eth: bnxt: always recalculate features after XDP clearing, fix null-deref Greg Kroah-Hartman
2025-01-21 17:50 ` [PATCH 6.12 005/122] net: ravb: Fix max TX frame size for RZ/V2M Greg Kroah-Hartman
2025-01-21 17:50 ` [PATCH 6.12 006/122] openvswitch: fix lockup on tx to unregistering netdev with carrier Greg Kroah-Hartman
2025-01-21 17:50 ` [PATCH 6.12 007/122] pktgen: Avoid out-of-bounds access in get_imix_entries Greg Kroah-Hartman
2025-01-21 17:50 ` [PATCH 6.12 008/122] ice: Fix E825 initialization Greg Kroah-Hartman
2025-01-21 17:50 ` Greg Kroah-Hartman [this message]
2025-01-21 17:50 ` [PATCH 6.12 010/122] ice: Fix ETH56G FC-FEC Rx offset value Greg Kroah-Hartman
2025-01-21 17:50 ` [PATCH 6.12 011/122] ice: Introduce ice_get_phy_model() wrapper Greg Kroah-Hartman
2025-01-21 17:51 ` [PATCH 6.12 012/122] ice: Add ice_get_ctrl_ptp() wrapper to simplify the code Greg Kroah-Hartman
2025-01-21 17:51 ` [PATCH 6.12 013/122] ice: Use ice_adapter for PTP shared data instead of auxdev Greg Kroah-Hartman
2025-01-21 17:51 ` [PATCH 6.12 014/122] ice: Add correct PHY lane assignment Greg Kroah-Hartman
2025-01-21 17:51 ` [PATCH 6.12 015/122] cpuidle: teo: Update documentation after previous changes Greg Kroah-Hartman
2025-01-21 17:51 ` [PATCH 6.12 016/122] btrfs: add the missing error handling inside get_canonical_dev_path Greg Kroah-Hartman
2025-01-21 17:51 ` [PATCH 6.12 017/122] gtp: Use for_each_netdev_rcu() in gtp_genl_dump_pdp() Greg Kroah-Hartman
2025-01-21 17:51 ` [PATCH 6.12 018/122] gtp: Destroy device along with udp sockets netns dismantle Greg Kroah-Hartman
2025-01-21 17:51 ` [PATCH 6.12 019/122] pfcp: " Greg Kroah-Hartman
2025-01-21 17:51 ` [PATCH 6.12 020/122] cpufreq: Move endif to the end of Kconfig file Greg Kroah-Hartman
2025-01-21 17:51 ` [PATCH 6.12 021/122] nfp: bpf: prevent integer overflow in nfp_bpf_event_output() Greg Kroah-Hartman
2025-01-21 17:51 ` [PATCH 6.12 022/122] net: xilinx: axienet: Fix IRQ coalescing packet count overflow Greg Kroah-Hartman
2025-01-21 17:51 ` [PATCH 6.12 023/122] net: fec: handle page_pool_dev_alloc_pages error Greg Kroah-Hartman
2025-01-21 17:51 ` [PATCH 6.12 024/122] net: make page_pool_ref_netmem work with net iovs Greg Kroah-Hartman
2025-01-21 17:51 ` [PATCH 6.12 025/122] net/mlx5: Fix RDMA TX steering prio Greg Kroah-Hartman
2025-01-21 17:51 ` [PATCH 6.12 026/122] net/mlx5: Fix a lockdep warning as part of the write combining test Greg Kroah-Hartman
2025-01-21 17:51 ` [PATCH 6.12 027/122] net/mlx5: SF, Fix add port error handling Greg Kroah-Hartman
2025-01-21 17:51 ` [PATCH 6.12 028/122] net/mlx5: Clear port select structure when fail to create Greg Kroah-Hartman
2025-01-21 17:51 ` [PATCH 6.12 029/122] net/mlx5e: Fix inversion dependency warning while enabling IPsec tunnel Greg Kroah-Hartman
2025-01-21 17:51 ` [PATCH 6.12 030/122] net/mlx5e: Rely on reqid in IPsec tunnel mode Greg Kroah-Hartman
2025-01-21 17:51 ` [PATCH 6.12 031/122] net/mlx5e: Always start IPsec sequence number from 1 Greg Kroah-Hartman
2025-01-21 17:51 ` [PATCH 6.12 032/122] netdev: avoid CFI problems with sock priv helpers Greg Kroah-Hartman
2025-01-21 17:51 ` [PATCH 6.12 033/122] drm/tests: helpers: Fix compiler warning Greg Kroah-Hartman
2025-01-21 17:51 ` [PATCH 6.12 034/122] drm/vmwgfx: Unreserve BO on error Greg Kroah-Hartman
2025-01-21 17:51 ` [PATCH 6.12 035/122] drm/vmwgfx: Add new keep_resv BO param Greg Kroah-Hartman
2025-01-21 17:51 ` [PATCH 6.12 036/122] drm/v3d: Ensure job pointer is set to NULL after job completion Greg Kroah-Hartman
2025-01-21 17:51 ` [PATCH 6.12 037/122] reset: rzg2l-usbphy-ctrl: Assign proper of node to the allocated device Greg Kroah-Hartman
2025-01-21 17:51 ` [PATCH 6.12 038/122] soc: ti: pruss: Fix pruss APIs Greg Kroah-Hartman
2025-01-21 17:51 ` [PATCH 6.12 039/122] i2c: core: fix reference leak in i2c_register_adapter() Greg Kroah-Hartman
2025-01-21 17:51 ` [PATCH 6.12 040/122] platform/x86: dell-uart-backlight: fix serdev race Greg Kroah-Hartman
2025-01-21 17:51 ` [PATCH 6.12 041/122] platform/x86: lenovo-yoga-tab2-pro-1380-fastcharger: " Greg Kroah-Hartman
2025-01-21 17:51 ` [PATCH 6.12 042/122] hwmon: (tmp513) Fix division of negative numbers Greg Kroah-Hartman
2025-01-21 17:51 ` [PATCH 6.12 043/122] Revert "mtd: spi-nor: core: replace dummy buswidth from addr to data" Greg Kroah-Hartman
2025-01-21 17:51 ` [PATCH 6.12 044/122] i2c: mux: demux-pinctrl: check initial mux selection, too Greg Kroah-Hartman
2025-01-21 17:51 ` [PATCH 6.12 045/122] i2c: rcar: fix NACK handling when being a target Greg Kroah-Hartman
2025-01-21 17:51 ` [PATCH 6.12 046/122] i2c: testunit: on errors, repeat NACK until STOP Greg Kroah-Hartman
2025-01-21 17:51 ` [PATCH 6.12 047/122] hwmon: (ltc2991) Fix mixed signed/unsigned in DIV_ROUND_CLOSEST Greg Kroah-Hartman
2025-01-21 17:51 ` [PATCH 6.12 048/122] smb: client: fix double free of TCP_Server_Info::hostname Greg Kroah-Hartman
2025-01-21 17:51 ` [PATCH 6.12 049/122] mac802154: check local interfaces before deleting sdata list Greg Kroah-Hartman
2025-01-21 17:51 ` [PATCH 6.12 050/122] hfs: Sanity check the root record Greg Kroah-Hartman
2025-01-21 17:51 ` [PATCH 6.12 051/122] fs/qnx6: Fix building with GCC 15 Greg Kroah-Hartman
2025-01-21 17:51 ` [PATCH 6.12 052/122] fs: fix missing declaration of init_files Greg Kroah-Hartman
2025-01-21 17:51 ` [PATCH 6.12 053/122] kheaders: Ignore silly-rename files Greg Kroah-Hartman
2025-01-21 17:51 ` [PATCH 6.12 054/122] netfs: Fix non-contiguous donation between completed reads Greg Kroah-Hartman
2025-01-21 17:51 ` [PATCH 6.12 055/122] cachefiles: Parse the "secctx" immediately Greg Kroah-Hartman
2025-01-21 17:51 ` [PATCH 6.12 056/122] scsi: ufs: core: Honor runtime/system PM levels if set by host controller drivers Greg Kroah-Hartman
2025-01-21 17:51 ` [PATCH 6.12 057/122] gpio: virtuser: lock up configfs that an instantiated device depends on Greg Kroah-Hartman
2025-01-21 17:51 ` [PATCH 6.12 058/122] gpio: sim: " Greg Kroah-Hartman
2025-01-21 17:51 ` [PATCH 6.12 059/122] selftests: tc-testing: reduce rshift value Greg Kroah-Hartman
2025-01-21 17:51 ` [PATCH 6.12 060/122] platform/x86/intel: power-domains: Add Clearwater Forest support Greg Kroah-Hartman
2025-01-21 17:51 ` [PATCH 6.12 061/122] platform/x86: ISST: Add Clearwater Forest to support list Greg Kroah-Hartman
2025-01-21 17:51 ` [PATCH 6.12 062/122] ACPI: resource: acpi_dev_irq_override(): Check DMI match last Greg Kroah-Hartman
2025-01-21 17:51 ` [PATCH 6.12 063/122] sched_ext: keep running prev when prev->scx.slice != 0 Greg Kroah-Hartman
2025-01-21 17:51 ` [PATCH 6.12 064/122] iomap: avoid avoid truncating 64-bit offset to 32 bits Greg Kroah-Hartman
2025-01-21 17:51 ` [PATCH 6.12 065/122] afs: Fix merge preference rule failure condition Greg Kroah-Hartman
2025-01-21 17:51 ` [PATCH 6.12 066/122] poll_wait: add mb() to fix theoretical race between waitqueue_active() and .poll() Greg Kroah-Hartman
2025-01-21 17:51 ` [PATCH 6.12 067/122] selftests/sched_ext: fix build after renames in sched_ext API Greg Kroah-Hartman
2025-01-21 17:51 ` [PATCH 6.12 068/122] scx: Fix maximal BPF selftest prog Greg Kroah-Hartman
2025-01-21 17:51 ` [PATCH 6.12 069/122] RDMA/bnxt_re: Fix to export port num to ib_query_qp Greg Kroah-Hartman
2025-01-21 17:51 ` [PATCH 6.12 070/122] sched_ext: Fix dsq_local_on selftest Greg Kroah-Hartman
2025-01-21 17:51 ` [PATCH 6.12 071/122] nvmet: propagate npwg topology Greg Kroah-Hartman
2025-01-21 17:52 ` [PATCH 6.12 072/122] sched/fair: Fix EEVDF entity placement bug causing scheduling lag Greg Kroah-Hartman
2025-01-21 17:52 ` [PATCH 6.12 073/122] sched/fair: Fix update_cfs_group() vs DELAY_DEQUEUE Greg Kroah-Hartman
2025-01-21 17:52 ` [PATCH 6.12 074/122] x86/asm: Make serialize() always_inline Greg Kroah-Hartman
2025-01-21 17:52 ` [PATCH 6.12 075/122] ALSA: hda/realtek: Add support for Ayaneo System using CS35L41 HDA Greg Kroah-Hartman
2025-01-21 17:52 ` [PATCH 6.12 076/122] ALSA: hda/realtek: fixup ASUS GA605W Greg Kroah-Hartman
2025-01-21 17:52 ` [PATCH 6.12 077/122] ALSA: hda/realtek: fixup ASUS H7606W Greg Kroah-Hartman
2025-01-21 17:52 ` [PATCH 6.12 078/122] zram: fix potential UAF of zram table Greg Kroah-Hartman
2025-01-21 17:52 ` [PATCH 6.12 079/122] i2c: atr: Fix client detach Greg Kroah-Hartman
2025-01-21 17:52 ` [PATCH 6.12 080/122] mptcp: be sure to send ack when mptcp-level window re-opens Greg Kroah-Hartman
2025-01-21 17:52 ` [PATCH 6.12 081/122] mptcp: fix spurious wake-up on under memory pressure Greg Kroah-Hartman
2025-01-21 17:52 ` [PATCH 6.12 082/122] selftests: mptcp: avoid spurious errors on disconnect Greg Kroah-Hartman
2025-01-21 17:52 ` [PATCH 6.12 083/122] net: ethernet: xgbe: re-add aneg to supported features in PHY quirks Greg Kroah-Hartman
2025-01-21 17:52 ` [PATCH 6.12 084/122] vsock/bpf: return early if transport is not assigned Greg Kroah-Hartman
2025-01-21 17:52 ` [PATCH 6.12 085/122] vsock/virtio: discard packets if the transport changes Greg Kroah-Hartman
2025-01-21 17:52 ` [PATCH 6.12 086/122] vsock/virtio: cancel close work in the destructor Greg Kroah-Hartman
2025-01-21 17:52 ` [PATCH 6.12 087/122] vsock: reset socket state when de-assigning the transport Greg Kroah-Hartman
2025-01-21 17:52 ` [PATCH 6.12 088/122] vsock: prevent null-ptr-deref in vsock_*[has_data|has_space] Greg Kroah-Hartman
2025-01-21 17:52 ` [PATCH 6.12 089/122] nouveau/fence: handle cross device fences properly Greg Kroah-Hartman
2025-01-21 17:52 ` [PATCH 6.12 090/122] drm/nouveau/disp: Fix missing backlight control on Macbook 5,1 Greg Kroah-Hartman
2025-01-21 17:52 ` [PATCH 6.12 091/122] net/ncsi: fix locking in Get MAC Address handling Greg Kroah-Hartman
2025-01-21 17:52 ` [PATCH 6.12 092/122] filemap: avoid truncating 64-bit offset to 32 bits Greg Kroah-Hartman
2025-01-21 17:52 ` [PATCH 6.12 093/122] fs/proc: fix softlockup in __read_vmcore (part 2) Greg Kroah-Hartman
2025-01-21 17:52 ` [PATCH 6.12 094/122] gpio: xilinx: Convert gpio_lock to raw spinlock Greg Kroah-Hartman
2025-01-21 17:52 ` [PATCH 6.12 095/122] tools: fix atomic_set() definition to set the value correctly Greg Kroah-Hartman
2025-01-21 17:52 ` [PATCH 6.12 096/122] pmdomain: imx8mp-blk-ctrl: add missing loop break condition Greg Kroah-Hartman
2025-01-21 17:52 ` [PATCH 6.12 097/122] mm/kmemleak: fix percpu memory leak detection failure Greg Kroah-Hartman
2025-01-21 17:52 ` [PATCH 6.12 098/122] selftests/mm: set allocated memory to non-zero content in cow test Greg Kroah-Hartman
2025-01-21 17:52 ` [PATCH 6.12 099/122] drm/amd/display: Do not elevate mem_type change to full update Greg Kroah-Hartman
2025-01-21 17:52 ` [PATCH 6.12 100/122] mm: clear uffd-wp PTE/PMD state on mremap() Greg Kroah-Hartman
2025-01-21 17:52 ` [PATCH 6.12 101/122] mm: vmscan : pgdemote vmstat is not getting updated when MGLRU is enabled Greg Kroah-Hartman
2025-01-21 17:52 ` [PATCH 6.12 102/122] tracing: gfp: Fix the GFP enum values shown for user space tracing tools Greg Kroah-Hartman
2025-01-21 17:52 ` [PATCH 6.12 103/122] irqchip: Plug a OF node reference leak in platform_irqchip_probe() Greg Kroah-Hartman
2025-01-21 17:52 ` [PATCH 6.12 104/122] irqchip/gic-v3: Handle CPU_PM_ENTER_FAILED correctly Greg Kroah-Hartman
2025-01-21 17:52 ` [PATCH 6.12 105/122] irqchip/gic-v3-its: Dont enable interrupts in its_irq_set_vcpu_affinity() Greg Kroah-Hartman
2025-01-21 17:52 ` [PATCH 6.12 106/122] hrtimers: Handle CPU state correctly on hotplug Greg Kroah-Hartman
2025-01-21 17:52 ` [PATCH 6.12 107/122] timers/migration: Fix another race between hotplug and idle entry/exit Greg Kroah-Hartman
2025-01-21 17:52 ` [PATCH 6.12 108/122] timers/migration: Enforce group initialization visibility to tree walkers Greg Kroah-Hartman
2025-01-21 17:52 ` [PATCH 6.12 109/122] x86/fred: Fix the FRED RSP0 MSR out of sync with its per-CPU cache Greg Kroah-Hartman
2025-01-21 17:52 ` [PATCH 6.12 110/122] drm/i915/fb: Relax clear color alignment to 64 bytes Greg Kroah-Hartman
2025-01-21 17:52 ` [PATCH 6.12 111/122] drm/xe: Mark ComputeCS read mode as UC on iGPU Greg Kroah-Hartman
2025-01-21 17:52 ` [PATCH 6.12 112/122] drm/xe/oa: Add missing VISACTL mux registers Greg Kroah-Hartman
2025-01-21 17:52 ` [PATCH 6.12 113/122] drm/amdgpu/smu13: update powersave optimizations Greg Kroah-Hartman
2025-01-21 17:52 ` [PATCH 6.12 114/122] drm/amdgpu: fix fw attestation for MP0_14_0_{2/3} Greg Kroah-Hartman
2025-01-21 17:52 ` [PATCH 6.12 115/122] drm/amdgpu: disable gfxoff with the compute workload on gfx12 Greg Kroah-Hartman
2025-01-21 17:52 ` [PATCH 6.12 116/122] drm/amdgpu: always sync the GFX pipe on ctx switch Greg Kroah-Hartman
2025-01-21 17:52 ` [PATCH 6.12 117/122] drm/amd/display: Fix PSR-SU not support but still call the amdgpu_dm_psr_enable Greg Kroah-Hartman
2025-01-21 17:52 ` [PATCH 6.12 118/122] drm/amd/display: Disable replay and psr while VRR is enabled Greg Kroah-Hartman
2025-01-21 17:52 ` [PATCH 6.12 119/122] drm/amd/display: Do not wait for PSR disable on vbl enable Greg Kroah-Hartman
2025-01-21 17:52 ` [PATCH 6.12 120/122] Revert "drm/amd/display: Enable urgent latency adjustments for DCN35" Greg Kroah-Hartman
2025-01-21 17:52 ` [PATCH 6.12 121/122] drm/amd/display: Validate mdoe under MST LCT=1 case as well Greg Kroah-Hartman
2025-01-21 17:52 ` [PATCH 6.12 122/122] apparmor: allocate xmatch for nullpdb inside aa_alloc_null Greg Kroah-Hartman
2025-01-21 19:10 ` [PATCH 6.12 000/122] 6.12.11-rc1 review Florian Fainelli
2025-01-21 20:57 ` Peter Schneider
2025-01-21 21:46 ` Salvatore Bonaccorso
2025-01-21 22:15 ` Ronald Warsow
2025-01-22 7:04 ` Jon Hunter
2025-01-22 9:01 ` Ron Economos
2025-01-22 9:29 ` Greg Kroah-Hartman
2025-01-21 23:05 ` Takeshi Ogasawara
2025-01-21 23:31 ` Shuah Khan
2025-01-21 23:48 ` SeongJae Park
2025-01-22 10:04 ` Naresh Kamboju
2025-01-22 10:42 ` Peter Zijlstra
2025-01-22 10:56 ` Arnd Bergmann
2025-01-22 10:59 ` Peter Zijlstra
2025-01-22 11:11 ` Ron Economos
2025-01-28 11:46 ` Mike Galbraith
2025-01-28 14:39 ` Peter Zijlstra
2025-01-28 15:20 ` Mike Galbraith
2025-05-23 15:13 ` Mushahid Hussain
2025-02-08 14:51 ` [tip: sched/urgent] sched/fair: Adhere to place_entity() constraints tip-bot2 for Peter Zijlstra
2025-05-23 16:01 ` [PATCH 6.12 000/122] 6.12.11-rc1 review Mushahid Hussain
2025-05-23 16:46 ` David Woodhouse
2025-01-23 8:09 ` Harshit Mogalapalli
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=20250121174533.354568772@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=anthony.l.nguyen@intel.com \
--cc=arkadiusz.kubalewski@intel.com \
--cc=grzegorz.nitka@intel.com \
--cc=himasekharx.reddy.pucha@intel.com \
--cc=karol.kolacinski@intel.com \
--cc=patches@lists.linux.dev \
--cc=sashal@kernel.org \
--cc=stable@vger.kernel.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 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.