diff --git a/blacklist.conf b/blacklist.conf index a7351b6..44d0533 100644 --- a/blacklist.conf +++ b/blacklist.conf @@ -2809,3 +2809,6 @@ de526f401284e1638d4c97cb5a4c292ac3f37655 # not needed 07b050f9290ee012a407a0f64151db902a1520f5 # not needed with downstream version of patch a494398bde273143c2352dd373cad8211f7d94b2 # not needed with downstream version of patch 8c43bd1706885ba1acfa88da02bc60a2ec16f68c # not needed +3c91b0c1de8d013490bbc41ce9ee8810ea5baddd # not needed +64d7839af8c8f67daaf9bf387135052c55d85f90 # already applied +7856e8616273098dc6c09a6e084afd98a283ff0d # already applied diff --git a/patches.suse/0001-net-tls-fix-possible-race-condition-between-do_tls_g.patch b/patches.suse/0001-net-tls-fix-possible-race-condition-between-do_tls_g.patch new file mode 100644 index 0000000..b6a585a --- /dev/null +++ b/patches.suse/0001-net-tls-fix-possible-race-condition-between-do_tls_g.patch @@ -0,0 +1,66 @@ +From 49c47cc21b5b7a3d8deb18fc57b0aa2ab1286962 Mon Sep 17 00:00:00 2001 +From: Hangyu Hua +Date: Fri, 12 May 2023 18:14:32 +0200 +Subject: [PATCH] net: tls: fix possible race condition between + do_tls_getsockopt_conf() and do_tls_setsockopt_conf() +Git-commit: 49c47cc21b5b7a3d8deb18fc57b0aa2ab1286962 +Patch-mainline: v6.3-rc2 +References: bsc#1209366 CVE-2023-28466 + +ctx->crypto_send.info is not protected by lock_sock in +do_tls_getsockopt_conf(). A race condition between do_tls_getsockopt_conf() +and error paths of do_tls_setsockopt_conf() may lead to a use-after-free +or null-deref. + +More discussion: https://lore.kernel.org/all/Y/ht6gQL+u6fj3dG@hog/ + +Fixes: 3c4d7559159b ("tls: kernel TLS support") +Signed-off-by: Hangyu Hua +Link: https://lore.kernel.org/r/20230228023344.9623-1-hbh25y@gmail.com +Signed-off-by: Jakub Kicinski +Acked-by: Vasant Karasulli + +--- + net/tls/tls_main.c | 7 +++++-- + 1 file changed, 5 insertions(+), 2 deletions(-) + +diff --git a/net/tls/tls_main.c b/net/tls/tls_main.c +index f88878b9a..3ff2d03f1 100644 +--- a/net/tls/tls_main.c ++++ b/net/tls/tls_main.c +@@ -364,13 +364,11 @@ static int do_tls_getsockopt_tx(struct sock *sk, char __user *optval, + rc = -EINVAL; + goto out; + } +- lock_sock(sk); + memcpy(crypto_info_aes_gcm_128->iv, + ctx->tx.iv + TLS_CIPHER_AES_GCM_128_SALT_SIZE, + TLS_CIPHER_AES_GCM_128_IV_SIZE); + memcpy(crypto_info_aes_gcm_128->rec_seq, ctx->tx.rec_seq, + TLS_CIPHER_AES_GCM_128_REC_SEQ_SIZE); +- release_sock(sk); + if (copy_to_user(optval, + crypto_info_aes_gcm_128, + sizeof(*crypto_info_aes_gcm_128))) +@@ -390,6 +388,8 @@ static int do_tls_getsockopt(struct sock *sk, int optname, + { + int rc = 0; + ++ lock_sock(sk); ++ + switch (optname) { + case TLS_TX: + rc = do_tls_getsockopt_tx(sk, optval, optlen); +@@ -398,6 +398,9 @@ static int do_tls_getsockopt(struct sock *sk, int optname, + rc = -ENOPROTOOPT; + break; + } ++ ++ release_sock(sk); ++ + return rc; + } + +-- +2.34.1 + diff --git a/patches.suse/ACPI-processor-Fix-evaluating-_PDC-method-when-runni.patch b/patches.suse/ACPI-processor-Fix-evaluating-_PDC-method-when-runni.patch new file mode 100644 index 0000000..5f87fa1 --- /dev/null +++ b/patches.suse/ACPI-processor-Fix-evaluating-_PDC-method-when-runni.patch @@ -0,0 +1,145 @@ +Patch-mainline: v6.4-rc1 +Git-commit: 073828e954459b883f23e53999d31e4c55ab9654 +References: git-fixes +From: Roger Pau Monne +Date: Wed, 22 Mar 2023 12:13:29 +0100 +Subject: [PATCH] ACPI: processor: Fix evaluating _PDC method when running as + Xen dom0 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +In ACPI systems, the OS can direct power management, as opposed to the +firmware. This OS-directed Power Management is called OSPM. Part of +telling the firmware that the OS going to direct power management is +making ACPI "_PDC" (Processor Driver Capabilities) calls. These _PDC +methods must be evaluated for every processor object. If these _PDC +calls are not completed for every processor it can lead to +inconsistency and later failures in things like the CPU frequency +driver. + +In a Xen system, the dom0 kernel is responsible for system-wide power +management. The dom0 kernel is in charge of OSPM. However, the +number of CPUs available to dom0 can be different than the number of +CPUs physically present on the system. + +This leads to a problem: the dom0 kernel needs to evaluate _PDC for +all the processors, but it can't always see them. + +In dom0 kernels, ignore the existing ACPI method for determining if a +processor is physically present because it might not be accurate. +Instead, ask the hypervisor for this information. + +Fix this by introducing a custom function to use when running as Xen +dom0 in order to check whether a processor object matches a CPU that's +online. Such checking is done using the existing information fetched +by the Xen pCPU subsystem, extending it to also store the ACPI ID. + +This ensures that _PDC method gets evaluated for all physically online +CPUs, regardless of the number of CPUs made available to dom0. + +Fixes: 5d554a7bb064 ("ACPI: processor: add internal processor_physically_present()") +Signed-off-by: Roger Pau Monné +Reviewed-by: Juergen Gross +Signed-off-by: Rafael J. Wysocki +Signed-off-by: Juergen Gross +--- + drivers/acpi/processor_pdc.c | 11 +++++++++++ + drivers/xen/pcpu.c | 20 ++++++++++++++++++++ + include/xen/xen.h | 11 +++++++++++ + 3 files changed, 42 insertions(+) + +diff --git a/drivers/acpi/processor_pdc.c b/drivers/acpi/processor_pdc.c +index 8c3f82c9fff3..18fb04523f93 100644 +--- a/drivers/acpi/processor_pdc.c ++++ b/drivers/acpi/processor_pdc.c +@@ -14,6 +14,8 @@ + #include + #include + ++#include ++ + #include "internal.h" + + #define _COMPONENT ACPI_PROCESSOR_COMPONENT +@@ -47,6 +49,15 @@ static bool __init processor_physically_present(acpi_handle handle) + return false; + } + ++ if (xen_initial_domain()) ++ /* ++ * When running as a Xen dom0 the number of processors Linux ++ * sees can be different from the real number of processors on ++ * the system, and we still need to execute _PDC for all of ++ * them. ++ */ ++ return xen_processor_present(acpi_id); ++ + type = (acpi_type == ACPI_TYPE_DEVICE) ? 1 : 0; + cpuid = acpi_get_cpuid(handle, type, acpi_id); + +diff --git a/drivers/xen/pcpu.c b/drivers/xen/pcpu.c +index fd3a644b0855..b3e3d1bb37f3 100644 +--- a/drivers/xen/pcpu.c ++++ b/drivers/xen/pcpu.c +@@ -58,6 +58,7 @@ struct pcpu { + struct list_head list; + struct device dev; + uint32_t cpu_id; ++ uint32_t acpi_id; + uint32_t flags; + }; + +@@ -249,6 +250,7 @@ static struct pcpu *create_and_register_pcpu(struct xenpf_pcpuinfo *info) + + INIT_LIST_HEAD(&pcpu->list); + pcpu->cpu_id = info->xen_cpuid; ++ pcpu->acpi_id = info->acpi_id; + pcpu->flags = info->flags; + + /* Need hold on xen_pcpu_lock before pcpu list manipulations */ +@@ -381,3 +383,21 @@ static int __init xen_pcpu_init(void) + return ret; + } + arch_initcall(xen_pcpu_init); ++ ++#ifdef CONFIG_ACPI ++bool __init xen_processor_present(uint32_t acpi_id) ++{ ++ const struct pcpu *pcpu; ++ bool online = false; ++ ++ mutex_lock(&xen_pcpu_lock); ++ list_for_each_entry(pcpu, &xen_pcpus, list) ++ if (pcpu->acpi_id == acpi_id) { ++ online = pcpu->flags & XEN_PCPU_FLAGS_ONLINE; ++ break; ++ } ++ mutex_unlock(&xen_pcpu_lock); ++ ++ return online; ++} ++#endif +diff --git a/include/xen/xen.h b/include/xen/xen.h +index 7adf59837c25..0efeb652f9b8 100644 +--- a/include/xen/xen.h ++++ b/include/xen/xen.h +@@ -71,4 +71,15 @@ static inline void xen_free_unpopulated_pages(unsigned int nr_pages, + bool xen_biovec_phys_mergeable(const struct bio_vec *vec1, + const struct bio_vec *vec2); + ++#if defined(CONFIG_XEN_DOM0) && defined(CONFIG_ACPI) && defined(CONFIG_X86) ++bool __init xen_processor_present(uint32_t acpi_id); ++#else ++#include ++static inline bool xen_processor_present(uint32_t acpi_id) ++{ ++ BUG(); ++ return false; ++} ++#endif ++ + #endif /* _XEN_XEN_H */ +-- +2.35.3 + diff --git a/patches.suse/net-Extra-_get-in-declaration-of-arch_get_platform_m.patch b/patches.suse/net-Extra-_get-in-declaration-of-arch_get_platform_m.patch new file mode 100644 index 0000000..8358596 --- /dev/null +++ b/patches.suse/net-Extra-_get-in-declaration-of-arch_get_platform_m.patch @@ -0,0 +1,47 @@ +From 7cc263efedd57ce0dcbf2017802a281aaed6506b Mon Sep 17 00:00:00 2001 +From: Mathieu Malaterre +Date: Wed, 7 Feb 2018 20:35:00 +0100 +Subject: [PATCH 3/8] net: Extra '_get' in declaration of + arch_get_platform_mac_address +References: git-fixes +Patch-mainline: v4.16-rc1 +Git-commit: e728789c52afccc1275cba1dd812f03abe16ea3c + +In commit c7f5d105495a ("net: Add eth_platform_get_mac_address() helper."), +two declarations were added: + + int eth_platform_get_mac_address(struct device *dev, u8 *mac_addr); + unsigned char *arch_get_platform_get_mac_address(void); + +An extra '_get' was introduced in arch_get_platform_get_mac_address, remove +it. Fix compile warning using W=1: + + CC net/ethernet/eth.o +net/ethernet/eth.c:523:24: warning: no previous prototype for ‘arch_get_platform_mac_address’ [-Wmissing-prototypes] + unsigned char * __weak arch_get_platform_mac_address(void) + ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + AR net/ethernet/built-in.o + +Signed-off-by: Mathieu Malaterre +Signed-off-by: David S. Miller +Signed-off-by: Denis Kirjanov +--- + include/linux/etherdevice.h | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/include/linux/etherdevice.h b/include/linux/etherdevice.h +index 43c37093823e..d7a8b407207d 100644 +--- a/include/linux/etherdevice.h ++++ b/include/linux/etherdevice.h +@@ -31,7 +31,7 @@ + #ifdef __KERNEL__ + struct device; + int eth_platform_get_mac_address(struct device *dev, u8 *mac_addr); +-unsigned char *arch_get_platform_get_mac_address(void); ++unsigned char *arch_get_platform_mac_address(void); + u32 eth_get_headlen(void *data, unsigned int max_len); + __be16 eth_type_trans(struct sk_buff *skb, struct net_device *dev); + extern const struct header_ops eth_header_ops; +-- +2.16.4 + diff --git a/patches.suse/net-arc_emac-fix-arc_emac_rx-error-paths.patch b/patches.suse/net-arc_emac-fix-arc_emac_rx-error-paths.patch new file mode 100644 index 0000000..9ca58d6 --- /dev/null +++ b/patches.suse/net-arc_emac-fix-arc_emac_rx-error-paths.patch @@ -0,0 +1,102 @@ +From 3d6a68ea0b0106046832083c9496f62c416695d0 Mon Sep 17 00:00:00 2001 +From: Alexander Kochetkov +Date: Fri, 15 Dec 2017 20:20:06 +0300 +Subject: [PATCH 2/8] net: arc_emac: fix arc_emac_rx() error paths +References: git-fixes +Patch-mainline: v4.15-rc5 +Git-commit: e688822d035b494071ecbadcccbd6f3325fb0f59 + +arc_emac_rx() has some issues found by code review. + +In case netdev_alloc_skb_ip_align() or dma_map_single() failure +rx fifo entry will not be returned to EMAC. + +In case dma_map_single() failure previously allocated skb became +lost to driver. At the same time address of newly allocated skb +will not be provided to EMAC. + +Signed-off-by: Alexander Kochetkov +Signed-off-by: David S. Miller +Signed-off-by: Denis Kirjanov +--- + drivers/net/ethernet/arc/emac_main.c | 53 +++++++++++++++++++++--------------- + 1 file changed, 31 insertions(+), 22 deletions(-) + +diff --git a/drivers/net/ethernet/arc/emac_main.c b/drivers/net/ethernet/arc/emac_main.c +index 68de2f2652f2..f7e3073c4c3b 100644 +--- a/drivers/net/ethernet/arc/emac_main.c ++++ b/drivers/net/ethernet/arc/emac_main.c +@@ -210,39 +210,48 @@ static int arc_emac_rx(struct net_device *ndev, int budget) + continue; + } + +- pktlen = info & LEN_MASK; +- stats->rx_packets++; +- stats->rx_bytes += pktlen; +- skb = rx_buff->skb; +- skb_put(skb, pktlen); +- skb->dev = ndev; +- skb->protocol = eth_type_trans(skb, ndev); +- +- dma_unmap_single(&ndev->dev, dma_unmap_addr(rx_buff, addr), +- dma_unmap_len(rx_buff, len), DMA_FROM_DEVICE); +- +- /* Prepare the BD for next cycle */ +- rx_buff->skb = netdev_alloc_skb_ip_align(ndev, +- EMAC_BUFFER_SIZE); +- if (unlikely(!rx_buff->skb)) { ++ /* Prepare the BD for next cycle. netif_receive_skb() ++ * only if new skb was allocated and mapped to avoid holes ++ * in the RX fifo. ++ */ ++ skb = netdev_alloc_skb_ip_align(ndev, EMAC_BUFFER_SIZE); ++ if (unlikely(!skb)) { ++ if (net_ratelimit()) ++ netdev_err(ndev, "cannot allocate skb\n"); ++ /* Return ownership to EMAC */ ++ rxbd->info = cpu_to_le32(FOR_EMAC | EMAC_BUFFER_SIZE); + stats->rx_errors++; +- /* Because receive_skb is below, increment rx_dropped */ + stats->rx_dropped++; + continue; + } + +- /* receive_skb only if new skb was allocated to avoid holes */ +- netif_receive_skb(skb); +- +- addr = dma_map_single(&ndev->dev, (void *)rx_buff->skb->data, ++ addr = dma_map_single(&ndev->dev, (void *)skb->data, + EMAC_BUFFER_SIZE, DMA_FROM_DEVICE); + if (dma_mapping_error(&ndev->dev, addr)) { + if (net_ratelimit()) +- netdev_err(ndev, "cannot dma map\n"); +- dev_kfree_skb(rx_buff->skb); ++ netdev_err(ndev, "cannot map dma buffer\n"); ++ dev_kfree_skb(skb); ++ /* Return ownership to EMAC */ ++ rxbd->info = cpu_to_le32(FOR_EMAC | EMAC_BUFFER_SIZE); + stats->rx_errors++; ++ stats->rx_dropped++; + continue; + } ++ ++ /* unmap previosly mapped skb */ ++ dma_unmap_single(&ndev->dev, dma_unmap_addr(rx_buff, addr), ++ dma_unmap_len(rx_buff, len), DMA_FROM_DEVICE); ++ ++ pktlen = info & LEN_MASK; ++ stats->rx_packets++; ++ stats->rx_bytes += pktlen; ++ skb_put(rx_buff->skb, pktlen); ++ rx_buff->skb->dev = ndev; ++ rx_buff->skb->protocol = eth_type_trans(rx_buff->skb, ndev); ++ ++ netif_receive_skb(rx_buff->skb); ++ ++ rx_buff->skb = skb; + dma_unmap_addr_set(rx_buff, addr, addr); + dma_unmap_len_set(rx_buff, len, EMAC_BUFFER_SIZE); + +-- +2.16.4 + diff --git a/patches.suse/net-dsa-b53-Add-BCM5389-support.patch b/patches.suse/net-dsa-b53-Add-BCM5389-support.patch new file mode 100644 index 0000000..1562139 --- /dev/null +++ b/patches.suse/net-dsa-b53-Add-BCM5389-support.patch @@ -0,0 +1,109 @@ +From b1f31bcb8ab3a3324405568dccde455d96587e22 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Damien=20Th=C3=A9bault?= +Date: Thu, 31 May 2018 07:04:01 +0000 +Subject: [PATCH 8/8] net: dsa: b53: Add BCM5389 support +References: git-fixes +Patch-mainline: v4.17 +Git-commit: a95691bc54af1ac4b12c354f91e9cabf1cb068df + +This patch adds support for the BCM5389 switch connected through MDIO. + +Signed-off-by: Damien Thébault +Reviewed-by: Florian Fainelli +Signed-off-by: David S. Miller +Signed-off-by: Denis Kirjanov +--- + Documentation/devicetree/bindings/net/dsa/b53.txt | 1 + + drivers/net/dsa/b53/b53_common.c | 13 +++++++++++++ + drivers/net/dsa/b53/b53_mdio.c | 5 ++++- + drivers/net/dsa/b53/b53_priv.h | 1 + + 4 files changed, 19 insertions(+), 1 deletion(-) + +diff --git a/Documentation/devicetree/bindings/net/dsa/b53.txt b/Documentation/devicetree/bindings/net/dsa/b53.txt +index 8ec2ca21adeb..dbf3024239f9 100644 +--- a/Documentation/devicetree/bindings/net/dsa/b53.txt ++++ b/Documentation/devicetree/bindings/net/dsa/b53.txt +@@ -10,6 +10,7 @@ Required properties: + "brcm,bcm53128" + "brcm,bcm5365" + "brcm,bcm5395" ++ "brcm,bcm5389" + "brcm,bcm5397" + "brcm,bcm5398" + +diff --git a/drivers/net/dsa/b53/b53_common.c b/drivers/net/dsa/b53/b53_common.c +index 8d00d27c53bb..9cecb3237867 100644 +--- a/drivers/net/dsa/b53/b53_common.c ++++ b/drivers/net/dsa/b53/b53_common.c +@@ -1702,6 +1702,18 @@ static const struct b53_chip_data b53_switch_chips[] = { + .cpu_port = B53_CPU_PORT_25, + .duplex_reg = B53_DUPLEX_STAT_FE, + }, ++ { ++ .chip_id = BCM5389_DEVICE_ID, ++ .dev_name = "BCM5389", ++ .vlans = 4096, ++ .enabled_ports = 0x1f, ++ .arl_entries = 4, ++ .cpu_port = B53_CPU_PORT, ++ .vta_regs = B53_VTA_REGS, ++ .duplex_reg = B53_DUPLEX_STAT_GE, ++ .jumbo_pm_reg = B53_JUMBO_PORT_MASK, ++ .jumbo_size_reg = B53_JUMBO_MAX_SIZE, ++ }, + { + .chip_id = BCM5395_DEVICE_ID, + .dev_name = "BCM5395", +@@ -2031,6 +2043,7 @@ int b53_switch_detect(struct b53_device *dev) + else + dev->chip_id = BCM5365_DEVICE_ID; + break; ++ case BCM5389_DEVICE_ID: + case BCM5395_DEVICE_ID: + case BCM5397_DEVICE_ID: + case BCM5398_DEVICE_ID: +diff --git a/drivers/net/dsa/b53/b53_mdio.c b/drivers/net/dsa/b53/b53_mdio.c +index fa7556f5d4fb..a533a90e3904 100644 +--- a/drivers/net/dsa/b53/b53_mdio.c ++++ b/drivers/net/dsa/b53/b53_mdio.c +@@ -285,6 +285,7 @@ static const struct b53_io_ops b53_mdio_ops = { + #define B53_BRCM_OUI_1 0x0143bc00 + #define B53_BRCM_OUI_2 0x03625c00 + #define B53_BRCM_OUI_3 0x00406000 ++#define B53_BRCM_OUI_4 0x01410c00 + + static int b53_mdio_probe(struct mdio_device *mdiodev) + { +@@ -311,7 +312,8 @@ static int b53_mdio_probe(struct mdio_device *mdiodev) + */ + if ((phy_id & 0xfffffc00) != B53_BRCM_OUI_1 && + (phy_id & 0xfffffc00) != B53_BRCM_OUI_2 && +- (phy_id & 0xfffffc00) != B53_BRCM_OUI_3) { ++ (phy_id & 0xfffffc00) != B53_BRCM_OUI_3 && ++ (phy_id & 0xfffffc00) != B53_BRCM_OUI_4) { + dev_err(&mdiodev->dev, "Unsupported device: 0x%08x\n", phy_id); + return -ENODEV; + } +@@ -360,6 +362,7 @@ static const struct of_device_id b53_of_match[] = { + { .compatible = "brcm,bcm53125" }, + { .compatible = "brcm,bcm53128" }, + { .compatible = "brcm,bcm5365" }, ++ { .compatible = "brcm,bcm5389" }, + { .compatible = "brcm,bcm5395" }, + { .compatible = "brcm,bcm5397" }, + { .compatible = "brcm,bcm5398" }, +diff --git a/drivers/net/dsa/b53/b53_priv.h b/drivers/net/dsa/b53/b53_priv.h +index fa05db0870d6..154f1a8e8546 100644 +--- a/drivers/net/dsa/b53/b53_priv.h ++++ b/drivers/net/dsa/b53/b53_priv.h +@@ -48,6 +48,7 @@ struct b53_io_ops { + enum { + BCM5325_DEVICE_ID = 0x25, + BCM5365_DEVICE_ID = 0x65, ++ BCM5389_DEVICE_ID = 0x89, + BCM5395_DEVICE_ID = 0x95, + BCM5397_DEVICE_ID = 0x97, + BCM5398_DEVICE_ID = 0x98, +-- +2.16.4 + diff --git a/patches.suse/net-dsa-mt7530-fix-module-autoloading-for-OF-platfor.patch b/patches.suse/net-dsa-mt7530-fix-module-autoloading-for-OF-platfor.patch new file mode 100644 index 0000000..dcbaca4 --- /dev/null +++ b/patches.suse/net-dsa-mt7530-fix-module-autoloading-for-OF-platfor.patch @@ -0,0 +1,35 @@ +From 1426a112eb5e4754c772a8b19a9c411018cc7045 Mon Sep 17 00:00:00 2001 +From: Sean Wang +Date: Mon, 26 Mar 2018 18:07:10 +0800 +Subject: [PATCH 6/8] net: dsa: mt7530: fix module autoloading for OF platform + drivers +References: git-fixes +Patch-mainline: v4.16 +Git-commit: 3c82b372a9f44aa224b8d5106ff6f1ad516fa8a8 + +It's required to create a modules.alias via MODULE_DEVICE_TABLE helper +for the OF platform driver. Otherwise, module autoloading cannot work. + +Signed-off-by: Sean Wang +Reviewed-by: Andrew Lunn +Signed-off-by: David S. Miller +Signed-off-by: Denis Kirjanov +--- + drivers/net/dsa/mt7530.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/drivers/net/dsa/mt7530.c b/drivers/net/dsa/mt7530.c +index 10bc0f3082a7..9592d5b4046d 100644 +--- a/drivers/net/dsa/mt7530.c ++++ b/drivers/net/dsa/mt7530.c +@@ -1104,6 +1104,7 @@ static const struct of_device_id mt7530_of_match[] = { + { .compatible = "mediatek,mt7530" }, + { /* sentinel */ }, + }; ++MODULE_DEVICE_TABLE(of, mt7530_of_match); + + static struct mdio_driver mt7530_mdio_driver = { + .probe = mt7530_probe, +-- +2.16.4 + diff --git a/patches.suse/net-dsa-qca8k-Add-support-for-QCA8334-switch.patch b/patches.suse/net-dsa-qca8k-Add-support-for-QCA8334-switch.patch new file mode 100644 index 0000000..c601cdf --- /dev/null +++ b/patches.suse/net-dsa-qca8k-Add-support-for-QCA8334-switch.patch @@ -0,0 +1,34 @@ +From 54954337995f25829e861e19e837b2feaa22780c Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Michal=20Vok=C3=A1=C4=8D?= +Date: Wed, 23 May 2018 08:20:19 +0200 +Subject: [PATCH 2/7] net: dsa: qca8k: Add support for QCA8334 switch +References: git-fixes +Patch-mainline: v4.18-rc1 +Git-commit: 64cf81675a1f64c1b311e4611dd3b6a961607612 + +Add support for the four-port variant of the Qualcomm QCA833x switch. + +Signed-off-by: Michal Vokáč +Reviewed-by: Andrew Lunn +Reviewed-by: Florian Fainelli +Signed-off-by: David S. Miller +Signed-off-by: Denis Kirjanov +--- + drivers/net/dsa/qca8k.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/drivers/net/dsa/qca8k.c b/drivers/net/dsa/qca8k.c +index e9f5013558c8..62dac168321e 100644 +--- a/drivers/net/dsa/qca8k.c ++++ b/drivers/net/dsa/qca8k.c +@@ -1042,6 +1042,7 @@ static SIMPLE_DEV_PM_OPS(qca8k_pm_ops, + qca8k_suspend, qca8k_resume); + + static const struct of_device_id qca8k_of_match[] = { ++ { .compatible = "qca,qca8334" }, + { .compatible = "qca,qca8337" }, + { /* sentinel */ }, + }; +-- +2.16.4 + diff --git a/patches.suse/net-ethernet-ti-cpsw-phy-sel-check-bus_find_device-r.patch b/patches.suse/net-ethernet-ti-cpsw-phy-sel-check-bus_find_device-r.patch new file mode 100644 index 0000000..1c2d3a5 --- /dev/null +++ b/patches.suse/net-ethernet-ti-cpsw-phy-sel-check-bus_find_device-r.patch @@ -0,0 +1,55 @@ +From b625efefa055fff63b604f36284e5f11549bf49d Mon Sep 17 00:00:00 2001 +From: Grygorii Strashko +Date: Tue, 15 May 2018 18:37:25 -0500 +Subject: [PATCH 1/7] net: ethernet: ti: cpsw-phy-sel: check bus_find_device() + ret value +References: git-fixes +Patch-mainline: v4.18-rc1 +Git-commit: c6213eb1aee308e67377fd1890d84f7284caf531 + +This fixes klockworks warnings: Pointer 'dev' returned from call to +function 'bus_find_device' at line 179 may be NULL and will be dereferenced +at line 181. + + cpsw-phy-sel.c:179: 'dev' is assigned the return value from function 'bus_find_device'. + bus.c:342: 'bus_find_device' explicitly returns a NULL value. + cpsw-phy-sel.c:181: 'dev' is dereferenced by passing argument 1 to function 'dev_get_drvdata'. + device.h:1024: 'dev' is passed to function 'dev_get_drvdata'. + device.h:1026: 'dev' is explicitly dereferenced. + +Signed-off-by: Grygorii Strashko +[nsekhar@ti.com: add an error message, fix return path] +Signed-off-by: Sekhar Nori +Signed-off-by: David S. Miller +Signed-off-by: Denis Kirjanov +--- + drivers/net/ethernet/ti/cpsw-phy-sel.c | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +diff --git a/drivers/net/ethernet/ti/cpsw-phy-sel.c b/drivers/net/ethernet/ti/cpsw-phy-sel.c +index 18013645e76c..0c1adad7415d 100644 +--- a/drivers/net/ethernet/ti/cpsw-phy-sel.c ++++ b/drivers/net/ethernet/ti/cpsw-phy-sel.c +@@ -177,12 +177,18 @@ void cpsw_phy_sel(struct device *dev, phy_interface_t phy_mode, int slave) + } + + dev = bus_find_device(&platform_bus_type, NULL, node, match); +- of_node_put(node); ++ if (!dev) { ++ dev_err(dev, "unable to find platform device for %pOF\n", node); ++ goto out; ++ } ++ + priv = dev_get_drvdata(dev); + + priv->cpsw_phy_sel(priv, phy_mode, slave); + + put_device(dev); ++out: ++ of_node_put(node); + } + EXPORT_SYMBOL_GPL(cpsw_phy_sel); + +-- +2.16.4 + diff --git a/patches.suse/net-mediatek-setup-proper-state-for-disabled-GMAC-on.patch b/patches.suse/net-mediatek-setup-proper-state-for-disabled-GMAC-on.patch new file mode 100644 index 0000000..9b01e22 --- /dev/null +++ b/patches.suse/net-mediatek-setup-proper-state-for-disabled-GMAC-on.patch @@ -0,0 +1,49 @@ +From fbd281229913d52b2d58703af4cf85e5f41da508 Mon Sep 17 00:00:00 2001 +From: Sean Wang +Date: Mon, 18 Dec 2017 17:00:17 +0800 +Subject: [PATCH 1/8] net: mediatek: setup proper state for disabled GMAC on + the default +References: git-fixes +Patch-mainline: v4.15-rc5 +Git-commit: 7352e252b5bf40d59342494a70354a2d436fd0cd + +The current solution would setup fixed and force link of 1Gbps to the both +GMAC on the default. However, The GMAC should always be put to link down +state when the GMAC is disabled on certain target boards. Otherwise, +the driver possibly receives unexpected data from the floating hardware +connection through the unused GMAC. Although the driver had been added +certain protection in RX path to get rid of such kind of unexpected data +sent to the upper stack. + +Signed-off-by: Sean Wang +Signed-off-by: David S. Miller +Signed-off-by: Denis Kirjanov +--- + drivers/net/ethernet/mediatek/mtk_eth_soc.c | 11 ++++++----- + 1 file changed, 6 insertions(+), 5 deletions(-) + +diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c +index 5f15eb86ff00..29142c793c58 100644 +--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c ++++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c +@@ -1850,11 +1850,12 @@ static int mtk_hw_init(struct mtk_eth *eth) + /* set GE2 TUNE */ + regmap_write(eth->pctl, GPIO_BIAS_CTRL, 0x0); + +- /* GE1, Force 1000M/FD, FC ON */ +- mtk_w32(eth, MAC_MCR_FIXED_LINK, MTK_MAC_MCR(0)); +- +- /* GE2, Force 1000M/FD, FC ON */ +- mtk_w32(eth, MAC_MCR_FIXED_LINK, MTK_MAC_MCR(1)); ++ /* Set linkdown as the default for each GMAC. Its own MCR would be set ++ * up with the more appropriate value when mtk_phy_link_adjust call is ++ * being invoked. ++ */ ++ for (i = 0; i < MTK_MAC_COUNT; i++) ++ mtk_w32(eth, 0, MTK_MAC_MCR(i)); + + /* Indicates CDM to parse the MTK special tag from CPU + * which also is working out for untag packets. +-- +2.16.4 + diff --git a/patches.suse/net-mvneta-fix-enable-of-all-initialized-RXQs.patch b/patches.suse/net-mvneta-fix-enable-of-all-initialized-RXQs.patch new file mode 100644 index 0000000..6cf5845 --- /dev/null +++ b/patches.suse/net-mvneta-fix-enable-of-all-initialized-RXQs.patch @@ -0,0 +1,37 @@ +From 0d47970302527780636045ea55ce905abdb44efe Mon Sep 17 00:00:00 2001 +From: Yelena Krivosheev +Date: Fri, 30 Mar 2018 12:05:31 +0200 +Subject: [PATCH 7/8] net: mvneta: fix enable of all initialized RXQs +References: git-fixes +Patch-mainline: v4.16 +Git-commit: e81b5e01c14add8395dfba7130f8829206bb507d + +In mvneta_port_up() we enable relevant RX and TX port queues by write +queues bit map to an appropriate register. + +q_map must be ZERO in the beginning of this process. + +Signed-off-by: Yelena Krivosheev +Signed-off-by: Gregory CLEMENT +Acked-by: Thomas Petazzoni +Signed-off-by: David S. Miller +Signed-off-by: Denis Kirjanov +--- + drivers/net/ethernet/marvell/mvneta.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/drivers/net/ethernet/marvell/mvneta.c b/drivers/net/ethernet/marvell/mvneta.c +index 10fbd54eafbb..30e5f6a8bb34 100644 +--- a/drivers/net/ethernet/marvell/mvneta.c ++++ b/drivers/net/ethernet/marvell/mvneta.c +@@ -1137,6 +1137,7 @@ static void mvneta_port_up(struct mvneta_port *pp) + } + mvreg_write(pp, MVNETA_TXQ_CMD, q_map); + ++ q_map = 0; + /* Enable all initialized RXQs. */ + for (queue = 0; queue < rxq_number; queue++) { + struct mvneta_rx_queue *rxq = &pp->rxqs[queue]; +-- +2.16.4 + diff --git a/patches.suse/net-qcom-emac-Use-proper-free-methods-during-TX.patch b/patches.suse/net-qcom-emac-Use-proper-free-methods-during-TX.patch new file mode 100644 index 0000000..07d0b2b --- /dev/null +++ b/patches.suse/net-qcom-emac-Use-proper-free-methods-during-TX.patch @@ -0,0 +1,73 @@ +From 388c93a3a44a236da79ea39029a8a7e41e4f35f1 Mon Sep 17 00:00:00 2001 +From: Hemanth Puranik +Date: Tue, 6 Mar 2018 08:18:06 +0530 +Subject: [PATCH 4/8] net: qcom/emac: Use proper free methods during TX +References: git-fixes +Patch-mainline: v4.16-rc7 +Git-commit: cc5db3150e87fe7f7e947bf333b6c1c97f848ecb + +This patch fixes the warning messages/call traces seen if DMA debug is +enabled, In case of fragmented skb's memory was allocated using +dma_map_page but freed using dma_unmap_single. This patch modifies buffer +allocations in TX path to use dma_map_page in all the places and +dma_unmap_page while freeing the buffers. + +Signed-off-by: Hemanth Puranik +Acked-by: Timur Tabi +Signed-off-by: David S. Miller +Signed-off-by: Denis Kirjanov +--- + drivers/net/ethernet/qualcomm/emac/emac-mac.c | 23 ++++++++++++++--------- + 1 file changed, 14 insertions(+), 9 deletions(-) + +diff --git a/drivers/net/ethernet/qualcomm/emac/emac-mac.c b/drivers/net/ethernet/qualcomm/emac/emac-mac.c +index 7715a0d4b28b..af197513d75a 100644 +--- a/drivers/net/ethernet/qualcomm/emac/emac-mac.c ++++ b/drivers/net/ethernet/qualcomm/emac/emac-mac.c +@@ -1182,9 +1182,9 @@ void emac_mac_tx_process(struct emac_adapter *adpt, struct emac_tx_queue *tx_q) + while (tx_q->tpd.consume_idx != hw_consume_idx) { + tpbuf = GET_TPD_BUFFER(tx_q, tx_q->tpd.consume_idx); + if (tpbuf->dma_addr) { +- dma_unmap_single(adpt->netdev->dev.parent, +- tpbuf->dma_addr, tpbuf->length, +- DMA_TO_DEVICE); ++ dma_unmap_page(adpt->netdev->dev.parent, ++ tpbuf->dma_addr, tpbuf->length, ++ DMA_TO_DEVICE); + tpbuf->dma_addr = 0; + } + +@@ -1341,9 +1341,11 @@ static void emac_tx_fill_tpd(struct emac_adapter *adpt, + + tpbuf = GET_TPD_BUFFER(tx_q, tx_q->tpd.produce_idx); + tpbuf->length = mapped_len; +- tpbuf->dma_addr = dma_map_single(adpt->netdev->dev.parent, +- skb->data, tpbuf->length, +- DMA_TO_DEVICE); ++ tpbuf->dma_addr = dma_map_page(adpt->netdev->dev.parent, ++ virt_to_page(skb->data), ++ offset_in_page(skb->data), ++ tpbuf->length, ++ DMA_TO_DEVICE); + ret = dma_mapping_error(adpt->netdev->dev.parent, + tpbuf->dma_addr); + if (ret) +@@ -1359,9 +1361,12 @@ static void emac_tx_fill_tpd(struct emac_adapter *adpt, + if (mapped_len < len) { + tpbuf = GET_TPD_BUFFER(tx_q, tx_q->tpd.produce_idx); + tpbuf->length = len - mapped_len; +- tpbuf->dma_addr = dma_map_single(adpt->netdev->dev.parent, +- skb->data + mapped_len, +- tpbuf->length, DMA_TO_DEVICE); ++ tpbuf->dma_addr = dma_map_page(adpt->netdev->dev.parent, ++ virt_to_page(skb->data + ++ mapped_len), ++ offset_in_page(skb->data + ++ mapped_len), ++ tpbuf->length, DMA_TO_DEVICE); + ret = dma_mapping_error(adpt->netdev->dev.parent, + tpbuf->dma_addr); + if (ret) +-- +2.16.4 + diff --git a/patches.suse/s390-ctcm-fix-ctcm_new_device-error-return-code.patch b/patches.suse/s390-ctcm-fix-ctcm_new_device-error-return-code.patch new file mode 100644 index 0000000..db30e9c --- /dev/null +++ b/patches.suse/s390-ctcm-fix-ctcm_new_device-error-return-code.patch @@ -0,0 +1,51 @@ +From: Arnd Bergmann +Date: Wed, 17 Apr 2019 18:29:13 +0200 +Subject: s390: ctcm: fix ctcm_new_device error return code +Git-commit: 27b141fc234a3670d21bd742c35d7205d03cbb3a +Patch-mainline: v5.1-rc7 +References: git-fixes bsc#1211361 + +clang points out that the return code from this function is +undefined for one of the error paths: + +../drivers/s390/net/ctcm_main.c:1595:7: warning: variable 'result' is used uninitialized whenever 'if' condition is true + [-Wsometimes-uninitialized] + if (priv->channel[direction] == NULL) { + ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +../drivers/s390/net/ctcm_main.c:1638:9: note: uninitialized use occurs here + return result; + ^~~~~~ +../drivers/s390/net/ctcm_main.c:1595:3: note: remove the 'if' if its condition is always false + if (priv->channel[direction] == NULL) { + ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +../drivers/s390/net/ctcm_main.c:1539:12: note: initialize the variable 'result' to silence this warning + int result; + ^ + +Make it return -ENODEV here, as in the related failure cases. +gcc has a known bug in underreporting some of these warnings +when it has already eliminated the assignment of the return code +based on some earlier optimization step. + +Reviewed-by: Nathan Chancellor +Signed-off-by: Arnd Bergmann +Signed-off-by: Julian Wiedmann +Signed-off-by: David S. Miller +Acked-by: Miroslav Franc +--- + drivers/s390/net/ctcm_main.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/drivers/s390/net/ctcm_main.c b/drivers/s390/net/ctcm_main.c +index 7617d21cb296..f63c5c871d3d 100644 +--- a/drivers/s390/net/ctcm_main.c ++++ b/drivers/s390/net/ctcm_main.c +@@ -1595,6 +1595,7 @@ static int ctcm_new_device(struct ccwgroup_device *cgdev) + if (priv->channel[direction] == NULL) { + if (direction == CTCM_WRITE) + channel_free(priv->channel[CTCM_READ]); ++ result = -ENODEV; + goto out_dev; + } + priv->channel[direction]->netdev = dev; + diff --git a/patches.suse/s390-dasd-correct-numa_node-in-dasd_alloc_queue.patch b/patches.suse/s390-dasd-correct-numa_node-in-dasd_alloc_queue.patch new file mode 100644 index 0000000..b2a9756 --- /dev/null +++ b/patches.suse/s390-dasd-correct-numa_node-in-dasd_alloc_queue.patch @@ -0,0 +1,32 @@ +From: Vasily Gorbik +Date: Sun, 24 Jun 2018 09:21:59 +0200 +Subject: s390/dasd: correct numa_node in dasd_alloc_queue +Git-commit: b17e3abb0af404cb62ad4ef1a5962f58b06e2b78 +Patch-mainline: v4.19-rc1 +References: git-fixes bsc#1211362 + +The numa_node field of the tag_set struct has to be explicitly +initialized, otherwise it stays as 0, which is a valid numa node id and +cause memory allocation failure if node 0 is offline. + +Acked-by: Stefan Haberland +Signed-off-by: Vasily Gorbik +Signed-off-by: Martin Schwidefsky +Acked-by: Miroslav Franc +--- + drivers/s390/block/dasd.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/drivers/s390/block/dasd.c b/drivers/s390/block/dasd.c +index d3a38c421503..7c3dddeb781c 100644 +--- a/drivers/s390/block/dasd.c ++++ b/drivers/s390/block/dasd.c +@@ -3120,6 +3120,7 @@ static int dasd_alloc_queue(struct dasd_block *block) + block->tag_set.nr_hw_queues = nr_hw_queues; + block->tag_set.queue_depth = queue_depth; + block->tag_set.flags = BLK_MQ_F_SHOULD_MERGE; ++ block->tag_set.numa_node = NUMA_NO_NODE; + + rc = blk_mq_alloc_tag_set(&block->tag_set); + if (rc) + diff --git a/patches.suse/s390-extmem-fix-gcc-8-stringop-overflow-warning.patch b/patches.suse/s390-extmem-fix-gcc-8-stringop-overflow-warning.patch new file mode 100644 index 0000000..eb7a665 --- /dev/null +++ b/patches.suse/s390-extmem-fix-gcc-8-stringop-overflow-warning.patch @@ -0,0 +1,52 @@ +From: Vasily Gorbik +Date: Sun, 17 Jun 2018 00:30:43 +0200 +Subject: s390/extmem: fix gcc 8 stringop-overflow warning +Git-commit: 6b2ddf33baec23dace85bd647e3fc4ac070963e8 +Patch-mainline: v4.19-rc1 +References: git-fixes bsc#1211363 + +arch/s390/mm/extmem.c: In function '__segment_load': +arch/s390/mm/extmem.c:436:2: warning: 'strncat' specified bound 7 equals +source length [-Wstringop-overflow=] + strncat(seg->res_name, " (DCSS)", 7); + +What gcc complains about here is the misuse of strncat function, which +in this case does not limit a number of bytes taken from "src", so it is +in the end the same as strcat(seg->res_name, " (DCSS)"); + +Keeping in mind that a res_name is 15 bytes, strncat in this case +would overflow the buffer and write 0 into alignment byte between the +fields in the struct. To avoid that increasing res_name size to 16, +and reusing strlcat. + +Reviewed-by: Heiko Carstens +Signed-off-by: Vasily Gorbik +Signed-off-by: Martin Schwidefsky +Acked-by: Miroslav Franc +--- + arch/s390/mm/extmem.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/arch/s390/mm/extmem.c b/arch/s390/mm/extmem.c +index 6ad15d3fab81..84111a43ea29 100644 +--- a/arch/s390/mm/extmem.c ++++ b/arch/s390/mm/extmem.c +@@ -80,7 +80,7 @@ struct qin64 { + struct dcss_segment { + struct list_head list; + char dcss_name[8]; +- char res_name[15]; ++ char res_name[16]; + unsigned long start_addr; + unsigned long end; + atomic_t ref_count; +@@ -433,7 +433,7 @@ __segment_load (char *name, int do_nonshared, unsigned long *addr, unsigned long + memcpy(&seg->res_name, seg->dcss_name, 8); + EBCASC(seg->res_name, 8); + seg->res_name[8] = '\0'; +- strncat(seg->res_name, " (DCSS)", 7); ++ strlcat(seg->res_name, " (DCSS)", sizeof(seg->res_name)); + seg->res->name = seg->res_name; + rc = seg->vm_segtype; + if (rc == SEG_TYPE_SC || + diff --git a/patches.suse/s390-kasan-fix-early-pgm-check-handler-execution.patch b/patches.suse/s390-kasan-fix-early-pgm-check-handler-execution.patch new file mode 100644 index 0000000..fa90017 --- /dev/null +++ b/patches.suse/s390-kasan-fix-early-pgm-check-handler-execution.patch @@ -0,0 +1,38 @@ +From: Vasily Gorbik +Date: Wed, 17 Jun 2020 15:05:49 +0200 +Subject: s390/kasan: fix early pgm check handler execution +Git-commit: 998f5bbe3dbdab81c1cfb1aef7c3892f5d24f6c7 +Patch-mainline: v5.8-rc3 +References: git-fixes bsc#1211360 + +Currently if early_pgm_check_handler is called it ends up in pgm check +loop. The problem is that early_pgm_check_handler is instrumented by +KASAN but executed without DAT flag enabled which leads to addressing +exception when KASAN checks try to access shadow memory. + +Fix that by executing early handlers with DAT flag on under KASAN as +expected. + +Reported-and-tested-by: Alexander Egorenkov +Reviewed-by: Heiko Carstens +Signed-off-by: Vasily Gorbik +Signed-off-by: Heiko Carstens +Acked-by: Miroslav Franc +--- + arch/s390/kernel/early.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/arch/s390/kernel/early.c b/arch/s390/kernel/early.c +index cd241ee66eff..078277231858 100644 +--- a/arch/s390/kernel/early.c ++++ b/arch/s390/kernel/early.c +@@ -170,6 +170,8 @@ static noinline __init void setup_lowcore_early(void) + psw_t psw; + + psw.mask = PSW_MASK_BASE | PSW_DEFAULT_KEY | PSW_MASK_EA | PSW_MASK_BA; ++ if (IS_ENABLED(CONFIG_KASAN)) ++ psw.mask |= PSW_MASK_DAT; + psw.addr = (unsigned long) s390_base_ext_handler; + S390_lowcore.external_new_psw = psw; + psw.addr = (unsigned long) s390_base_pgm_handler; + diff --git a/patches.suse/s390-pci-fix-sleeping-in-atomic-during-hotplug.patch b/patches.suse/s390-pci-fix-sleeping-in-atomic-during-hotplug.patch new file mode 100644 index 0000000..27288e0 --- /dev/null +++ b/patches.suse/s390-pci-fix-sleeping-in-atomic-during-hotplug.patch @@ -0,0 +1,39 @@ +From: Sebastian Ott +Date: Thu, 18 Oct 2018 11:11:08 +0200 +Subject: s390/pci: fix sleeping in atomic during hotplug +Git-commit: 98dfd32620e970eb576ebce5ea39d905cb005e72 +Patch-mainline: v5.0-rc1 +References: git-fixes bsc#1211364 + +When triggered by pci hotplug (PEC 0x306) clp_get_state is called +with spinlocks held resulting in the following warning: + +zpci: n/a: Event 0x306 reconfigured PCI function 0x0 +BUG: sleeping function called from invalid context at mm/page_alloc.c:4324 +in_atomic(): 1, irqs_disabled(): 0, pid: 98, name: kmcheck +2 locks held by kmcheck/98: + +Change the allocation to use GFP_ATOMIC. + +Cc: stable@vger.kernel.org # 4.13+ +Signed-off-by: Sebastian Ott +Signed-off-by: Martin Schwidefsky +Acked-by: Miroslav Franc +--- + arch/s390/pci/pci_clp.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/arch/s390/pci/pci_clp.c b/arch/s390/pci/pci_clp.c +index 19b2d2a9b43d..eeb7450db18c 100644 +--- a/arch/s390/pci/pci_clp.c ++++ b/arch/s390/pci/pci_clp.c +@@ -436,7 +436,7 @@ int clp_get_state(u32 fid, enum zpci_state *state) + struct clp_state_data sd = {fid, ZPCI_FN_STATE_RESERVED}; + int rc; + +- rrb = clp_alloc_block(GFP_KERNEL); ++ rrb = clp_alloc_block(GFP_ATOMIC); + if (!rrb) + return -ENOMEM; + + diff --git a/patches.suse/s390-scm_blk-correct-numa_node-in-scm_blk_dev_setup.patch b/patches.suse/s390-scm_blk-correct-numa_node-in-scm_blk_dev_setup.patch new file mode 100644 index 0000000..fd25c97 --- /dev/null +++ b/patches.suse/s390-scm_blk-correct-numa_node-in-scm_blk_dev_setup.patch @@ -0,0 +1,32 @@ +From: Vasily Gorbik +Date: Mon, 25 Jun 2018 14:30:42 +0200 +Subject: s390/scm_blk: correct numa_node in scm_blk_dev_setup +Git-commit: d642d6262f4fcfa5d200ec6e218c17f0c15b3390 +Patch-mainline: v4.19-rc1 +References: git-fixes bsc#1211365 + +The numa_node field of the tag_set struct has to be explicitly +initialized, otherwise it stays as 0, which is a valid numa node id and +cause memory allocation failure if node 0 is offline. + +Acked-by: Sebastian Ott +Signed-off-by: Vasily Gorbik +Signed-off-by: Martin Schwidefsky +Acked-by: Miroslav Franc +--- + drivers/s390/block/scm_blk.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/drivers/s390/block/scm_blk.c b/drivers/s390/block/scm_blk.c +index b1fcb76dd272..98f66b7b6794 100644 +--- a/drivers/s390/block/scm_blk.c ++++ b/drivers/s390/block/scm_blk.c +@@ -455,6 +455,7 @@ int scm_blk_dev_setup(struct scm_blk_dev *bdev, struct scm_device *scmdev) + bdev->tag_set.nr_hw_queues = nr_requests; + bdev->tag_set.queue_depth = nr_requests_per_io * nr_requests; + bdev->tag_set.flags = BLK_MQ_F_SHOULD_MERGE; ++ bdev->tag_set.numa_node = NUMA_NO_NODE; + + ret = blk_mq_alloc_tag_set(&bdev->tag_set); + if (ret) + diff --git a/patches.suse/s390-sysinfo-add-missing-ifdef-CONFIG_PROC_FS.patch b/patches.suse/s390-sysinfo-add-missing-ifdef-CONFIG_PROC_FS.patch new file mode 100644 index 0000000..45b3d09 --- /dev/null +++ b/patches.suse/s390-sysinfo-add-missing-ifdef-CONFIG_PROC_FS.patch @@ -0,0 +1,43 @@ +From: Heiko Carstens +Date: Mon, 2 Jul 2018 10:54:02 +0200 +Subject: s390/sysinfo: add missing #ifdef CONFIG_PROC_FS +Git-commit: 9f35b818a2f90fb6cb291aa0c9f835d4f0974a9a +Patch-mainline: v4.19-rc1 +References: git-fixes bsc#1211366 + +Get rid of this compile warning for !PROC_FS: + + CC arch/s390/kernel/sysinfo.o +arch/s390/kernel/sysinfo.c:275:12: warning: 'sysinfo_show' defined but not used [-Wunused-function] + static int sysinfo_show(struct seq_file *m, void *v) + +Signed-off-by: Heiko Carstens +Signed-off-by: Martin Schwidefsky +Acked-by: Miroslav Franc +--- + arch/s390/kernel/sysinfo.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/arch/s390/kernel/sysinfo.c b/arch/s390/kernel/sysinfo.c +index 54f5496913fa..12f80d1f0415 100644 +--- a/arch/s390/kernel/sysinfo.c ++++ b/arch/s390/kernel/sysinfo.c +@@ -59,6 +59,8 @@ int stsi(void *sysinfo, int fc, int sel1, int sel2) + } + EXPORT_SYMBOL(stsi); + ++#ifdef CONFIG_PROC_FS ++ + static bool convert_ext_name(unsigned char encoding, char *name, size_t len) + { + switch (encoding) { +@@ -301,6 +303,8 @@ static int __init sysinfo_create_proc(void) + } + device_initcall(sysinfo_create_proc); + ++#endif /* CONFIG_PROC_FS */ ++ + /* + * Service levels interface. + */ + diff --git a/patches.suse/sunvnet-does-not-support-GSO-for-sctp.patch b/patches.suse/sunvnet-does-not-support-GSO-for-sctp.patch new file mode 100644 index 0000000..401fd8e --- /dev/null +++ b/patches.suse/sunvnet-does-not-support-GSO-for-sctp.patch @@ -0,0 +1,37 @@ +From 15f8e04409aedb5e33e6e662b128b9643d17a7f3 Mon Sep 17 00:00:00 2001 +From: Cathy Zhou +Date: Wed, 14 Mar 2018 10:56:07 -0700 +Subject: [PATCH 5/8] sunvnet: does not support GSO for sctp +References: git-fixes +Patch-mainline: v4.16-rc7 +Git-commit: cf55612a945039476abfd73e39064b2e721c3272 + +The NETIF_F_GSO_SOFTWARE implies support for GSO on SCTP, but the +sunvnet driver does not support GSO for sctp. Here we remove the +NETIF_F_GSO_SOFTWARE feature flag and only report NETIF_F_ALL_TSO +instead. + +Signed-off-by: Cathy Zhou +Signed-off-by: Shannon Nelson +Signed-off-by: David S. Miller +Signed-off-by: Denis Kirjanov +--- + drivers/net/ethernet/sun/sunvnet.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/drivers/net/ethernet/sun/sunvnet.c b/drivers/net/ethernet/sun/sunvnet.c +index e9e4b582082b..6e0947d69048 100644 +--- a/drivers/net/ethernet/sun/sunvnet.c ++++ b/drivers/net/ethernet/sun/sunvnet.c +@@ -312,7 +312,7 @@ static struct vnet *vnet_new(const u64 *local_mac, + dev->ethtool_ops = &vnet_ethtool_ops; + dev->watchdog_timeo = VNET_TX_TIMEOUT; + +- dev->hw_features = NETIF_F_TSO | NETIF_F_GSO | NETIF_F_GSO_SOFTWARE | ++ dev->hw_features = NETIF_F_TSO | NETIF_F_GSO | NETIF_F_ALL_TSO | + NETIF_F_HW_CSUM | NETIF_F_SG; + dev->features = dev->hw_features; + +-- +2.16.4 + diff --git a/patches.suse/xen-netback-don-t-do-grant-copy-across-page-boundary.patch b/patches.suse/xen-netback-don-t-do-grant-copy-across-page-boundary.patch new file mode 100644 index 0000000..d1a29aa --- /dev/null +++ b/patches.suse/xen-netback-don-t-do-grant-copy-across-page-boundary.patch @@ -0,0 +1,122 @@ +Patch-mainline: v6.3-rc5 +Git-commit: 05310f31ca74673a96567fb14637b7d5d6c82ea5 +References: git-fixes +From: Juergen Gross +Date: Mon, 27 Mar 2023 10:36:45 +0200 +Subject: [PATCH] xen/netback: don't do grant copy across page boundary + +Fix xenvif_get_requests() not to do grant copy operations across local +page boundaries. This requires to double the maximum number of copy +operations per queue, as each copy could now be split into 2. + +Make sure that struct xenvif_tx_cb doesn't grow too large. + +Cc: stable@vger.kernel.org +Fixes: ad7f402ae4f4 ("xen/netback: Ensure protocol headers don't fall in the non-linear area") +Signed-off-by: Juergen Gross +Reviewed-by: Paul Durrant +Signed-off-by: Paolo Abeni +--- + drivers/net/xen-netback/common.h | 2 +- + drivers/net/xen-netback/netback.c | 25 +++++++++++++++++++++++-- + 2 files changed, 24 insertions(+), 3 deletions(-) + +diff --git a/drivers/net/xen-netback/common.h b/drivers/net/xen-netback/common.h +index 3dbfc8a6924e..1fcbd83f7ff2 100644 +--- a/drivers/net/xen-netback/common.h ++++ b/drivers/net/xen-netback/common.h +@@ -166,7 +166,7 @@ struct xenvif_queue { /* Per-queue data for xenvif */ + struct pending_tx_info pending_tx_info[MAX_PENDING_REQS]; + grant_handle_t grant_tx_handle[MAX_PENDING_REQS]; + +- struct gnttab_copy tx_copy_ops[MAX_PENDING_REQS]; ++ struct gnttab_copy tx_copy_ops[2 * MAX_PENDING_REQS]; + struct gnttab_map_grant_ref tx_map_ops[MAX_PENDING_REQS]; + struct gnttab_unmap_grant_ref tx_unmap_ops[MAX_PENDING_REQS]; + /* passed to gnttab_[un]map_refs with pages under (un)mapping */ +diff --git a/drivers/net/xen-netback/netback.c b/drivers/net/xen-netback/netback.c +index 1b42676ca141..111c179f161b 100644 +--- a/drivers/net/xen-netback/netback.c ++++ b/drivers/net/xen-netback/netback.c +@@ -334,6 +334,7 @@ static int xenvif_count_requests(struct xenvif_queue *queue, + struct xenvif_tx_cb { + u16 copy_pending_idx[XEN_NETBK_LEGACY_SLOTS_MAX + 1]; + u8 copy_count; ++ u32 split_mask; + }; + + #define XENVIF_TX_CB(skb) ((struct xenvif_tx_cb *)(skb)->cb) +@@ -361,6 +362,8 @@ static inline struct sk_buff *xenvif_alloc_skb(unsigned int size) + struct sk_buff *skb = + alloc_skb(size + NET_SKB_PAD + NET_IP_ALIGN, + GFP_ATOMIC | __GFP_NOWARN); ++ ++ BUILD_BUG_ON(sizeof(*XENVIF_TX_CB(skb)) > sizeof(skb->cb)); + if (unlikely(skb == NULL)) + return NULL; + +@@ -396,11 +399,13 @@ static void xenvif_get_requests(struct xenvif_queue *queue, + nr_slots = shinfo->nr_frags + 1; + + copy_count(skb) = 0; ++ XENVIF_TX_CB(skb)->split_mask = 0; + + /* Create copy ops for exactly data_len bytes into the skb head. */ + __skb_put(skb, data_len); + while (data_len > 0) { + int amount = data_len > txp->size ? txp->size : data_len; ++ bool split = false; + + cop->source.u.ref = txp->gref; + cop->source.domid = queue->vif->domid; +@@ -413,6 +418,13 @@ static void xenvif_get_requests(struct xenvif_queue *queue, + cop->dest.u.gmfn = virt_to_gfn(skb->data + skb_headlen(skb) + - data_len); + ++ /* Don't cross local page boundary! */ ++ if (cop->dest.offset + amount > XEN_PAGE_SIZE) { ++ amount = XEN_PAGE_SIZE - cop->dest.offset; ++ XENVIF_TX_CB(skb)->split_mask |= 1U << copy_count(skb); ++ split = true; ++ } ++ + cop->len = amount; + cop->flags = GNTCOPY_source_gref; + +@@ -420,7 +432,8 @@ static void xenvif_get_requests(struct xenvif_queue *queue, + pending_idx = queue->pending_ring[index]; + callback_param(queue, pending_idx).ctx = NULL; + copy_pending_idx(skb, copy_count(skb)) = pending_idx; +- copy_count(skb)++; ++ if (!split) ++ copy_count(skb)++; + + cop++; + data_len -= amount; +@@ -441,7 +454,8 @@ static void xenvif_get_requests(struct xenvif_queue *queue, + nr_slots--; + } else { + /* The copy op partially covered the tx_request. +- * The remainder will be mapped. ++ * The remainder will be mapped or copied in the next ++ * iteration. + */ + txp->offset += amount; + txp->size -= amount; +@@ -539,6 +553,13 @@ static int xenvif_tx_check_gop(struct xenvif_queue *queue, + pending_idx = copy_pending_idx(skb, i); + + newerr = (*gopp_copy)->status; ++ ++ /* Split copies need to be handled together. */ ++ if (XENVIF_TX_CB(skb)->split_mask & (1U << i)) { ++ (*gopp_copy)++; ++ if (!newerr) ++ newerr = (*gopp_copy)->status; ++ } + if (likely(!newerr)) { + /* The first frag might still have this slot mapped */ + if (i < copy_count(skb) - 1 || !sharedslot) +-- +2.35.3 + diff --git a/patches.suse/xen-netback-use-same-error-messages-for-same-errors.patch b/patches.suse/xen-netback-use-same-error-messages-for-same-errors.patch new file mode 100644 index 0000000..f057fa2 --- /dev/null +++ b/patches.suse/xen-netback-use-same-error-messages-for-same-errors.patch @@ -0,0 +1,39 @@ +Patch-mainline: v6.3-rc5 +Git-commit: 2eca98e5b24d01c02b46c67be05a5f98cc9789b1 +References: git-fixes +From: Juergen Gross +Date: Wed, 29 Mar 2023 10:02:59 +0200 +Subject: [PATCH] xen/netback: use same error messages for same errors + +Issue the same error message in case an illegal page boundary crossing +has been detected in both cases where this is tested. + +Suggested-by: Jan Beulich +Signed-off-by: Juergen Gross +Reviewed-by: Jan Beulich +Link: https://lore.kernel.org/r/20230329080259.14823-1-jgross@suse.com +Signed-off-by: Paolo Abeni +--- + drivers/net/xen-netback/netback.c | 6 ++---- + 1 file changed, 2 insertions(+), 4 deletions(-) + +diff --git a/drivers/net/xen-netback/netback.c b/drivers/net/xen-netback/netback.c +index 4943be4fd99d..c1501f41e2d8 100644 +--- a/drivers/net/xen-netback/netback.c ++++ b/drivers/net/xen-netback/netback.c +@@ -994,10 +994,8 @@ static void xenvif_tx_build_gops(struct xenvif_queue *queue, + + /* No crossing a page as the payload mustn't fragment. */ + if (unlikely((txreq.offset + txreq.size) > XEN_PAGE_SIZE)) { +- netdev_err(queue->vif->dev, +- "txreq.offset: %u, size: %u, end: %lu\n", +- txreq.offset, txreq.size, +- (unsigned long)(txreq.offset&~XEN_PAGE_MASK) + txreq.size); ++ netdev_err(queue->vif->dev, "Cross page boundary, txreq.offset: %u, size: %u\n", ++ txreq.offset, txreq.size); + xenvif_fatal_tx_err(queue->vif); + break; + } +-- +2.35.3 + diff --git a/series.conf b/series.conf index c1cd3c9..3b408ca 100644 --- a/series.conf +++ b/series.conf @@ -18880,6 +18880,8 @@ patches.suse/mac80211_hwsim-Fix-a-possible-sleep-in-atomic-bug-in patches.suse/tg3-Fix-rx-hang-on-MTU-change-with-5717-5719.patch patches.suse/mlxsw-spectrum_router-Remove-batch-neighbour-deletio.patch + patches.suse/net-mediatek-setup-proper-state-for-disabled-GMAC-on.patch + patches.suse/net-arc_emac-fix-arc_emac_rx-error-paths.patch patches.suse/vxlan-update-skb-dst-pmtu-on-tx-path.patch patches.suse/ip_gre-remove-the-incorrect-mtu-limit-for-ipgre-tap.patch patches.suse/ip6_gre-remove-the-incorrect-mtu-limit-for-ipgre-tap.patch @@ -24459,6 +24461,7 @@ patches.suse/nfp-populate-MODULE_VERSION.patch patches.suse/netlink-ensure-to-loop-over-all-netns-in-genlmsg_mul.patch patches.suse/ibmvnic-queue-reset-when-CRQ-gets-closed-during-rese.patch + patches.suse/net-Extra-_get-in-declaration-of-arch_get_platform_m.patch patches.suse/net-sched-cls_u32-fix-cls_u32-on-filter-replace.patch patches.suse/rtlwifi-rtl8821ae-Fix-connection-lost-problem-correc patches.suse/ath10k-correct-the-length-of-DRAM-dump-for-QCA6174-h.patch @@ -25507,6 +25510,7 @@ patches.suse/e1000e-Fix-check_for_link-return-value-with-autoneg-.patch patches.suse/e1000e-allocate-ring-descriptors-with-dma_zalloc_coh.patch patches.suse/qed-Free-RoCE-ILT-Memory-on-rmmod-qedr.patch + patches.suse/net-qcom-emac-Use-proper-free-methods-during-TX.patch patches.suse/net-smsc911x-Fix-unload-crash-when-link-is-up.patch patches.suse/net-Fix-hlist-corruptions-in-inet_evict_bucket.patch patches.suse/l2tp-do-not-accept-arbitrary-sockets.patch @@ -25582,6 +25586,7 @@ patches.suse/tg3-prevent-scheduling-while-atomic-splat.patch patches.suse/can-cc770-Fix-stalls-on-rt-linux-remove-redundant-IR patches.suse/can-cc770-Fix-queue-stall-dropped-RTR-reply + patches.suse/sunvnet-does-not-support-GSO-for-sctp.patch patches.suse/s390-sles15sp1-00-11-062-net-smc-simplify-wait-when-closing-listen-socket.patch patches.suse/net-sched-actions-return-explicit-error-when-tunnel_.patch patches.suse/0010-net-Fix-vlan-untag-for-bridge-and-vlan_dev-with-reor.patch @@ -25795,6 +25800,7 @@ patches.suse/team-move-dev_mc_sync-after-master_upper_dev_link-in.patch patches.suse/0001-net-usb-qmi_wwan.c-Add-USB-id-for-lt4120-modem.patch patches.suse/vhost_net-add-missing-lock-nesting-notation.patch + patches.suse/net-dsa-mt7530-fix-module-autoloading-for-OF-platfor.patch patches.suse/batman-adv-fix-multicast-via-unicast-transmission-wi.patch patches.suse/batman-adv-fix-packet-loss-for-broadcasted-DHCP-pack.patch patches.suse/0001-net-usb-add-qmi_wwan-if-on-lte-modem-wistron-neweb-d.patch @@ -25833,6 +25839,7 @@ patches.suse/ipv6-sr-fix-seg6-encap-performances-with-TSO-enabled.patch patches.suse/vrf-Fix-use-after-free-and-double-free-in-vrf_finish.patch patches.suse/net-ipv6-Fix-route-leaking-between-VRFs.patch + patches.suse/net-mvneta-fix-enable-of-all-initialized-RXQs.patch patches.suse/x86-alternatives-fixup-alternative_call_2 patches.suse/x86-platform-uv-fix-critical-uv-mmr-address-error patches.suse/perf-x86-intel-fix-linear-ip-of-pebs-real_ip-on-haswell-and-later-cpus @@ -31131,6 +31138,7 @@ patches.suse/ixgbe-fix-parsing-of-TC-actions-for-HW-offload.patch patches.suse/net-sysfs-Fix-memory-leak-in-XPS-configuration.patch patches.suse/kcm-Fix-use-after-free-caused-by-clonned-sockets.patch + patches.suse/net-dsa-b53-Add-BCM5389-support.patch patches.suse/0017-xfrm6-avoid-potential-infinite-loop-in-_decode_sessi.patch patches.suse/ip_tunnel-restore-binding-to-ifaces-with-a-large-mtu.patch patches.suse/ip6_tunnel-remove-magic-mtu-value-0xFFF8.patch @@ -33401,6 +33409,7 @@ patches.suse/s390-sles15sp1-00-11-093-net-smc-drop-messages-when-link-state-is-inactive.patch patches.suse/s390-sles15sp1-00-11-094-net-smc-check-for-pending-termination.patch patches.suse/sched-manipulate-__QDISC_STATE_RUNNING-in-qdisc_run_.patch + patches.suse/net-ethernet-ti-cpsw-phy-sel-check-bus_find_device-r.patch patches.suse/qed-Fix-possibility-of-list-corruption-during-rmmod-.patch patches.suse/qed-Fix-LL2-race-during-connection-terminate.patch patches.suse/cxgb4-update-LE-TCAM-collection-for-T6.patch @@ -33663,6 +33672,7 @@ patches.suse/msft-hv-1690-hv_netvsc-Add-handlers-for-ethtool-get-set-msg-level.patch patches.suse/cxgb4-Add-new-T6-device-ids.patch patches.suse/net-dsa-qca8k-add-qca8334-binding-documentation.patch + patches.suse/net-dsa-qca8k-Add-support-for-QCA8334-switch.patch patches.suse/0006-net-dsa-qca8k-Enable-RXMAC-when-bringing-up-a-port.patch patches.suse/0007-net-dsa-qca8k-Force-CPU-port-to-its-highest-bandwidt.patch patches.suse/0008-net-dsa-qca8k-Allow-overwriting-CPU-port-setting.patch @@ -36251,7 +36261,11 @@ patches.suse/s390-sles15sp1-00-03-04-zcrypt-Review-inline-assembler-constraints.patch patches.suse/s390-sles15sp1-00-03-05-zcrypt-Show-load-of-cards-and-queues-in-sysfs.patch patches.suse/s390-sles15sp1-00-03-06-zcrypt-Integrate-ap_asm.h-into-include-asm-ap.h.patch + patches.suse/s390-dasd-correct-numa_node-in-dasd_alloc_queue.patch + patches.suse/s390-scm_blk-correct-numa_node-in-scm_blk_dev_setup.patch + patches.suse/s390-extmem-fix-gcc-8-stringop-overflow-warning.patch patches.suse/s390-sles15sp1-00-03-07-zcrypt-add-copy_from_user-length-plausibility-c.patch + patches.suse/s390-sysinfo-add-missing-ifdef-CONFIG_PROC_FS.patch patches.suse/0085-RAID-s390-Remove-VLA-usage.patch patches.suse/s390-mm-correct-allocate_pgste-proc_handler-callback.patch patches.suse/s390-sles15-16-01-kvm-fix-deadlock-when-killed-by-oom.patch @@ -46352,6 +46366,7 @@ patches.suse/cred-allow-get_cred-and-put_cred-to-be-given-NULL.patch patches.suse/NFS-nfs_compare_mount_options-always-compare-auth-fl.patch patches.suse/sunrpc-handle-ENOMEM-in-rpcb_getport_async.patch + patches.suse/s390-pci-fix-sleeping-in-atomic-during-hotplug.patch patches.suse/clk-imx8qxp-make-the-name-of-clock-id-generic.patch patches.suse/drbd-narrow-rcu_read_lock-in-drbd_sync_handshake.patch patches.suse/drbd-ignore-all-zero-peer-volume-sizes-in-handshake.patch @@ -48938,6 +48953,7 @@ patches.suse/sunrpc-don-t-mark-uninitialised-items-as-VALID.patch patches.suse/nfsd-Don-t-release-the-callback-slot-unless-it-was-a.patch patches.suse/ipv4-set-the-tcp_min_rtt_wlen-range-from-0-to-one-da.patch + patches.suse/s390-ctcm-fix-ctcm_new_device-error-return-code.patch patches.suse/mlxsw-spectrum-Put-MC-TCs-into-DWRR-mode.patch patches.suse/mlxsw-pci-Reincrease-PCI-reset-timeout.patch patches.suse/mlxsw-spectrum-Fix-autoneg-status-in-ethtool.patch @@ -57076,6 +57092,7 @@ patches.suse/0010-ALSA-usb-audio-Add-registration-quirk-for-Kingston-H.patch patches.suse/ALSA-usb-audio-add-quirk-for-Samsung-USBC-Headset-AK.patch patches.suse/ALSA-usb-audio-Fix-OOB-access-of-mixer-element-list.patch + patches.suse/s390-kasan-fix-early-pgm-check-handler-execution.patch patches.suse/RDMA-efa-Set-maximum-pkeys-device-attribute.patch patches.suse/RDMA-qedr-Fix-KASAN-use-after-free-in-ucma_event_han.patch patches.suse/RDMA-cma-Protect-bind_list-and-listen_list-while-fin.patch @@ -63297,6 +63314,7 @@ patches.suse/media-rc-Fix-use-after-free-bugs-caused-by-ene_tx_ir.patch patches.suse/watchdog-pcwd_usb-Fix-attempting-to-access-uninitial.patch patches.suse/x86-speculation-Allow-enabling-STIBP-with-legacy-IBR.patch + patches.suse/0001-net-tls-fix-possible-race-condition-between-do_tls_g.patch patches.suse/net-usb-qmi_wwan-add-Telit-0x1080-composition.patch patches.suse/SUNRPC-Fix-a-server-shutdown-leak.patch patches.suse/scsi-qla2xxx-Add-option-to-disable-FC2-Target-suppor.patch @@ -63317,6 +63335,8 @@ patches.suse/power-supply-da9150-Fix-use-after-free-bug-in-da9150.patch patches.suse/usb-chipidea-core-fix-possible-concurrent-when-switc.patch patches.suse/s390-vfio-ap-fix-memory-leak-in-vfio_ap-device-drive.patch + patches.suse/xen-netback-don-t-do-grant-copy-across-page-boundary.patch + patches.suse/xen-netback-use-same-error-messages-for-same-errors.patch patches.suse/NFSv4-Fix-hangs-when-recovering-open-state-after-a-s.patch patches.suse/powerpc-Don-t-try-to-copy-PPR-for-task-with-NULL-pt_.patch patches.suse/ring-buffer-Fix-race-while-reader-and-writer-are-on-the-same-page.patch @@ -63326,6 +63346,7 @@ patches.suse/cgroup-cpuset-Wake-up-cpuset_attach_wq-tasks-in-cpuset_cancel_attach.patch patches.suse/cifs-fix-negotiate-context-parsing.patch patches.suse/powerpc-papr_scm-Update-the-NUMA-distance-table-for-.patch + patches.suse/ACPI-processor-Fix-evaluating-_PDC-method-when-runni.patch patches.suse/0001-wifi-brcmfmac-slab-out-of-bounds-read-in-brcmf_get_a.patch patches.suse/wifi-ath5k-fix-an-off-by-one-check-in-ath5k_eeprom_r.patch patches.suse/ipmi-fix-SSIF-not-responding-under-certain-cond.patch