Import of kernel-5.14.0-570.33.2.el9_6

This commit is contained in:
eabdullin 2025-09-05 14:43:16 +00:00
parent f7f44ba607
commit e4e18e9661
22 changed files with 133 additions and 75 deletions

View File

@ -4540,7 +4540,7 @@
'1' force enabled
'x' unchanged
For example,
pci=config_acs=10x
pci=config_acs=10x@pci:0:0
would configure all devices that support
ACS to enable P2P Request Redirect, disable
Translation Blocking, and leave Source

View File

@ -12,7 +12,7 @@ RHEL_MINOR = 6
#
# Use this spot to avoid future merge conflicts.
# Do not trim this comment.
RHEL_RELEASE = 570.32.1
RHEL_RELEASE = 570.33.2
#
# ZSTREAM

View File

@ -263,10 +263,6 @@ static int hash_accept(struct socket *sock, struct socket *newsock,
return err;
err = crypto_ahash_import(&ctx2->req, state);
if (err) {
sock_orphan(sk2);
sock_put(sk2);
}
return err;
}

View File

@ -11267,6 +11267,26 @@ hwrm_phy_qcaps_exit:
return rc;
}
static void bnxt_hwrm_mac_qcaps(struct bnxt *bp)
{
struct hwrm_port_mac_qcaps_output *resp;
struct hwrm_port_mac_qcaps_input *req;
int rc;
if (bp->hwrm_spec_code < 0x10a03)
return;
rc = hwrm_req_init(bp, req, HWRM_PORT_MAC_QCAPS);
if (rc)
return;
resp = hwrm_req_hold(bp, req);
rc = hwrm_req_send_silent(bp, req);
if (!rc)
bp->mac_flags = resp->flags;
hwrm_req_drop(bp, req);
}
static bool bnxt_support_dropped(u16 advertising, u16 supported)
{
u16 diff = advertising ^ supported;
@ -15389,6 +15409,10 @@ static int bnxt_probe_phy(struct bnxt *bp, bool fw_dflt)
bp->dev->priv_flags |= IFF_SUPP_NOFCS;
else
bp->dev->priv_flags &= ~IFF_SUPP_NOFCS;
bp->mac_flags = 0;
bnxt_hwrm_mac_qcaps(bp);
if (!fw_dflt)
return 0;

View File

@ -2614,6 +2614,11 @@ struct bnxt {
#define BNXT_PHY_FL_BANK_SEL (PORT_PHY_QCAPS_RESP_FLAGS2_BANK_ADDR_SUPPORTED << 8)
#define BNXT_PHY_FL_SPEEDS2 (PORT_PHY_QCAPS_RESP_FLAGS2_SPEEDS2_SUPPORTED << 8)
/* copied from flags in hwrm_port_mac_qcaps_output */
u8 mac_flags;
#define BNXT_MAC_FL_NO_MAC_LPBK \
PORT_MAC_QCAPS_RESP_FLAGS_LOCAL_LPBK_NOT_SUPPORTED
u8 num_tests;
struct bnxt_test_info *test_info;

View File

@ -4894,35 +4894,44 @@ static void bnxt_self_test(struct net_device *dev, struct ethtool_test *etest,
bnxt_close_nic(bp, true, false);
bnxt_run_fw_tests(bp, test_mask, &test_results);
buf[BNXT_MACLPBK_TEST_IDX] = 1;
bnxt_hwrm_mac_loopback(bp, true);
msleep(250);
rc = bnxt_half_open_nic(bp);
if (rc) {
bnxt_hwrm_mac_loopback(bp, false);
etest->flags |= ETH_TEST_FL_FAILED;
return;
}
buf[BNXT_MACLPBK_TEST_IDX] = 1;
if (bp->mac_flags & BNXT_MAC_FL_NO_MAC_LPBK)
goto skip_mac_loopback;
bnxt_hwrm_mac_loopback(bp, true);
msleep(250);
if (bnxt_run_loopback(bp))
etest->flags |= ETH_TEST_FL_FAILED;
else
buf[BNXT_MACLPBK_TEST_IDX] = 0;
bnxt_hwrm_mac_loopback(bp, false);
skip_mac_loopback:
buf[BNXT_PHYLPBK_TEST_IDX] = 1;
if (bp->phy_flags & BNXT_PHY_FL_NO_PHY_LPBK)
goto skip_phy_loopback;
bnxt_hwrm_phy_loopback(bp, true, false);
msleep(1000);
if (bnxt_run_loopback(bp)) {
buf[BNXT_PHYLPBK_TEST_IDX] = 1;
if (bnxt_run_loopback(bp))
etest->flags |= ETH_TEST_FL_FAILED;
}
else
buf[BNXT_PHYLPBK_TEST_IDX] = 0;
skip_phy_loopback:
buf[BNXT_EXTLPBK_TEST_IDX] = 1;
if (do_ext_lpbk) {
etest->flags |= ETH_TEST_FL_EXTERNAL_LB_DONE;
bnxt_hwrm_phy_loopback(bp, true, true);
msleep(1000);
if (bnxt_run_loopback(bp)) {
buf[BNXT_EXTLPBK_TEST_IDX] = 1;
if (bnxt_run_loopback(bp))
etest->flags |= ETH_TEST_FL_FAILED;
}
else
buf[BNXT_EXTLPBK_TEST_IDX] = 0;
}
bnxt_hwrm_phy_loopback(bp, false, false);
bnxt_half_close_nic(bp);

View File

@ -1768,6 +1768,7 @@ static int ath12k_dp_rx_msdu_coalesce(struct ath12k *ar,
struct hal_rx_desc *ldesc;
int space_extra, rem_len, buf_len;
u32 hal_rx_desc_sz = ar->ab->hal.hal_desc_sz;
bool is_continuation;
/* As the msdu is spread across multiple rx buffers,
* find the offset to the start of msdu for computing
@ -1816,7 +1817,8 @@ static int ath12k_dp_rx_msdu_coalesce(struct ath12k *ar,
rem_len = msdu_len - buf_first_len;
while ((skb = __skb_dequeue(msdu_list)) != NULL && rem_len > 0) {
rxcb = ATH12K_SKB_RXCB(skb);
if (rxcb->is_continuation)
is_continuation = rxcb->is_continuation;
if (is_continuation)
buf_len = DP_RX_BUFFER_SIZE - hal_rx_desc_sz;
else
buf_len = rem_len;
@ -1834,7 +1836,7 @@ static int ath12k_dp_rx_msdu_coalesce(struct ath12k *ar,
dev_kfree_skb_any(skb);
rem_len -= buf_len;
if (!rxcb->is_continuation)
if (!is_continuation)
break;
}

View File

@ -955,8 +955,10 @@ struct pci_acs {
};
static void __pci_config_acs(struct pci_dev *dev, struct pci_acs *caps,
const char *p, u16 mask, u16 flags)
const char *p, const u16 acs_mask, const u16 acs_flags)
{
u16 flags = acs_flags;
u16 mask = acs_mask;
char *delimit;
int ret = 0;
@ -964,7 +966,7 @@ static void __pci_config_acs(struct pci_dev *dev, struct pci_acs *caps,
return;
while (*p) {
if (!mask) {
if (!acs_mask) {
/* Check for ACS flags */
delimit = strstr(p, "@");
if (delimit) {
@ -972,6 +974,8 @@ static void __pci_config_acs(struct pci_dev *dev, struct pci_acs *caps,
u32 shift = 0;
end = delimit - p - 1;
mask = 0;
flags = 0;
while (end > -1) {
if (*(p + end) == '0') {
@ -1028,10 +1032,14 @@ static void __pci_config_acs(struct pci_dev *dev, struct pci_acs *caps,
pci_dbg(dev, "ACS mask = %#06x\n", mask);
pci_dbg(dev, "ACS flags = %#06x\n", flags);
pci_dbg(dev, "ACS control = %#06x\n", caps->ctrl);
pci_dbg(dev, "ACS fw_ctrl = %#06x\n", caps->fw_ctrl);
/* If mask is 0 then we copy the bit from the firmware setting. */
caps->ctrl = (caps->ctrl & ~mask) | (caps->fw_ctrl & mask);
caps->ctrl |= flags;
/*
* For mask bits that are 0, copy them from the firmware setting
* and apply flags for all the mask bits that are 1.
*/
caps->ctrl = (caps->fw_ctrl & ~mask) | (flags & mask);
pci_info(dev, "Configured ACS to %#06x\n", caps->ctrl);
}
@ -1067,8 +1075,15 @@ static void pci_std_enable_acs(struct pci_dev *dev, struct pci_acs *caps)
static void pci_enable_acs(struct pci_dev *dev)
{
struct pci_acs caps;
bool enable_acs = false;
int pos;
/* If an iommu is present we start with kernel default caps */
if (pci_acs_enable) {
if (pci_dev_specific_enable_acs(dev))
enable_acs = true;
}
pos = dev->acs_cap;
if (!pos)
return;
@ -1077,11 +1092,8 @@ static void pci_enable_acs(struct pci_dev *dev)
pci_read_config_word(dev, pos + PCI_ACS_CTRL, &caps.ctrl);
caps.fw_ctrl = caps.ctrl;
/* If an iommu is present we start with kernel default caps */
if (pci_acs_enable) {
if (pci_dev_specific_enable_acs(dev))
pci_std_enable_acs(dev, &caps);
}
if (enable_acs)
pci_std_enable_acs(dev, &caps);
/*
* Always apply caps from the command line, even if there is no iommu.
@ -1283,9 +1295,7 @@ static int pci_dev_wait(struct pci_dev *dev, char *reset_type, int timeout)
{
int delay = 1;
bool retrain = false;
struct pci_dev *root, *bridge;
root = pcie_find_root_port(dev);
struct pci_dev *bridge;
if (pci_is_pcie(dev)) {
bridge = pci_upstream_bridge(dev);
@ -1294,23 +1304,16 @@ static int pci_dev_wait(struct pci_dev *dev, char *reset_type, int timeout)
}
/*
* The caller has already waited long enough after a reset that the
* device should respond to config requests, but it may respond
* with Request Retry Status (RRS) if it needs more time to
* initialize.
* After reset, the device should not silently discard config
* requests, but it may still indicate that it needs more time by
* responding to them with CRS completions. The Root Port will
* generally synthesize ~0 (PCI_ERROR_RESPONSE) data to complete
* the read (except when CRS SV is enabled and the read was for the
* Vendor ID; in that case it synthesizes 0x0001 data).
*
* If the device is below a Root Port with Configuration RRS
* Software Visibility enabled, reading the Vendor ID returns a
* special data value if the device responded with RRS. Read the
* Vendor ID until we get non-RRS status.
*
* If there's no Root Port or Configuration RRS Software Visibility
* is not enabled, the device may still respond with RRS, but
* hardware may retry the config request. If no retries receive
* Successful Completion, hardware generally synthesizes ~0
* (PCI_ERROR_RESPONSE) data to complete the read. Reading Vendor
* ID for VFs and non-existent devices also returns ~0, so read the
* Command register until it returns something other than ~0.
* Wait for the device to return a non-CRS completion. Read the
* Command register instead of Vendor ID so we don't have to
* contend with the CRS SV value.
*/
for (;;) {
u32 id;
@ -1320,15 +1323,9 @@ static int pci_dev_wait(struct pci_dev *dev, char *reset_type, int timeout)
return -ENOTTY;
}
if (root && root->config_crs_sv) {
pci_read_config_dword(dev, PCI_VENDOR_ID, &id);
if (!pci_bus_crs_vendor_id(id))
break;
} else {
pci_read_config_dword(dev, PCI_COMMAND, &id);
if (!PCI_POSSIBLE_ERROR(id))
break;
}
pci_read_config_dword(dev, PCI_COMMAND, &id);
if (!PCI_POSSIBLE_ERROR(id))
break;
if (delay > timeout) {
pci_warn(dev, "not ready %dms after %s; giving up\n",

View File

@ -124,11 +124,6 @@ bool pci_bridge_d3_possible(struct pci_dev *dev);
void pci_bridge_d3_update(struct pci_dev *dev);
int pci_bridge_wait_for_secondary_bus(struct pci_dev *dev, char *reset_type);
static inline bool pci_bus_crs_vendor_id(u32 l)
{
return (l & 0xffff) == PCI_VENDOR_ID_PCI_SIG;
}
static inline void pci_wakeup_event(struct pci_dev *dev)
{
/* Wait 100 ms before the system can be put into a sleep state. */

View File

@ -1252,11 +1252,9 @@ static void pci_enable_crs(struct pci_dev *pdev)
/* Enable CRS Software Visibility if supported */
pcie_capability_read_word(pdev, PCI_EXP_RTCAP, &root_cap);
if (root_cap & PCI_EXP_RTCAP_CRSVIS) {
if (root_cap & PCI_EXP_RTCAP_CRSVIS)
pcie_capability_set_word(pdev, PCI_EXP_RTCTL,
PCI_EXP_RTCTL_CRSSVE);
pdev->config_crs_sv = 1;
}
}
static unsigned int pci_scan_child_bus_extend(struct pci_bus *bus,
@ -2388,6 +2386,11 @@ struct pci_dev *pci_alloc_dev(struct pci_bus *bus)
}
EXPORT_SYMBOL(pci_alloc_dev);
static bool pci_bus_crs_vendor_id(u32 l)
{
return (l & 0xffff) == PCI_VENDOR_ID_PCI_SIG;
}
static bool pci_bus_wait_crs(struct pci_bus *bus, int devfn, u32 *l,
int timeout)
{

View File

@ -2105,8 +2105,7 @@ pci_root_bus_distribute_available_resources(struct pci_bus *bus,
* in case of root bus.
*/
if (bridge && pci_bridge_resources_not_assigned(dev))
pci_bridge_distribute_available_resources(bridge,
add_list);
pci_bridge_distribute_available_resources(dev, add_list);
else
pci_root_bus_distribute_available_resources(b, add_list);
}

View File

@ -270,7 +270,7 @@ else
else
# This value is used by the dist[g]-targets. Changing this value has significant
# consequences for all of RHEL kernel engineering.
BUILD_TARGET:=rhel-$(RHEL_MAJOR).$(RHEL_MINOR).0-test-pesign
BUILD_TARGET:=rhel-$(RHEL_MAJOR).$(RHEL_MINOR).0-z-test-pesign
endif
endif
ifeq ("$(DIST)", ".eln)

View File

@ -1,3 +1,31 @@
* Thu Aug 07 2025 Patrick Talbert <ptalbert@redhat.com> [5.14.0-570.33.2.el9_6]
- Revert "sch_htb: make htb_qlen_notify() idempotent" (Patrick Talbert) [RHEL-108138]
- Revert "sch_drr: make drr_qlen_notify() idempotent" (Patrick Talbert) [RHEL-108138]
- Revert "sch_qfq: make qfq_qlen_notify() idempotent" (Patrick Talbert) [RHEL-108138]
- Revert "codel: remove sch->q.qlen check before qdisc_tree_reduce_backlog()" (Patrick Talbert) [RHEL-108138]
- Revert "sch_htb: make htb_deactivate() idempotent" (Patrick Talbert) [RHEL-108138]
- Revert "net/sched: Always pass notifications when child class becomes empty" (Patrick Talbert) [RHEL-108138]
Resolves: RHEL-108138
* Sat Aug 02 2025 CKI KWF Bot <cki-ci-bot+kwf-gitlab-com@redhat.com> [5.14.0-570.33.1.el9_6]
- net/sched: Always pass notifications when child class becomes empty (CKI Backport Bot) [RHEL-93387] {CVE-2025-38350}
- sch_htb: make htb_deactivate() idempotent (CKI Backport Bot) [RHEL-93387] {CVE-2025-38350}
- codel: remove sch->q.qlen check before qdisc_tree_reduce_backlog() (CKI Backport Bot) [RHEL-93387] {CVE-2025-38350}
- sch_qfq: make qfq_qlen_notify() idempotent (CKI Backport Bot) [RHEL-93387] {CVE-2025-38350}
- sch_drr: make drr_qlen_notify() idempotent (CKI Backport Bot) [RHEL-93387] {CVE-2025-38350}
- sch_htb: make htb_qlen_notify() idempotent (CKI Backport Bot) [RHEL-93387] {CVE-2025-38350}
- redhat: update BUILD_TARGET to rhel-9.6.0-z-test-pesign (Jan Stancek)
- PCI: Use downstream bridges for distributing resources (Jennifer Berringer) [RHEL-102666]
- PCI/ACS: Fix 'pci=config_acs=' parameter (Charles Mirabile) [RHEL-102652]
- PCI: Fix pci_enable_acs() support for the ACS quirks (Charles Mirabile) [RHEL-102652]
- Documentation: Fix pci=config_acs= example (Charles Mirabile) [RHEL-102652]
- Revert "PCI: Wait for device readiness with Configuration RRS" (John W. Linville) [RHEL-94414]
- bnxt_en: Skip MAC loopback selftest if it is unsupported by FW (CKI Backport Bot) [RHEL-82564]
- bnxt_en: Skip PHY loopback ethtool selftest if unsupported by FW (CKI Backport Bot) [RHEL-82564]
- wifi: ath12k: fix invalid access to memory (CKI Backport Bot) [RHEL-103219] {CVE-2025-38292}
- crypto: algif_hash - fix double free in hash_accept (CKI Backport Bot) [RHEL-102235] {CVE-2025-38079}
Resolves: RHEL-102235, RHEL-102652, RHEL-102666, RHEL-103219, RHEL-82564, RHEL-93387, RHEL-94414
* Mon Jul 28 2025 CKI KWF Bot <cki-ci-bot+kwf-gitlab-com@redhat.com> [5.14.0-570.32.1.el9_6]
- net_sched: hfsc: Address reentrant enqueue adding class to eltree twice (Davide Caratti) [RHEL-97522] {CVE-2025-38001 CVE-2025-37890}
- sch_hfsc: Fix qlen accounting bug when using peek in hfsc_enqueue() (Davide Caratti) [RHEL-97522] {CVE-2025-38000}

View File

@ -8,7 +8,7 @@ BUILD=6
BUILDOPTS=+kabidupchk
BUILD_FLAGS=
BUILD_PROFILE=
BUILD_TARGET=rhel-9.6.0-test-pesign
BUILD_TARGET=rhel-9.6.0-z-test-pesign
BUMP_RELEASE=yes
CROSS_DISABLED_SUBPACKAGES=--without bpftool --without perf --without tools
CROSS_PACKAGE_LIST=cross-binutils-common cross-gcc-common diffstat glibc-static ncurses-devel numactl-devel rng-tools binutils-aarch64-linux-gnu gcc-aarch64-linux-gnu binutils-ppc64le-linux-gnu gcc-ppc64le-linux-gnu binutils-s390x-linux-gnu gcc-s390x-linux-gnu

View File

@ -8,7 +8,7 @@ BUILD=6
BUILDOPTS=+kabidupchk
BUILD_FLAGS=
BUILD_PROFILE=
BUILD_TARGET=rhel-9.6.0-test-pesign
BUILD_TARGET=rhel-9.6.0-z-test-pesign
BUMP_RELEASE=yes
CROSS_DISABLED_SUBPACKAGES=--without bpftool --without perf --without tools
CROSS_PACKAGE_LIST=cross-binutils-common cross-gcc-common diffstat glibc-static ncurses-devel numactl-devel rng-tools binutils-aarch64-linux-gnu gcc-aarch64-linux-gnu binutils-ppc64le-linux-gnu gcc-ppc64le-linux-gnu binutils-s390x-linux-gnu gcc-s390x-linux-gnu

View File

@ -8,7 +8,7 @@ BUILD=6
BUILDOPTS=+kabidupchk
BUILD_FLAGS=
BUILD_PROFILE=
BUILD_TARGET=rhel-9.6.0-test-pesign
BUILD_TARGET=rhel-9.6.0-z-test-pesign
BUMP_RELEASE=yes
CROSS_DISABLED_SUBPACKAGES=--without bpftool --without perf --without tools
CROSS_PACKAGE_LIST=cross-binutils-common cross-gcc-common diffstat glibc-static ncurses-devel numactl-devel rng-tools binutils-aarch64-linux-gnu gcc-aarch64-linux-gnu binutils-ppc64le-linux-gnu gcc-ppc64le-linux-gnu binutils-s390x-linux-gnu gcc-s390x-linux-gnu

View File

@ -8,7 +8,7 @@ BUILD=6
BUILDOPTS=+kabidupchk
BUILD_FLAGS=
BUILD_PROFILE=
BUILD_TARGET=rhel-9.6.0-test-pesign
BUILD_TARGET=rhel-9.6.0-z-test-pesign
BUMP_RELEASE=yes
CROSS_DISABLED_SUBPACKAGES=--without bpftool --without perf --without tools
CROSS_PACKAGE_LIST=cross-binutils-common cross-gcc-common diffstat glibc-static ncurses-devel numactl-devel rng-tools binutils-aarch64-linux-gnu gcc-aarch64-linux-gnu binutils-ppc64le-linux-gnu gcc-ppc64le-linux-gnu binutils-s390x-linux-gnu gcc-s390x-linux-gnu

View File

@ -8,7 +8,7 @@ BUILD=6
BUILDOPTS=+kabidupchk
BUILD_FLAGS=
BUILD_PROFILE=
BUILD_TARGET=rhel-9.6.0-test-pesign
BUILD_TARGET=rhel-9.6.0-z-test-pesign
BUMP_RELEASE=yes
CROSS_DISABLED_SUBPACKAGES=--without bpftool --without perf --without tools
CROSS_PACKAGE_LIST=cross-binutils-common cross-gcc-common diffstat glibc-static ncurses-devel numactl-devel rng-tools binutils-aarch64-linux-gnu gcc-aarch64-linux-gnu binutils-ppc64le-linux-gnu gcc-ppc64le-linux-gnu binutils-s390x-linux-gnu gcc-s390x-linux-gnu

View File

@ -8,7 +8,7 @@ BUILD=6
BUILDOPTS=+kabidupchk
BUILD_FLAGS=
BUILD_PROFILE=
BUILD_TARGET=rhel-9.6.0-test-pesign
BUILD_TARGET=rhel-9.6.0-z-test-pesign
BUMP_RELEASE=yes
CROSS_DISABLED_SUBPACKAGES=--without bpftool --without perf --without tools
CROSS_PACKAGE_LIST=cross-binutils-common cross-gcc-common diffstat glibc-static ncurses-devel numactl-devel rng-tools binutils-aarch64-linux-gnu gcc-aarch64-linux-gnu binutils-ppc64le-linux-gnu gcc-ppc64le-linux-gnu binutils-s390x-linux-gnu gcc-s390x-linux-gnu

View File

@ -8,7 +8,7 @@ BUILD=6
BUILDOPTS=+kabidupchk
BUILD_FLAGS=
BUILD_PROFILE=
BUILD_TARGET=rhel-9.6.0-test-pesign
BUILD_TARGET=rhel-9.6.0-z-test-pesign
BUMP_RELEASE=yes
CROSS_DISABLED_SUBPACKAGES=--without bpftool --without perf --without tools
CROSS_PACKAGE_LIST=cross-binutils-common cross-gcc-common diffstat glibc-static ncurses-devel numactl-devel rng-tools binutils-aarch64-linux-gnu gcc-aarch64-linux-gnu binutils-ppc64le-linux-gnu gcc-ppc64le-linux-gnu binutils-s390x-linux-gnu gcc-s390x-linux-gnu

View File

@ -8,7 +8,7 @@ BUILD=6
BUILDOPTS=+kabidupchk
BUILD_FLAGS=
BUILD_PROFILE=
BUILD_TARGET=rhel-9.6.0-test-pesign
BUILD_TARGET=rhel-9.6.0-z-test-pesign
BUMP_RELEASE=yes
CROSS_DISABLED_SUBPACKAGES=--without bpftool --without perf --without tools
CROSS_PACKAGE_LIST=cross-binutils-common cross-gcc-common diffstat glibc-static ncurses-devel numactl-devel rng-tools binutils-aarch64-linux-gnu gcc-aarch64-linux-gnu binutils-ppc64le-linux-gnu gcc-ppc64le-linux-gnu binutils-s390x-linux-gnu gcc-s390x-linux-gnu