Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
e55463f
KVM: x86/hyper-v: Skip non-canonical addresses during PV TLB flush
PlaidCat Oct 11, 2025
1cc4189
security/keys: fix slab-out-of-bounds in key_task_permission
PlaidCat Oct 11, 2025
bf3df34
RDMA/cxgb4: Notify rdma stack for IB_EVENT_QP_LAST_WQE_REACHED event
PlaidCat Oct 11, 2025
38c43d1
wifi: ath12k: Decrement TID on RX peer frag setup error handling
PlaidCat Oct 11, 2025
eed76ca
Rebuild rocky9_6 with kernel-5.14.0-570.51.1.el9_6
PlaidCat Oct 11, 2025
0572ad2
smb: client: allow parsing zero-length AV pairs
PlaidCat Oct 14, 2025
d76438f
smb: client: fix session setup against servers that require SPN
PlaidCat Oct 14, 2025
537e7ab
eventpoll: Fix semi-unbounded recursion
PlaidCat Oct 14, 2025
2c0d151
HID: simplify snto32()
PlaidCat Oct 14, 2025
4a7227b
HID: stop exporting hid_snto32()
PlaidCat Oct 14, 2025
86abd3c
HID: core: Harden s32ton() against conversion to 0 bits
PlaidCat Oct 14, 2025
7c9f9f1
ALSA: usb-audio: Validate UAC3 cluster segment descriptors
PlaidCat Oct 14, 2025
3876cf4
ALSA: usb-audio: Fix size validation in convert_chmap_v3()
PlaidCat Oct 14, 2025
9a69cfb
ALSA: usb-audio: Validate UAC3 power domain descriptors, too
PlaidCat Oct 14, 2025
8450311
net: mana: Fix RX buf alloc_size alignment and atomic op panic
PlaidCat Oct 14, 2025
080058f
net: mana: Fix doorbell out of order violation and avoid unnecessary …
PlaidCat Oct 14, 2025
150971d
RDMA/mana_ib: use the correct page table index based on hardware page…
PlaidCat Oct 14, 2025
2c39d0e
RDMA/mana_ib: use the correct page size for mapping user-mode doorbel…
PlaidCat Oct 14, 2025
1589e35
hv_netvsc: Link queues to NAPIs
PlaidCat Oct 14, 2025
e91d080
RDMA/mana_ib: Allocate PAGE aligned doorbell index
PlaidCat Oct 14, 2025
8d87023
net: mana: Support holes in device list reply msg
PlaidCat Oct 14, 2025
ebdd988
RDMA/mana_ib: Query feature_flags bitmask from FW
PlaidCat Oct 14, 2025
a50182f
RDMA/mana_ib: request error CQEs when supported
PlaidCat Oct 14, 2025
f886aeb
net: mana: Allow tso_max_size to go up-to GSO_MAX_SIZE
PlaidCat Oct 14, 2025
a3ca314
hv_netvsc: Use VF's tso_max_size value when data path is VF
PlaidCat Oct 14, 2025
ab0e695
net: mana: Add debug logs in MANA network driver
PlaidCat Oct 14, 2025
fc00b36
RDMA/mana_ib: Ensure variable err is initialized
PlaidCat Oct 14, 2025
644c3f7
net: mana: Change the function signature of mana_get_primary_netdev_rcu
PlaidCat Oct 14, 2025
258114f
RDMA/mana_ib: Handle net event for pointing to the current netdev
PlaidCat Oct 14, 2025
a8781f1
net: mana: Add metadata support for xdp mode
PlaidCat Oct 14, 2025
e8db37b
net: mana: Switch to page pool for jumbo frames
PlaidCat Oct 14, 2025
3d64314
net: mana: Add support for Multi Vports on Bare metal
PlaidCat Oct 14, 2025
b08c46d
net: mana: Record doorbell physical address in PF mode
PlaidCat Oct 14, 2025
f01be49
hv_netvsc: Set VF priv_flags to IFF_NO_ADDRCONF before open to preven…
PlaidCat Oct 14, 2025
5e9c277
net: mana: Expose additional hardware counters for drop and TC via et…
PlaidCat Oct 14, 2025
2132fca
net: mana: Add handler for hardware servicing events
PlaidCat Oct 14, 2025
179040e
net: mana: Handle unsupported HWC commands
PlaidCat Oct 14, 2025
b2cbbf3
net: mana: Set tx_packets to post gso processing packet count
PlaidCat Oct 14, 2025
eb0235e
net: mana: Handle Reset Request from MANA NIC
PlaidCat Oct 14, 2025
a16ad33
RDMA/mana_ib: Fix DSCP value in modify QP
PlaidCat Oct 14, 2025
a870ed1
hv_netvsc: Fix panic during namespace deletion with VF
PlaidCat Oct 14, 2025
7ac8020
crypto: seqiv - Handle EBUSY correctly
PlaidCat Oct 14, 2025
c18abab
Rebuild rocky9_6 with kernel-5.14.0-570.52.1.el9_6
PlaidCat Oct 14, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
File renamed without changes.
2 changes: 1 addition & 1 deletion Makefile.rhelver
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ RHEL_MINOR = 6
#
# Use this spot to avoid future merge conflicts.
# Do not trim this comment.
RHEL_RELEASE = 570.49.1
RHEL_RELEASE = 570.52.1

