From 64439d549fcf0d56d5698e80c6684f93c621d985 Mon Sep 17 00:00:00 2001 From: Thomas Lamprecht Date: Mon, 10 Jun 2024 11:10:14 +0200 Subject: [PATCH] rebase patches on top of Ubuntu-6.8.0-38.38 (generated with debian/scripts/import-upstream-tag) Signed-off-by: Thomas Lamprecht --- ...ides-for-missing-ACS-capabilities-4..patch | 4 +- ...de-unregister_netdevice-refcount-lea.patch | 4 +- ...sk-out-PKRU-bit-in-xfeatures-if-vCPU.patch | 6 +- ...allow-pass-through-on-broken-hardwar.patch | 2 +- ...ix-request.queuelist-usage-in-flush.patch} | 0 ...178a-avoid-the-interface-always-conf.patch | 50 --------------- ...w-server-side-memory-leak-with-RPC-o.patch | 61 ------------------- 7 files changed, 8 insertions(+), 119 deletions(-) rename patches/kernel/{0016-block-fix-request.queuelist-usage-in-flush.patch => 0014-block-fix-request.queuelist-usage-in-flush.patch} (100%) delete mode 100644 patches/kernel/0014-net-usb-ax88179_178a-avoid-the-interface-always-conf.patch delete mode 100644 patches/kernel/0015-SUNRPC-Fix-a-slow-server-side-memory-leak-with-RPC-o.patch diff --git a/patches/kernel/0004-pci-Enable-overrides-for-missing-ACS-capabilities-4..patch b/patches/kernel/0004-pci-Enable-overrides-for-missing-ACS-capabilities-4..patch index bbd1cfe..41fca48 100644 --- a/patches/kernel/0004-pci-Enable-overrides-for-missing-ACS-capabilities-4..patch +++ b/patches/kernel/0004-pci-Enable-overrides-for-missing-ACS-capabilities-4..patch @@ -55,10 +55,10 @@ Signed-off-by: Thomas Lamprecht 2 files changed, 111 insertions(+) diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt -index 3470cb524222..3c9192618839 100644 +index 4272acb3d047..d18cc2c1f9c3 100644 --- a/Documentation/admin-guide/kernel-parameters.txt +++ b/Documentation/admin-guide/kernel-parameters.txt -@@ -4399,6 +4399,15 @@ +@@ -4400,6 +4400,15 @@ Also, it enforces the PCI Local Bus spec rule that those bits should be 0 in system reset events (useful for kexec/kdump cases). diff --git a/patches/kernel/0006-net-core-downgrade-unregister_netdevice-refcount-lea.patch b/patches/kernel/0006-net-core-downgrade-unregister_netdevice-refcount-lea.patch index 1d440bf..a74d5b6 100644 --- a/patches/kernel/0006-net-core-downgrade-unregister_netdevice-refcount-lea.patch +++ b/patches/kernel/0006-net-core-downgrade-unregister_netdevice-refcount-lea.patch @@ -14,10 +14,10 @@ Signed-off-by: Fabian Grünbichler 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/net/core/dev.c b/net/core/dev.c -index c9b8412f1c9d..67a9b4c1a511 100644 +index c365aa06f886..c9066a7aa4c5 100644 --- a/net/core/dev.c +++ b/net/core/dev.c -@@ -10464,7 +10464,7 @@ static struct net_device *netdev_wait_allrefs_any(struct list_head *list) +@@ -10470,7 +10470,7 @@ static struct net_device *netdev_wait_allrefs_any(struct list_head *list) if (time_after(jiffies, warning_time + READ_ONCE(netdev_unregister_timeout_secs) * HZ)) { list_for_each_entry(dev, list, todo_list) { diff --git a/patches/kernel/0008-kvm-xsave-set-mask-out-PKRU-bit-in-xfeatures-if-vCPU.patch b/patches/kernel/0008-kvm-xsave-set-mask-out-PKRU-bit-in-xfeatures-if-vCPU.patch index 230f631..cc5fe8b 100644 --- a/patches/kernel/0008-kvm-xsave-set-mask-out-PKRU-bit-in-xfeatures-if-vCPU.patch +++ b/patches/kernel/0008-kvm-xsave-set-mask-out-PKRU-bit-in-xfeatures-if-vCPU.patch @@ -78,7 +78,7 @@ Signed-off-by: Thomas Lamprecht 3 files changed, 21 insertions(+) diff --git a/arch/x86/kvm/cpuid.c b/arch/x86/kvm/cpuid.c -index adba49afb5fe..e6e4408c8d51 100644 +index 3a02276899db..e07a6089ba4b 100644 --- a/arch/x86/kvm/cpuid.c +++ b/arch/x86/kvm/cpuid.c @@ -262,6 +262,12 @@ static u64 cpuid_get_supported_xcr0(struct kvm_cpuid_entry2 *entries, int nent) @@ -95,7 +95,7 @@ index adba49afb5fe..e6e4408c8d51 100644 int nent) { diff --git a/arch/x86/kvm/cpuid.h b/arch/x86/kvm/cpuid.h -index 856e3037e74f..0ac5a84adcd5 100644 +index 23dbb9eb277c..07da153802e4 100644 --- a/arch/x86/kvm/cpuid.h +++ b/arch/x86/kvm/cpuid.h @@ -32,6 +32,8 @@ int kvm_vcpu_ioctl_get_cpuid2(struct kvm_vcpu *vcpu, @@ -108,7 +108,7 @@ index 856e3037e74f..0ac5a84adcd5 100644 int cpuid_query_maxphyaddr(struct kvm_vcpu *vcpu); diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c -index 8e4e48840290..3af8e426ead3 100644 +index c84927216fad..880e2b87777e 100644 --- a/arch/x86/kvm/x86.c +++ b/arch/x86/kvm/x86.c @@ -5580,6 +5580,19 @@ static int kvm_vcpu_ioctl_x86_set_xsave(struct kvm_vcpu *vcpu, diff --git a/patches/kernel/0009-allow-opt-in-to-allow-pass-through-on-broken-hardwar.patch b/patches/kernel/0009-allow-opt-in-to-allow-pass-through-on-broken-hardwar.patch index 9fee46b..bb8a4c9 100644 --- a/patches/kernel/0009-allow-opt-in-to-allow-pass-through-on-broken-hardwar.patch +++ b/patches/kernel/0009-allow-opt-in-to-allow-pass-through-on-broken-hardwar.patch @@ -11,7 +11,7 @@ Signed-off-by: Thomas Lamprecht 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/iommu/intel/iommu.c b/drivers/iommu/intel/iommu.c -index 8a1471f794cb..fa9c6e056f1b 100644 +index c4c6240d14f9..5e037a9ea6a6 100644 --- a/drivers/iommu/intel/iommu.c +++ b/drivers/iommu/intel/iommu.c @@ -234,6 +234,7 @@ static int dmar_map_gfx = 1; diff --git a/patches/kernel/0016-block-fix-request.queuelist-usage-in-flush.patch b/patches/kernel/0014-block-fix-request.queuelist-usage-in-flush.patch similarity index 100% rename from patches/kernel/0016-block-fix-request.queuelist-usage-in-flush.patch rename to patches/kernel/0014-block-fix-request.queuelist-usage-in-flush.patch diff --git a/patches/kernel/0014-net-usb-ax88179_178a-avoid-the-interface-always-conf.patch b/patches/kernel/0014-net-usb-ax88179_178a-avoid-the-interface-always-conf.patch deleted file mode 100644 index 5f39f58..0000000 --- a/patches/kernel/0014-net-usb-ax88179_178a-avoid-the-interface-always-conf.patch +++ /dev/null @@ -1,50 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Jose Ignacio Tornos Martinez -Date: Wed, 3 Apr 2024 15:21:58 +0200 -Subject: [PATCH] net: usb: ax88179_178a: avoid the interface always configured - as random address -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -After the commit d2689b6a86b9 ("net: usb: ax88179_178a: avoid two -consecutive device resets"), reset is not executed from bind operation and -mac address is not read from the device registers or the devicetree at that -moment. Since the check to configure if the assigned mac address is random -or not for the interface, happens after the bind operation from -usbnet_probe, the interface keeps configured as random address, although the -address is correctly read and set during open operation (the only reset -now). - -In order to keep only one reset for the device and to avoid the interface -always configured as random address, after reset, configure correctly the -suitable field from the driver, if the mac address is read successfully from -the device registers or the devicetree. Take into account if a locally -administered address (random) was previously stored. - -cc: stable@vger.kernel.org # 6.6+ -Fixes: d2689b6a86b9 ("net: usb: ax88179_178a: avoid two consecutive device resets") -Reported-by: Dave Stevenson -Signed-off-by: Jose Ignacio Tornos Martinez -Reviewed-by: Simon Horman -Link: https://lore.kernel.org/r/20240403132158.344838-1-jtornosm@redhat.com -Signed-off-by: Jakub Kicinski -(cherry picked from commit 2e91bb99b9d4f756e92e83c4453f894dda220f09) -Signed-off-by: Fabian Grünbichler ---- - drivers/net/usb/ax88179_178a.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/drivers/net/usb/ax88179_178a.c b/drivers/net/usb/ax88179_178a.c -index d837c1887416..e0e9b4c53cb0 100644 ---- a/drivers/net/usb/ax88179_178a.c -+++ b/drivers/net/usb/ax88179_178a.c -@@ -1273,6 +1273,8 @@ static void ax88179_get_mac_addr(struct usbnet *dev) - - if (is_valid_ether_addr(mac)) { - eth_hw_addr_set(dev->net, mac); -+ if (!is_local_ether_addr(mac)) -+ dev->net->addr_assign_type = NET_ADDR_PERM; - } else { - netdev_info(dev->net, "invalid MAC address, using random\n"); - eth_hw_addr_random(dev->net); diff --git a/patches/kernel/0015-SUNRPC-Fix-a-slow-server-side-memory-leak-with-RPC-o.patch b/patches/kernel/0015-SUNRPC-Fix-a-slow-server-side-memory-leak-with-RPC-o.patch deleted file mode 100644 index ea53b0e..0000000 --- a/patches/kernel/0015-SUNRPC-Fix-a-slow-server-side-memory-leak-with-RPC-o.patch +++ /dev/null @@ -1,61 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Chuck Lever -Date: Wed, 3 Apr 2024 10:36:25 -0400 -Subject: [PATCH] SUNRPC: Fix a slow server-side memory leak with RPC-over-TCP - -Jan Schunk reports that his small NFS servers suffer from memory -exhaustion after just a few days. A bisect shows that commit -e18e157bb5c8 ("SUNRPC: Send RPC message on TCP with a single -sock_sendmsg() call") is the first bad commit. - -That commit assumed that sock_sendmsg() releases all the pages in -the underlying bio_vec array, but the reality is that it doesn't. -svc_xprt_release() releases the rqst's response pages, but the -record marker page fragment isn't one of those, so it is never -released. - -This is a narrow fix that can be applied to stable kernels. A -more extensive fix is in the works. - -Reported-by: Jan Schunk -Closes: https://bugzilla.kernel.org/show_bug.cgi?id=218671 -Fixes: e18e157bb5c8 ("SUNRPC: Send RPC message on TCP with a single sock_sendmsg() call") -Cc: Alexander Duyck -Cc: Jakub Kacinski -Cc: David Howells -Reviewed-by: David Howells -Signed-off-by: Chuck Lever -(cherry picked from commit 05258a0a69b3c5d2c003f818702c0a52b6fea861) -Signed-off-by: Fiona Ebner ---- - net/sunrpc/svcsock.c | 10 +--------- - 1 file changed, 1 insertion(+), 9 deletions(-) - -diff --git a/net/sunrpc/svcsock.c b/net/sunrpc/svcsock.c -index 545017a3daa4..6b3f01beb294 100644 ---- a/net/sunrpc/svcsock.c -+++ b/net/sunrpc/svcsock.c -@@ -1206,15 +1206,6 @@ static int svc_tcp_recvfrom(struct svc_rqst *rqstp) - * MSG_SPLICE_PAGES is used exclusively to reduce the number of - * copy operations in this path. Therefore the caller must ensure - * that the pages backing @xdr are unchanging. -- * -- * Note that the send is non-blocking. The caller has incremented -- * the reference count on each page backing the RPC message, and -- * the network layer will "put" these pages when transmission is -- * complete. -- * -- * This is safe for our RPC services because the memory backing -- * the head and tail components is never kmalloc'd. These always -- * come from pages in the svc_rqst::rq_pages array. - */ - static int svc_tcp_sendmsg(struct svc_sock *svsk, struct svc_rqst *rqstp, - rpc_fraghdr marker, unsigned int *sentp) -@@ -1244,6 +1235,7 @@ static int svc_tcp_sendmsg(struct svc_sock *svsk, struct svc_rqst *rqstp, - iov_iter_bvec(&msg.msg_iter, ITER_SOURCE, rqstp->rq_bvec, - 1 + count, sizeof(marker) + rqstp->rq_res.len); - ret = sock_sendmsg(svsk->sk_sock, &msg); -+ page_frag_free(buf); - if (ret < 0) - return ret; - *sentp += ret;