Import of kernel-5.14.0-611.47.1.el9_7
This commit is contained in:
parent
6f42de9b0c
commit
18acec0308
@ -12,7 +12,7 @@ RHEL_MINOR = 7
|
||||
#
|
||||
# Use this spot to avoid future merge conflicts.
|
||||
# Do not trim this comment.
|
||||
RHEL_RELEASE = 611.45.1
|
||||
RHEL_RELEASE = 611.47.1
|
||||
|
||||
#
|
||||
# ZSTREAM
|
||||
|
||||
@ -7886,6 +7886,9 @@ static void ice_rebuild(struct ice_pf *pf, enum ice_reset_req reset_type)
|
||||
|
||||
/* Restore timestamp mode settings after VSI rebuild */
|
||||
ice_ptp_restore_timestamp_mode(pf);
|
||||
|
||||
/* Start PTP periodic work after VSI is fully rebuilt */
|
||||
ice_ptp_queue_work(pf);
|
||||
return;
|
||||
|
||||
err_vsi_rebuild:
|
||||
|
||||
@ -3010,6 +3010,20 @@ static void ice_ptp_periodic_work(struct kthread_work *work)
|
||||
msecs_to_jiffies(err ? 10 : 500));
|
||||
}
|
||||
|
||||
/**
|
||||
* ice_ptp_queue_work - Queue PTP periodic work for a PF
|
||||
* @pf: Board private structure
|
||||
*
|
||||
* Helper function to queue PTP periodic work after VSI rebuild completes.
|
||||
* This ensures that PTP work only runs when VSI structures are ready.
|
||||
*/
|
||||
void ice_ptp_queue_work(struct ice_pf *pf)
|
||||
{
|
||||
if (test_bit(ICE_FLAG_PTP_SUPPORTED, pf->flags) &&
|
||||
pf->ptp.state == ICE_PTP_READY)
|
||||
kthread_queue_delayed_work(pf->ptp.kworker, &pf->ptp.work, 0);
|
||||
}
|
||||
|
||||
/**
|
||||
* ice_ptp_prepare_rebuild_sec - Prepare second NAC for PTP reset or rebuild
|
||||
* @pf: Board private structure
|
||||
@ -3028,10 +3042,15 @@ static void ice_ptp_prepare_rebuild_sec(struct ice_pf *pf, bool rebuild,
|
||||
struct ice_pf *peer_pf = ptp_port_to_pf(port);
|
||||
|
||||
if (!ice_is_primary(&peer_pf->hw)) {
|
||||
if (rebuild)
|
||||
if (rebuild) {
|
||||
/* TODO: When implementing rebuild=true:
|
||||
* 1. Ensure secondary PFs' VSIs are rebuilt
|
||||
* 2. Call ice_ptp_queue_work(peer_pf) after VSI rebuild
|
||||
*/
|
||||
ice_ptp_rebuild(peer_pf, reset_type);
|
||||
else
|
||||
} else {
|
||||
ice_ptp_prepare_for_reset(peer_pf, reset_type);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -3177,9 +3196,6 @@ void ice_ptp_rebuild(struct ice_pf *pf, enum ice_reset_req reset_type)
|
||||
|
||||
ptp->state = ICE_PTP_READY;
|
||||
|
||||
/* Start periodic work going */
|
||||
kthread_queue_delayed_work(ptp->kworker, &ptp->work, 0);
|
||||
|
||||
dev_info(ice_pf_to_dev(pf), "PTP reset successful\n");
|
||||
return;
|
||||
|
||||
|
||||
@ -316,6 +316,7 @@ void ice_ptp_prepare_for_reset(struct ice_pf *pf,
|
||||
void ice_ptp_init(struct ice_pf *pf);
|
||||
void ice_ptp_release(struct ice_pf *pf);
|
||||
void ice_ptp_link_change(struct ice_pf *pf, bool linkup);
|
||||
void ice_ptp_queue_work(struct ice_pf *pf);
|
||||
#else /* IS_ENABLED(CONFIG_PTP_1588_CLOCK) */
|
||||
static inline int ice_ptp_set_ts_config(struct ice_pf *pf, struct ifreq *ifr)
|
||||
{
|
||||
@ -380,6 +381,10 @@ static inline void ice_ptp_link_change(struct ice_pf *pf, bool linkup)
|
||||
{
|
||||
}
|
||||
|
||||
static inline void ice_ptp_queue_work(struct ice_pf *pf)
|
||||
{
|
||||
}
|
||||
|
||||
static inline int ice_ptp_clock_index(struct ice_pf *pf)
|
||||
{
|
||||
return -1;
|
||||
|
||||
@ -921,6 +921,7 @@ ice_get_rx_buf(struct ice_rx_ring *rx_ring, const unsigned int size,
|
||||
|
||||
if (!size) {
|
||||
rx_buf->pagecnt_bias--;
|
||||
rx_buf->has_data = false;
|
||||
return rx_buf;
|
||||
}
|
||||
/* we are reusing so sync this buffer for CPU use */
|
||||
@ -930,6 +931,7 @@ ice_get_rx_buf(struct ice_rx_ring *rx_ring, const unsigned int size,
|
||||
|
||||
/* We have pulled a buffer for use, so decrement pagecnt_bias */
|
||||
rx_buf->pagecnt_bias--;
|
||||
rx_buf->has_data = true;
|
||||
|
||||
return rx_buf;
|
||||
}
|
||||
@ -1142,25 +1144,15 @@ static void ice_put_rx_mbuf(struct ice_rx_ring *rx_ring, struct xdp_buff *xdp,
|
||||
u32 idx = rx_ring->first_desc;
|
||||
u32 cnt = rx_ring->count;
|
||||
struct ice_rx_buf *buf;
|
||||
u32 xdp_frags = 0;
|
||||
int i = 0;
|
||||
|
||||
if (unlikely(xdp_buff_has_frags(xdp)))
|
||||
xdp_frags = xdp_get_shared_info_from_buff(xdp)->nr_frags;
|
||||
|
||||
while (idx != ntc) {
|
||||
buf = &rx_ring->rx_buf[idx];
|
||||
if (++idx == cnt)
|
||||
idx = 0;
|
||||
|
||||
/* An XDP program could release fragments from the end of the
|
||||
* buffer. For these, we need to keep the pagecnt_bias as-is.
|
||||
* To do this, only adjust pagecnt_bias for fragments up to
|
||||
* the total remaining after the XDP program has run.
|
||||
*/
|
||||
if (verdict != ICE_XDP_CONSUMED)
|
||||
if (verdict != ICE_XDP_CONSUMED && buf->has_data)
|
||||
ice_rx_buf_adjust_pg_offset(buf, xdp->frame_sz);
|
||||
else if (i++ <= xdp_frags)
|
||||
else
|
||||
buf->pagecnt_bias++;
|
||||
|
||||
ice_put_rx_buf(rx_ring, buf);
|
||||
|
||||
@ -203,6 +203,7 @@ struct ice_rx_buf {
|
||||
unsigned int page_offset;
|
||||
unsigned int pgcnt;
|
||||
unsigned int pagecnt_bias;
|
||||
bool has_data;
|
||||
};
|
||||
|
||||
struct ice_q_stats {
|
||||
|
||||
@ -1295,12 +1295,15 @@ mlx5_eswitch_enable_pf_vf_vports(struct mlx5_eswitch *esw,
|
||||
ret = mlx5_eswitch_load_pf_vf_vport(esw, MLX5_VPORT_ECPF, enabled_events);
|
||||
if (ret)
|
||||
goto ecpf_err;
|
||||
if (mlx5_core_ec_sriov_enabled(esw->dev)) {
|
||||
ret = mlx5_eswitch_load_ec_vf_vports(esw, esw->esw_funcs.num_ec_vfs,
|
||||
enabled_events);
|
||||
if (ret)
|
||||
goto ec_vf_err;
|
||||
}
|
||||
}
|
||||
|
||||
/* Enable ECVF vports */
|
||||
if (mlx5_core_ec_sriov_enabled(esw->dev)) {
|
||||
ret = mlx5_eswitch_load_ec_vf_vports(esw,
|
||||
esw->esw_funcs.num_ec_vfs,
|
||||
enabled_events);
|
||||
if (ret)
|
||||
goto ec_vf_err;
|
||||
}
|
||||
|
||||
/* Enable VF vports */
|
||||
@ -1331,9 +1334,11 @@ void mlx5_eswitch_disable_pf_vf_vports(struct mlx5_eswitch *esw)
|
||||
{
|
||||
mlx5_eswitch_unload_vf_vports(esw, esw->esw_funcs.num_vfs);
|
||||
|
||||
if (mlx5_core_ec_sriov_enabled(esw->dev))
|
||||
mlx5_eswitch_unload_ec_vf_vports(esw,
|
||||
esw->esw_funcs.num_ec_vfs);
|
||||
|
||||
if (mlx5_ecpf_vport_exists(esw->dev)) {
|
||||
if (mlx5_core_ec_sriov_enabled(esw->dev))
|
||||
mlx5_eswitch_unload_ec_vf_vports(esw, esw->esw_funcs.num_vfs);
|
||||
mlx5_eswitch_unload_pf_vf_vport(esw, MLX5_VPORT_ECPF);
|
||||
}
|
||||
|
||||
|
||||
@ -880,7 +880,12 @@ int mana_hwc_send_request(struct hw_channel_context *hwc, u32 req_len,
|
||||
if (!wait_for_completion_timeout(&ctx->comp_event,
|
||||
(msecs_to_jiffies(hwc->hwc_timeout)))) {
|
||||
if (hwc->hwc_timeout != 0)
|
||||
dev_err(hwc->dev, "HWC: Request timed out!\n");
|
||||
dev_err(hwc->dev, "HWC: Request timed out: %u ms\n",
|
||||
hwc->hwc_timeout);
|
||||
|
||||
/* Reduce further waiting if HWC no response */
|
||||
if (hwc->hwc_timeout > 1)
|
||||
hwc->hwc_timeout = 1;
|
||||
|
||||
err = -ETIMEDOUT;
|
||||
goto out;
|
||||
|
||||
@ -2477,6 +2477,7 @@ static int nf_tables_addchain(struct nft_ctx *ctx, u8 family, u8 genmask,
|
||||
|
||||
err_register_hook:
|
||||
nft_chain_del(chain);
|
||||
synchronize_rcu();
|
||||
err_chain_add:
|
||||
nft_trans_destroy(trans);
|
||||
err_trans:
|
||||
@ -5321,7 +5322,7 @@ static void nft_map_catchall_activate(const struct nft_ctx *ctx,
|
||||
|
||||
list_for_each_entry(catchall, &set->catchall_list, list) {
|
||||
ext = nft_set_elem_ext(set, catchall->elem);
|
||||
if (!nft_set_elem_active(ext, genmask))
|
||||
if (nft_set_elem_active(ext, genmask))
|
||||
continue;
|
||||
|
||||
nft_clear(ctx->net, ext);
|
||||
|
||||
@ -1,3 +1,15 @@
|
||||
* Tue Mar 31 2026 CKI KWF Bot <cki-ci-bot+kwf-gitlab-com@redhat.com> [5.14.0-611.47.1.el9_7]
|
||||
- net/mlx5: Fix ECVF vports unload on shutdown flow (CKI Backport Bot) [RHEL-154537] {CVE-2025-38109}
|
||||
- netfilter: nf_tables: fix use-after-free in nf_tables_addchain() (CKI Backport Bot) [RHEL-153269] {CVE-2026-23231}
|
||||
- ice: Fix PTP NULL pointer dereference during VSI rebuild (CKI Backport Bot) [RHEL-150245] {CVE-2026-23210}
|
||||
- netfilter: nf_tables: fix inverted genmask check in nft_map_catchall_activate() (CKI Backport Bot) [RHEL-149748] {CVE-2026-23111}
|
||||
Resolves: RHEL-149748, RHEL-150245, RHEL-153269, RHEL-154537
|
||||
|
||||
* Thu Mar 26 2026 CKI KWF Bot <cki-ci-bot+kwf-gitlab-com@redhat.com> [5.14.0-611.46.1.el9_7]
|
||||
- ice: fix page leak for zero-size Rx descriptors (CKI Backport Bot) [RHEL-154094]
|
||||
- net: mana: Reduce waiting time if HWC not responding (Maxim Levitsky) [RHEL-92243]
|
||||
Resolves: RHEL-154094, RHEL-92243
|
||||
|
||||
* Sat Mar 21 2026 CKI KWF Bot <cki-ci-bot+kwf-gitlab-com@redhat.com> [5.14.0-611.45.1.el9_7]
|
||||
- net/sched: cls_u32: use skb_header_pointer_careful() (Paolo Abeni) [RHEL-150403] {CVE-2026-23204}
|
||||
- net: add skb_header_pointer_careful() helper (Paolo Abeni) [RHEL-150403]
|
||||
|
||||
Loading…
Reference in New Issue
Block a user