#
# ZSTREAM
Expand Down
3 changes: 3 additions & 0 deletions arch/x86/kvm/hyperv.c
Original file line number Diff line number Diff line change
Expand Up @@ -1980,6 +1980,9 @@ int kvm_hv_vcpu_flush_tlb(struct kvm_vcpu *vcpu)
if (entries[i] == KVM_HV_TLB_FLUSHALL_ENTRY)
goto out_flush_all;

if (is_noncanonical_address(entries[i], vcpu))
continue;

/*
* Lower 12 bits of 'address' encode the number of additional
* pages to flush.
Expand Down
18 changes: 18 additions & 0 deletions ciq/ciq_backports/kernel-5.14.0-570.51.1.el9_6/rebuild.details.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
Rebuild_History BUILDABLE
Rebuilding Kernel from rpm changelog with Fuzz Limit: 87.50%
Number of commits in upstream range v5.14~1..kernel-mainline: 324124
Number of commits in rpm: 6
Number of commits matched with upstream: 4 (66.67%)
Number of commits in upstream but not in rpm: 324120
Number of commits NOT found in upstream: 2 (33.33%)

Rebuilding Kernel on Branch rocky9_6_rebuild_kernel-5.14.0-570.51.1.el9_6 for kernel-5.14.0-570.51.1.el9_6
Clean Cherry Picks: 4 (100.00%)
Empty Cherry Picks: 0 (0.00%)
_______________________________

__EMPTY COMMITS__________________________

__CHANGES NOT IN UPSTREAM________________
Porting to Rocky Linux 9, debranding and Rocky branding'
Ensure aarch64 kernel is not compressed'
127 changes: 127 additions & 0 deletions ciq/ciq_backports/kernel-5.14.0-570.52.1.el9_6/a8445cfe.failed
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
net: mana: Change the function signature of mana_get_primary_netdev_rcu

jira LE-4385
Rebuild_History Non-Buildable kernel-5.14.0-570.52.1.el9_6
commit-author Long Li <[email protected]>
commit a8445cfec101c42e9d64cdb2dac13973b22c205c
Empty-Commit: Cherry-Pick Conflicts during history rebuild.
Will be included in final tarball splat. Ref for failed cherry-pick at:
ciq/ciq_backports/kernel-5.14.0-570.52.1.el9_6/a8445cfe.failed

Change mana_get_primary_netdev_rcu() to mana_get_primary_netdev(), and
return the ndev with refcount held. The caller is responsible for dropping
the refcount.

Also drop the check for IFF_SLAVE as it is not necessary if the upper
device is present.

Signed-off-by: Long Li <[email protected]>
Link: https://patch.msgid.link/[email protected]
Signed-off-by: Leon Romanovsky <[email protected]>
(cherry picked from commit a8445cfec101c42e9d64cdb2dac13973b22c205c)
Signed-off-by: Jonathan Maple <[email protected]>

# Conflicts:
# drivers/infiniband/hw/mana/mana_ib.h
# drivers/net/ethernet/microsoft/mana/mana_en.c
diff --cc drivers/infiniband/hw/mana/mana_ib.h
index c3c9dc1c8d8b,81a7e7474462..000000000000
--- a/drivers/infiniband/hw/mana/mana_ib.h
+++ b/drivers/infiniband/hw/mana/mana_ib.h
@@@ -65,6 -77,8 +65,11 @@@ struct mana_ib_dev
struct gdma_queue **eqs;
struct xarray qp_table_wq;
struct mana_ib_adapter_caps adapter_caps;
++<<<<<<< HEAD
++=======
+ struct dma_pool *av_pool;
+ netdevice_tracker dev_tracker;
++>>>>>>> a8445cfec101 (net: mana: Change the function signature of mana_get_primary_netdev_rcu)
};

struct mana_ib_wq {
diff --cc drivers/net/ethernet/microsoft/mana/mana_en.c
index 2f82b39f3002,4e870b11f946..000000000000
--- a/drivers/net/ethernet/microsoft/mana/mana_en.c
+++ b/drivers/net/ethernet/microsoft/mana/mana_en.c
@@@ -3170,24 -3129,29 +3170,34 @@@ out
gd->driver_data = NULL;
gd->gdma_context = NULL;
kfree(ac);
+ dev_dbg(dev, "%s succeeded\n", __func__);
}

- struct net_device *mana_get_primary_netdev_rcu(struct mana_context *ac, u32 port_index)
+ struct net_device *mana_get_primary_netdev(struct mana_context *ac,
+ u32 port_index,
+ netdevice_tracker *tracker)
{
struct net_device *ndev;

if (port_index >= ac->num_ports)
return NULL;

- /* When mana is used in netvsc, the upper netdevice should be returned. */
- if (ac->ports[port_index]->flags & IFF_SLAVE)
- ndev = netdev_master_upper_dev_get_rcu(ac->ports[port_index]);
- else
+ rcu_read_lock();
+
+ /* If mana is used in netvsc, the upper netdevice should be returned. */
+ ndev = netdev_master_upper_dev_get_rcu(ac->ports[port_index]);
+
+ /* If there is no upper device, use the parent Ethernet device */
+ if (!ndev)
ndev = ac->ports[port_index];

