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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox