Drop the 211.7.x security-ahead patches superseded by the RHEL 211.8.1..211.16.1 backports (1100-1104), add those backports (1106-1161) from centos-stream-10 and upstream linux-6.12.y. Keep the smb cifs.spnego ahead-fix (1105). Bump to 211.16.1.
64 lines
2.5 KiB
Diff
64 lines
2.5 KiB
Diff
From e324506b98bf6935e6df4813b989d6a9b333109c Mon Sep 17 00:00:00 2001
|
|
From: Mohammad Heib <mheib@redhat.com>
|
|
Date: Tue, 17 Mar 2026 19:08:06 +0200
|
|
Subject: [PATCH] ionic: fix persistent MAC address override on PF
|
|
|
|
[ Upstream commit cbcb3cfcdc436d6f91a3d95ecfa9c831abe14aed ]
|
|
|
|
The use of IONIC_CMD_LIF_SETATTR in the MAC address update path causes
|
|
the ionic firmware to update the LIF's identity in its persistent state.
|
|
Since the firmware state is maintained across host warm boots and driver
|
|
reloads, any MAC change on the Physical Function (PF) becomes "sticky.
|
|
|
|
This is problematic because it causes ethtool -P to report the
|
|
user-configured MAC as the permanent factory address, which breaks
|
|
system management tools that rely on a stable hardware identity.
|
|
|
|
While Virtual Functions (VFs) need this hardware-level programming to
|
|
properly handle MAC assignments in guest environments, the PF should
|
|
maintain standard transient behavior. This patch gates the
|
|
ionic_program_mac call using is_virtfn so that PF MAC changes remain
|
|
local to the netdev filters and do not overwrite the firmware's
|
|
permanent identity block.
|
|
|
|
Fixes: 19058be7c48c ("ionic: VF initial random MAC address if no assigned mac")
|
|
Signed-off-by: Mohammad Heib <mheib@redhat.com>
|
|
Reviewed-by: Simon Horman <horms@kernel.org>
|
|
Reviewed-by: Brett Creeley <brett.creeley@amd.com>
|
|
Link: https://patch.msgid.link/20260317170806.35390-1-mheib@redhat.com
|
|
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
|
|
Signed-off-by: Sasha Levin <sashal@kernel.org>
|
|
|
|
diff --git a/drivers/net/ethernet/pensando/ionic/ionic_lif.c b/drivers/net/ethernet/pensando/ionic/ionic_lif.c
|
|
index d6bea7152805..8119281b26d0 100644
|
|
--- a/drivers/net/ethernet/pensando/ionic/ionic_lif.c
|
|
+++ b/drivers/net/ethernet/pensando/ionic/ionic_lif.c
|
|
@@ -1718,13 +1718,18 @@ static int ionic_set_mac_address(struct net_device *netdev, void *sa)
|
|
if (ether_addr_equal(netdev->dev_addr, mac))
|
|
return 0;
|
|
|
|
- err = ionic_program_mac(lif, mac);
|
|
- if (err < 0)
|
|
- return err;
|
|
+ /* Only program macs for virtual functions to avoid losing the permanent
|
|
+ * Mac across warm reset/reboot.
|
|
+ */
|
|
+ if (lif->ionic->pdev->is_virtfn) {
|
|
+ err = ionic_program_mac(lif, mac);
|
|
+ if (err < 0)
|
|
+ return err;
|
|
|
|
- if (err > 0)
|
|
- netdev_dbg(netdev, "%s: SET and GET ATTR Mac are not equal-due to old FW running\n",
|
|
- __func__);
|
|
+ if (err > 0)
|
|
+ netdev_dbg(netdev, "%s: SET and GET ATTR Mac are not equal-due to old FW running\n",
|
|
+ __func__);
|
|
+ }
|
|
|
|
err = eth_prepare_mac_addr_change(netdev, addr);
|
|
if (err)
|
|
--
|
|
2.50.1 (Apple Git-155)
|
|
|