return 0;
diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c
-index 63247c57c72c..4319f65181f7 100644
+index 4ae248e87f5e..a850ea04514e 100644
--- a/arch/x86/kvm/vmx/vmx.c
+++ b/arch/x86/kvm/vmx/vmx.c
-@@ -7914,7 +7914,7 @@ static int vmx_smi_allowed(struct kvm_vcpu *vcpu, bool for_injection)
+@@ -7911,7 +7911,7 @@ static int vmx_smi_allowed(struct kvm_vcpu *vcpu, bool for_injection)
return !is_smm(vcpu);
}
{
struct vcpu_vmx *vmx = to_vmx(vcpu);
-@@ -7935,7 +7935,7 @@ static int vmx_enter_smm(struct kvm_vcpu *vcpu, char *smstate)
+@@ -7932,7 +7932,7 @@ static int vmx_enter_smm(struct kvm_vcpu *vcpu, char *smstate)
return 0;
}
--- /dev/null
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Thomas Lamprecht <t.lamprecht@proxmox.com>
+Date: Tue, 10 Jan 2023 08:52:40 +0100
+Subject: [PATCH] Revert "fortify: Do not cast to "unsigned char""
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+This reverts commit 106b7a61c488d2022f44e3531ce33461c7c0685f.
+
+Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
+Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
+---
+ include/linux/fortify-string.h | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/include/linux/fortify-string.h b/include/linux/fortify-string.h
+index 5001a11258e4..1067a8450826 100644
+--- a/include/linux/fortify-string.h
++++ b/include/linux/fortify-string.h
+@@ -18,7 +18,7 @@ void __write_overflow_field(size_t avail, size_t wanted) __compiletime_warning("
+
+ #define __compiletime_strlen(p) \
+ ({ \
+- char *__p = (char *)(p); \
++ unsigned char *__p = (unsigned char *)(p); \
+ size_t __ret = SIZE_MAX; \
+ size_t __p_size = __member_size(p); \
+ if (__p_size != SIZE_MAX && \
+++ /dev/null
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Thomas Lamprecht <t.lamprecht@proxmox.com>
-Date: Sat, 7 Jan 2023 13:50:22 +0100
-Subject: [PATCH] Revert "gro: add support of (hw)gro packets to gro stack"
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Seems to be the cause of a regression in network performance:
-https://lore.kernel.org/netdev/CAK8fFZ5pzMaw3U1KXgC_OK4shKGsN=HDcR62cfPOuL0umXE1Ww@mail.gmail.com/
-
-This reverts commit 5eddb24901ee49eee23c0bfce6af2e83fd5679bd.
-
-Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
-Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
----
- net/core/gro.c | 18 ++++--------------
- net/ipv4/tcp_offload.c | 17 ++---------------
- 2 files changed, 6 insertions(+), 29 deletions(-)
-
-diff --git a/net/core/gro.c b/net/core/gro.c
-index bc9451743307..b4190eb08467 100644
---- a/net/core/gro.c
-+++ b/net/core/gro.c
-@@ -160,7 +160,6 @@ int skb_gro_receive(struct sk_buff *p, struct sk_buff *skb)
- unsigned int gro_max_size;
- unsigned int new_truesize;
- struct sk_buff *lp;
-- int segs;
-
- /* pairs with WRITE_ONCE() in netif_set_gro_max_size() */
- gro_max_size = READ_ONCE(p->dev->gro_max_size);
-@@ -176,7 +175,6 @@ int skb_gro_receive(struct sk_buff *p, struct sk_buff *skb)
- return -E2BIG;
- }
-
-- segs = NAPI_GRO_CB(skb)->count;
- lp = NAPI_GRO_CB(p)->last;
- pinfo = skb_shinfo(lp);
-
-@@ -267,7 +265,7 @@ int skb_gro_receive(struct sk_buff *p, struct sk_buff *skb)
- lp = p;
-
- done:
-- NAPI_GRO_CB(p)->count += segs;
-+ NAPI_GRO_CB(p)->count++;
- p->data_len += len;
- p->truesize += delta_truesize;
- p->len += len;
-@@ -498,15 +496,8 @@ static enum gro_result dev_gro_receive(struct napi_struct *napi, struct sk_buff
- BUILD_BUG_ON(!IS_ALIGNED(offsetof(struct napi_gro_cb, zeroed),
- sizeof(u32))); /* Avoid slow unaligned acc */
- *(u32 *)&NAPI_GRO_CB(skb)->zeroed = 0;
-- NAPI_GRO_CB(skb)->flush = skb_has_frag_list(skb);
-+ NAPI_GRO_CB(skb)->flush = skb_is_gso(skb) || skb_has_frag_list(skb);
- NAPI_GRO_CB(skb)->is_atomic = 1;
-- NAPI_GRO_CB(skb)->count = 1;
-- if (unlikely(skb_is_gso(skb))) {
-- NAPI_GRO_CB(skb)->count = skb_shinfo(skb)->gso_segs;
-- /* Only support TCP at the moment. */
-- if (!skb_is_gso_tcp(skb))
-- NAPI_GRO_CB(skb)->flush = 1;
-- }
-
- /* Setup for GRO checksum validation */
- switch (skb->ip_summed) {
-@@ -554,10 +545,10 @@ static enum gro_result dev_gro_receive(struct napi_struct *napi, struct sk_buff
- else
- gro_list->count++;
-
-+ NAPI_GRO_CB(skb)->count = 1;
- NAPI_GRO_CB(skb)->age = jiffies;
- NAPI_GRO_CB(skb)->last = skb;
-- if (!skb_is_gso(skb))
-- skb_shinfo(skb)->gso_size = skb_gro_len(skb);
-+ skb_shinfo(skb)->gso_size = skb_gro_len(skb);
- list_add(&skb->list, &gro_list->list);
- ret = GRO_HELD;
-
-@@ -669,7 +660,6 @@ static void napi_reuse_skb(struct napi_struct *napi, struct sk_buff *skb)
-
- skb->encapsulation = 0;
- skb_shinfo(skb)->gso_type = 0;
-- skb_shinfo(skb)->gso_size = 0;
- if (unlikely(skb->slow_gro)) {
- skb_orphan(skb);
- skb_ext_reset(skb);
-diff --git a/net/ipv4/tcp_offload.c b/net/ipv4/tcp_offload.c
-index 45dda7889387..a844a0d38482 100644
---- a/net/ipv4/tcp_offload.c
-+++ b/net/ipv4/tcp_offload.c
-@@ -255,15 +255,7 @@ struct sk_buff *tcp_gro_receive(struct list_head *head, struct sk_buff *skb)
-
- mss = skb_shinfo(p)->gso_size;
-
-- /* If skb is a GRO packet, make sure its gso_size matches prior packet mss.
-- * If it is a single frame, do not aggregate it if its length
-- * is bigger than our mss.
-- */
-- if (unlikely(skb_is_gso(skb)))
-- flush |= (mss != skb_shinfo(skb)->gso_size);
-- else
-- flush |= (len - 1) >= mss;
--
-+ flush |= (len - 1) >= mss;
- flush |= (ntohl(th2->seq) + skb_gro_len(p)) ^ ntohl(th->seq);
- #ifdef CONFIG_TLS_DEVICE
- flush |= p->decrypted ^ skb->decrypted;
-@@ -277,12 +269,7 @@ struct sk_buff *tcp_gro_receive(struct list_head *head, struct sk_buff *skb)
- tcp_flag_word(th2) |= flags & (TCP_FLAG_FIN | TCP_FLAG_PSH);
-
- out_check_final:
-- /* Force a flush if last segment is smaller than mss. */
-- if (unlikely(skb_is_gso(skb)))
-- flush = len != NAPI_GRO_CB(skb)->count * skb_shinfo(skb)->gso_size;
-- else
-- flush = len < mss;
--
-+ flush = len < mss;
- flush |= (__force int)(flags & (TCP_FLAG_URG | TCP_FLAG_PSH |
- TCP_FLAG_RST | TCP_FLAG_SYN |
- TCP_FLAG_FIN));
+++ /dev/null
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Thomas Lamprecht <t.lamprecht@proxmox.com>
-Date: Tue, 10 Jan 2023 08:52:40 +0100
-Subject: [PATCH] Revert "fortify: Do not cast to "unsigned char""
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-This reverts commit 106b7a61c488d2022f44e3531ce33461c7c0685f.
-
-Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
-Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
----
- include/linux/fortify-string.h | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/include/linux/fortify-string.h b/include/linux/fortify-string.h
-index 5001a11258e4..1067a8450826 100644
---- a/include/linux/fortify-string.h
-+++ b/include/linux/fortify-string.h
-@@ -18,7 +18,7 @@ void __write_overflow_field(size_t avail, size_t wanted) __compiletime_warning("
-
- #define __compiletime_strlen(p) \
- ({ \
-- char *__p = (char *)(p); \
-+ unsigned char *__p = (unsigned char *)(p); \
- size_t __ret = SIZE_MAX; \
- size_t __p_size = __member_size(p); \
- if (__p_size != SIZE_MAX && \
+++ /dev/null
-From 025cbf4866306fe4823e8c316c20bdaddc6a0340 Mon Sep 17 00:00:00 2001
-From: Vlastimil Babka <vbabka@suse.cz>
-Date: Fri, 13 Jan 2023 18:33:45 +0100
-Subject: Revert "mm/compaction: fix set skip in fast_find_migrateblock"
-
-commit 95e7a450b8190673675836bfef236262ceff084a upstream.
-
-This reverts commit 7efc3b7261030da79001c00d92bc3392fd6c664c.
-
-We have got openSUSE reports (Link 1) for 6.1 kernel with khugepaged
-stalling CPU for long periods of time. Investigation of tracepoint data
-shows that compaction is stuck in repeating fast_find_migrateblock()
-based migrate page isolation, and then fails to migrate all isolated
-pages.
-
-Commit 7efc3b726103 ("mm/compaction: fix set skip in fast_find_migrateblock")
-was suspected as it was merged in 6.1 and in theory can indeed remove a
-termination condition for fast_find_migrateblock() under certain
-conditions, as it removes a place that always marks a scanned pageblock
-from being re-scanned. There are other such places, but those can be
-skipped under certain conditions, which seems to match the tracepoint
-data.
-
-Testing of revert also appears to have resolved the issue, thus revert
-the commit until a more robust solution for the original problem is
-developed.
-
-It's also likely this will fix qemu stalls with 6.1 kernel reported in
-Link 2, but that is not yet confirmed.
-
-Link: https://bugzilla.suse.com/show_bug.cgi?id=1206848
-Link: https://lore.kernel.org/kvm/b8017e09-f336-3035-8344-c549086c2340@kernel.org/
-Link: https://lore.kernel.org/lkml/20230125134434.18017-1-mgorman@techsingularity.net/
-Fixes: 7efc3b726103 ("mm/compaction: fix set skip in fast_find_migrateblock")
-Cc: <stable@vger.kernel.org>
-Tested-by: Pedro Falcato <pedro.falcato@gmail.com>
-Acked-by: Mel Gorman <mgorman@techsingularity.net>
-Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
-Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
----
- mm/compaction.c | 1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/mm/compaction.c b/mm/compaction.c
-index ca1603524bbe0..8238e83385a79 100644
---- a/mm/compaction.c
-+++ b/mm/compaction.c
-@@ -1839,6 +1839,7 @@ static unsigned long fast_find_migrateblock(struct compact_control *cc)
- pfn = cc->zone->zone_start_pfn;
- cc->fast_search_fail = 0;
- found_block = true;
-+ set_pageblock_skip(freepage);
- break;
- }
- }
---
-cgit
-Subproject commit 0494104b474afb771d7b8da8b90818e8316b387f
+Subproject commit 6f988794b04904ea15e156bfe766e30280553b0e