Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
5 changes: 4 additions & 1 deletion SPECS-EXTENDED/kernel-ipe/kernel-ipe.spec
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
Summary: Linux Kernel
Name: kernel-ipe
Version: 6.6.139.1
Release: 1%{?dist}
Release: 2%{?dist}
License: GPLv2
Vendor: Microsoft Corporation
Distribution: Azure Linux
Expand Down Expand Up @@ -460,6 +460,9 @@ echo "initrd of kernel %{uname_r} removed" >&2
%{_sysconfdir}/bash_completion.d/bpftool

%changelog
* Wed May 27 2026 Andreas Zaugg <azaugg@linkedin.com> - 6.6.139.1-2
- Bump release to match kernel

* Fri May 15 2026 CBL-Mariner Servicing Account <cblmargh@microsoft.com> - 6.6.139.1-1
- Auto-upgrade to 6.6.139.1

Expand Down
5 changes: 4 additions & 1 deletion SPECS-SIGNED/kernel-64k-signed/kernel-64k-signed.spec
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
Summary: Signed Linux Kernel for %{buildarch} systems
Name: kernel-64k-signed-%{buildarch}
Version: 6.6.139.1
Release: 1%{?dist}
Release: 2%{?dist}
License: GPLv2
Vendor: Microsoft Corporation
Distribution: Azure Linux
Expand Down Expand Up @@ -105,6 +105,9 @@ echo "initrd of kernel %{uname_r} removed" >&2
%exclude /module_info.ld

%changelog
* Wed May 27 2026 Andreas Zaugg <azaugg@linkedin.com> - 6.6.139.1-2
- Bump release to match kernel

* Fri May 15 2026 CBL-Mariner Servicing Account <cblmargh@microsoft.com> - 6.6.139.1-1
- Auto-upgrade to 6.6.139.1

Expand Down
5 changes: 4 additions & 1 deletion SPECS-SIGNED/kernel-signed/kernel-signed.spec
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
Summary: Signed Linux Kernel for %{buildarch} systems
Name: kernel-signed-%{buildarch}
Version: 6.6.139.1
Release: 1%{?dist}
Release: 2%{?dist}
License: GPLv2
Vendor: Microsoft Corporation
Distribution: Azure Linux
Expand Down Expand Up @@ -145,6 +145,9 @@ echo "initrd of kernel %{uname_r} removed" >&2
%exclude /module_info.ld

%changelog
* Wed May 27 2026 Andreas Zaugg <azaugg@linkedin.com> - 6.6.139.1-2
- Bump release to match kernel

* Fri May 15 2026 CBL-Mariner Servicing Account <cblmargh@microsoft.com> - 6.6.139.1-1
- Auto-upgrade to 6.6.139.1

Expand Down
5 changes: 4 additions & 1 deletion SPECS-SIGNED/kernel-uki-signed/kernel-uki-signed.spec
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
Summary: Signed Unified Kernel Image for %{buildarch} systems
Name: kernel-uki-signed-%{buildarch}
Version: 6.6.139.1
Release: 1%{?dist}
Release: 2%{?dist}
License: GPLv2
Vendor: Microsoft Corporation
Distribution: Azure Linux
Expand Down Expand Up @@ -68,6 +68,9 @@ popd
/boot/efi/EFI/Linux/vmlinuz-uki-%{kernelver}.efi

%changelog
* Wed May 27 2026 Andreas Zaugg <azaugg@linkedin.com> - 6.6.139.1-2
- Bump release to match kernel

* Fri May 15 2026 CBL-Mariner Servicing Account <cblmargh@microsoft.com> - 6.6.139.1-1
- Auto-upgrade to 6.6.139.1

Expand Down
5 changes: 4 additions & 1 deletion SPECS/kernel-64k/kernel-64k.spec
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
Summary: Linux Kernel
Name: kernel-64k
Version: 6.6.139.1
Release: 1%{?dist}
Release: 2%{?dist}
License: GPLv2
Vendor: Microsoft Corporation
Distribution: Azure Linux
Expand Down Expand Up @@ -380,6 +380,9 @@ echo "initrd of kernel %{uname_r} removed" >&2
%{_sysconfdir}/bash_completion.d/bpftool

%changelog
* Wed May 27 2026 Andreas Zaugg <azaugg@linkedin.com> - 6.6.139.1-2
- Bump release to match kernel

* Fri May 15 2026 CBL-Mariner Servicing Account <cblmargh@microsoft.com> - 6.6.139.1-1
- Auto-upgrade to 6.6.139.1

Expand Down
5 changes: 4 additions & 1 deletion SPECS/kernel-headers/kernel-headers.spec
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
Summary: Linux API header files
Name: kernel-headers
Version: 6.6.139.1
Release: 1%{?dist}
Release: 2%{?dist}
License: GPLv2
Vendor: Microsoft Corporation
Distribution: Azure Linux
Expand Down Expand Up @@ -75,6 +75,9 @@ done
%endif

%changelog
* Wed May 27 2026 Andreas Zaugg <azaugg@linkedin.com> - 6.6.139.1-2
- Bump release to match kernel