+ netdev_hold(ndev, tracker, GFP_ATOMIC);
+ rcu_read_unlock();
+
return ndev;
}
++<<<<<<< HEAD
+EXPORT_SYMBOL_NS(mana_get_primary_netdev_rcu, NET_MANA);
++=======
+ EXPORT_SYMBOL_NS(mana_get_primary_netdev, "NET_MANA");
++>>>>>>> a8445cfec101 (net: mana: Change the function signature of mana_get_primary_netdev_rcu)
diff --git a/drivers/infiniband/hw/mana/device.c b/drivers/infiniband/hw/mana/device.c
index 50437272b7b9..16442d53ec8e 100644
--- a/drivers/infiniband/hw/mana/device.c
+++ b/drivers/infiniband/hw/mana/device.c
@@ -85,10 +85,8 @@ static int mana_ib_probe(struct auxiliary_device *adev,
dev->ib_dev.num_comp_vectors = mdev->gdma_context->max_num_queues;
dev->ib_dev.dev.parent = mdev->gdma_context->dev;

- rcu_read_lock(); /* required to get primary netdev */
- ndev = mana_get_primary_netdev_rcu(mc, 0);
+ ndev = mana_get_primary_netdev(mc, 0, &dev->dev_tracker);
if (!ndev) {
- rcu_read_unlock();
ret = -ENODEV;
ibdev_err(&dev->ib_dev, "Failed to get netdev for IB port 1");
goto free_ib_device;
@@ -96,7 +94,8 @@ static int mana_ib_probe(struct auxiliary_device *adev,
ether_addr_copy(mac_addr, ndev->dev_addr);
addrconf_addr_eui48((u8 *)&dev->ib_dev.node_guid, ndev->dev_addr);
ret = ib_device_set_netdev(&dev->ib_dev, ndev, 1);
- rcu_read_unlock();
+ /* mana_get_primary_netdev() returns ndev with refcount held */
+ netdev_put(ndev, &dev->dev_tracker);
if (ret) {
ibdev_err(&dev->ib_dev, "Failed to set ib netdev, ret %d", ret);
goto free_ib_device;
* Unmerged path drivers/infiniband/hw/mana/mana_ib.h
* Unmerged path drivers/net/ethernet/microsoft/mana/mana_en.c
diff --git a/include/net/mana/mana.h b/include/net/mana/mana.h
index 301785a934b2..5283276c2def 100644
--- a/include/net/mana/mana.h
+++ b/include/net/mana/mana.h
@@ -825,5 +825,7 @@ int mana_cfg_vport(struct mana_port_context *apc, u32 protection_dom_id,
u32 doorbell_pg_id);
void mana_uncfg_vport(struct mana_port_context *apc);

-struct net_device *mana_get_primary_netdev_rcu(struct mana_context *ac, u32 port_index);
+struct net_device *mana_get_primary_netdev(struct mana_context *ac,
+ u32 port_index,
+ netdevice_tracker *tracker);
#endif /* _MANA_H */
109 changes: 109 additions & 0 deletions ciq/ciq_backports/kernel-5.14.0-570.52.1.el9_6/bee35b71.failed
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
RDMA/mana_ib: Handle net event for pointing to the current netdev

jira LE-4385
Rebuild_History Non-Buildable kernel-5.14.0-570.52.1.el9_6
commit-author Long Li <[email protected]>
commit bee35b7161aaaed9831e2f14876c374b9c566952
Empty-Commit: Cherry-Pick Conflicts during history rebuild.
Will be included in final tarball splat. Ref for failed cherry-pick at:
ciq/ciq_backports/kernel-5.14.0-570.52.1.el9_6/bee35b71.failed

When running under Hyper-V, the master device to the RDMA device is always
bonded to this RDMA device. This is not user-configurable.

The master device can be unbind/bind from the kernel. During those events,
the RDMA device should set to the current netdev to reflect the change of
master device from those events.

Signed-off-by: Long Li <[email protected]>
Link: https://patch.msgid.link/[email protected]
Signed-off-by: Leon Romanovsky <[email protected]>
(cherry picked from commit bee35b7161aaaed9831e2f14876c374b9c566952)
Signed-off-by: Jonathan Maple <[email protected]>

# Conflicts:
# drivers/infiniband/hw/mana/device.c
# drivers/infiniband/hw/mana/mana_ib.h
diff --cc drivers/infiniband/hw/mana/device.c
index 50437272b7b9,b31089320aa5..000000000000
--- a/drivers/infiniband/hw/mana/device.c
+++ b/drivers/infiniband/hw/mana/device.c
@@@ -52,6 -60,43 +52,46 @@@ static const struct ib_device_ops mana_
ib_ind_table),
};

++<<<<<<< HEAD
++=======
+ static const struct ib_device_ops mana_ib_stats_ops = {
+ .alloc_hw_port_stats = mana_ib_alloc_hw_port_stats,
+ .get_hw_stats = mana_ib_get_hw_stats,
+ };
+
+ static int mana_ib_netdev_event(struct notifier_block *this,
+ unsigned long event, void *ptr)
+ {
+ struct mana_ib_dev *dev = container_of(this, struct mana_ib_dev, nb);
+ struct net_device *event_dev = netdev_notifier_info_to_dev(ptr);
+ struct gdma_context *gc = dev->gdma_dev->gdma_context;
+ struct mana_context *mc = gc->mana.driver_data;
+ struct net_device *ndev;
+
+ /* Only process events from our parent device */
+ if (event_dev != mc->ports[0])
+ return NOTIFY_DONE;
+
+ switch (event) {
+ case NETDEV_CHANGEUPPER:
+ ndev = mana_get_primary_netdev(mc, 0, &dev->dev_tracker);
+ /*
+ * RDMA core will setup GID based on updated netdev.
+ * It's not possible to race with the core as rtnl lock is being
+ * held.
+ */
+ ib_device_set_netdev(&dev->ib_dev, ndev, 1);
+
+ /* mana_get_primary_netdev() returns ndev with refcount held */
+ netdev_put(ndev, &dev->dev_tracker);
+
+ return NOTIFY_OK;
+ default:
+ return NOTIFY_DONE;
+ }
+ }
+
++>>>>>>> bee35b7161aa (RDMA/mana_ib: Handle net event for pointing to the current netdev)
static int mana_ib_probe(struct auxiliary_device *adev,
const struct auxiliary_device_id *id)
{
@@@ -114,9 -166,11 +162,9 @@@
if (ret) {
ibdev_err(&dev->ib_dev, "Failed to query device caps, ret %d",
ret);
- goto deregister_device;
+ goto deregister_net_notifier;
}

- ib_set_device_ops(&dev->ib_dev, &mana_ib_stats_ops);
-
ret = mana_ib_create_eqs(dev);
if (ret) {
ibdev_err(&dev->ib_dev, "Failed to create EQs, ret %d", ret);
diff --cc drivers/infiniband/hw/mana/mana_ib.h
index c3c9dc1c8d8b,6903946677e5..000000000000
--- a/drivers/infiniband/hw/mana/mana_ib.h
+++ b/drivers/infiniband/hw/mana/mana_ib.h
@@@ -65,6 -77,9 +65,12 @@@ struct mana_ib_dev
struct gdma_queue **eqs;
struct xarray qp_table_wq;
struct mana_ib_adapter_caps adapter_caps;
++<<<<<<< HEAD
++=======
+ struct dma_pool *av_pool;
+ netdevice_tracker dev_tracker;
+ struct notifier_block nb;
++>>>>>>> bee35b7161aa (RDMA/mana_ib: Handle net event for pointing to the current netdev)
};

struct mana_ib_wq {
* Unmerged path drivers/infiniband/hw/mana/device.c
* Unmerged path drivers/infiniband/hw/mana/mana_ib.h
Loading