* Fri May 15 2026 CBL-Mariner Servicing Account <cblmargh@microsoft.com> - 6.6.139.1-1
- Auto-upgrade to 6.6.139.1

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,131 @@
From cf6b689997b039f1f274d588b7b7011be43e8fcd Mon Sep 17 00:00:00 2001
From: Andreas Zaugg <azaugg@linkedin.com>
Date: Tue, 26 May 2026 18:18:35 -0400
Subject: [PATCH] RDMA/core: Use route entry flag to decide on loopback traffic

addr_resolve() considers a destination to be local if the next-hop
device of the resolved route for the destination is the loopback
netdevice.

This fails when the source and destination IP addresses belong to
a netdev enslaved to a VRF netdev. In this case the next-hop device
is the VRF itself:

$ ip link add name myvrf up type vrf table 100
$ ip link set ens2f0np0 master myvrf up
$ ip addr add 192.168.1.1/24 dev ens2f0np0
$ ip route get 192.168.1.1 oif myvrf
local 192.168.1.1 dev myvrf table 100 src 192.168.1.1 uid 0
cache <local>

This results in packets being generated with an incorrect destination
MAC of the VRF netdevice and ib_write_bw failing with timeout.

Solve this by determining if a destination is local or not based on
the resolved route's type rather than based on its next-hop netdevice
loopback flag.

This enables to resolve loopback traffic with and without VRF
configurations in a uniform way.

Backported from upstream commit c31e4038c97f (mainline) to 6.6 LTS.
dst_rtable() helper is not available in 6.6, replaced with a direct
cast to (const struct rtable *).

Signed-off-by: Parav Pandit <parav@nvidia.com>
Reviewed-by: Vlad Dumitrescu <vdumitrescu@nvidia.com>
Signed-off-by: Edward Srouji <edwards@nvidia.com>
Link: https://patch.msgid.link/20250916111103.84069-4-edwards@nvidia.com
Signed-off-by: Leon Romanovsky <leon@kernel.org>
---
drivers/infiniband/core/addr.c | 34 +++++++++++++++++++++-------------
1 file changed, 21 insertions(+), 13 deletions(-)

diff --git a/drivers/infiniband/core/addr.c b/drivers/infiniband/core/addr.c
index e95745710610..3895a7aa5ec0 100644
--- a/drivers/infiniband/core/addr.c
+++ b/drivers/infiniband/core/addr.c
@@ -439,19 +439,30 @@ static int addr6_resolve(struct sockaddr *src_sock,
}
#endif

+static bool is_dst_local(const struct dst_entry *dst)
+{
+ if (dst->ops->family == AF_INET)
+ return !!(((const struct rtable *)dst)->rt_type & RTN_LOCAL);
+ else if (dst->ops->family == AF_INET6)
+ return !!(dst_rt6_info(dst)->rt6i_flags & RTF_LOCAL);
+ else
+ return false;
+}
+
static int addr_resolve_neigh(const struct dst_entry *dst,
const struct sockaddr *dst_in,
struct rdma_dev_addr *addr,
- unsigned int ndev_flags,
u32 seq)
{
- int ret = 0;
-
- if (ndev_flags & IFF_LOOPBACK)
+ if (is_dst_local(dst)) {
+ /* When the destination is local entry, source and destination
+ * are same. Skip the neighbour lookup.
+ */
memcpy(addr->dst_dev_addr, addr->src_dev_addr, MAX_ADDR_LEN);
- else
- ret = fetch_ha(dst, addr, dst_in, seq);
- return ret;
+ return 0;
+ }
+
+ return fetch_ha(dst, addr, dst_in, seq);
}

static int copy_src_l2_addr(struct rdma_dev_addr *dev_addr,
@@ -483,15 +494,13 @@ static int copy_src_l2_addr(struct rdma_dev_addr *dev_addr,
}

static int rdma_set_src_addr_rcu(struct rdma_dev_addr *dev_addr,
- unsigned int *ndev_flags,
const struct sockaddr *dst_in,
const struct dst_entry *dst)
{
struct net_device *ndev = READ_ONCE(dst->dev);

- *ndev_flags = ndev->flags;
/* A physical device must be the RDMA device to use */
- if (ndev->flags & IFF_LOOPBACK) {
+ if (is_dst_local(dst)) {
/*
* RDMA (IB/RoCE, iWarp) doesn't run on lo interface or
* loopback IP address. So if route is resolved to loopback
@@ -540,7 +549,6 @@ static int addr_resolve(struct sockaddr *src_in,
u32 seq)
{
struct dst_entry *dst = NULL;
- unsigned int ndev_flags = 0;
struct rtable *rt = NULL;
int ret;

@@ -577,7 +585,7 @@ static int addr_resolve(struct sockaddr *src_in,
rcu_read_unlock();
goto done;
}
- ret = rdma_set_src_addr_rcu(addr, &ndev_flags, dst_in, dst);
+ ret = rdma_set_src_addr_rcu(addr, dst_in, dst);
rcu_read_unlock();

/*
@@ -585,7 +593,7 @@ static int addr_resolve(struct sockaddr *src_in,
* only if src addr translation didn't fail.
*/
if (!ret && resolve_neigh)
- ret = addr_resolve_neigh(dst, dst_in, addr, ndev_flags, seq);
+ ret = addr_resolve_neigh(dst, dst_in, addr, seq);

if (src_in->sa_family == AF_INET)
ip_rt_put(rt);
--
2.50.1 (Apple Git-155)

5 changes: 4 additions & 1 deletion SPECS/kernel/kernel-uki.spec
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
Summary: Unified Kernel Image
Name: kernel-uki
Version: 6.6.139.1
Release: 1%{?dist}
Release: 2%{?dist}
License: GPLv2
Vendor: Microsoft Corporation
Distribution: Azure Linux
Expand Down Expand Up @@ -70,6 +70,9 @@ cp %{buildroot}/boot/vmlinuz-uki-%{kernelver}.efi %{buildroot}/boot/efi/EFI/Linu
/boot/efi/EFI/Linux/vmlinuz-uki-%{kernelver}.efi

%changelog
* Wed May 27 2026 Andreas Zaugg <azaugg@linkedin.com> - 6.6.139.1-2
- Bump release to match kernel

* Fri May 15 2026 CBL-Mariner Servicing Account <cblmargh@microsoft.com> - 6.6.139.1-1
- Auto-upgrade to 6.6.139.1

Expand Down
9 changes: 8 additions & 1 deletion SPECS/kernel/kernel.spec
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
Summary: Linux Kernel
Name: kernel
Version: 6.6.139.1
Release: 1%{?dist}
Release: 2%{?dist}
License: GPLv2
Vendor: Microsoft Corporation
Distribution: Azure Linux
Expand All @@ -46,6 +46,7 @@ Source4: azurelinux-ca-20230216.pem
Source5: cpupower
Source6: cpupower.service
Patch0: 0001-add-mstflint-kernel-%{mstflintver}.patch
Patch1: 0001-RDMA-core-Use-route-entry-flag-to-decide-on-loopback.patch
BuildRequires: audit-devel
BuildRequires: bash
BuildRequires: bc
Expand Down Expand Up @@ -440,6 +441,12 @@ echo "initrd of kernel %{uname_r} removed" >&2
%{_sysconfdir}/bash_completion.d/bpftool

%changelog
* Wed May 27 2026 Andreas Zaugg <azaugg@linkedin.com> - 6.6.139.1-2
- Backport upstream commit c31e4038c97f from mainline:
RDMA/core: Use route entry flag to decide on loopback traffic.
dst_rtable() helper is not available in 6.6, replaced with a direct
cast to (const struct rtable *).

* Fri May 15 2026 CBL-Mariner Servicing Account <cblmargh@microsoft.com> - 6.6.139.1-1
- Auto-upgrade to 6.6.139.1

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
filesystem-1.1-21.azl3.aarch64.rpm
kernel-headers-6.6.139.1-1.azl3.noarch.rpm
kernel-headers-6.6.139.1-2.azl3.noarch.rpm
glibc-2.38-19.azl3.aarch64.rpm
glibc-devel-2.38-19.azl3.aarch64.rpm
glibc-i18n-2.38-19.azl3.aarch64.rpm
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
filesystem-1.1-21.azl3.x86_64.rpm
kernel-headers-6.6.139.1-1.azl3.noarch.rpm
kernel-headers-6.6.139.1-2.azl3.noarch.rpm
glibc-2.38-19.azl3.x86_64.rpm
glibc-devel-2.38-19.azl3.x86_64.rpm
glibc-i18n-2.38-19.azl3.x86_64.rpm
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@ intltool-0.51.0-7.azl3.noarch.rpm
itstool-2.0.7-1.azl3.noarch.rpm
kbd-2.2.0-2.azl3.aarch64.rpm
kbd-debuginfo-2.2.0-2.azl3.aarch64.rpm
kernel-headers-6.6.139.1-1.azl3.noarch.rpm
kernel-headers-6.6.139.1-2.azl3.noarch.rpm
kmod-30-1.azl3.aarch64.rpm
kmod-debuginfo-30-1.azl3.aarch64.rpm
kmod-devel-30-1.azl3.aarch64.rpm
Expand Down
4 changes: 2 additions & 2 deletions toolkit/resources/manifests/package/toolchain_x86_64.txt
Original file line number Diff line number Diff line change
Expand Up @@ -165,8 +165,8 @@ intltool-0.51.0-7.azl3.noarch.rpm
itstool-2.0.7-1.azl3.noarch.rpm
kbd-2.2.0-2.azl3.x86_64.rpm
kbd-debuginfo-2.2.0-2.azl3.x86_64.rpm
kernel-cross-headers-6.6.139.1-1.azl3.noarch.rpm
kernel-headers-6.6.139.1-1.azl3.noarch.rpm
kernel-cross-headers-6.6.139.1-2.azl3.noarch.rpm
kernel-headers-6.6.139.1-2.azl3.noarch.rpm
kmod-30-1.azl3.x86_64.rpm
kmod-debuginfo-30-1.azl3.x86_64.rpm
kmod-devel-30-1.azl3.x86_64.rpm
Expand Down
Loading