From b8e4d45cce10ca9fe9e029a2ae6528570c6652c2 Mon Sep 17 00:00:00 2001 From: "Justin M. Forbes" Date: Wed, 20 Apr 2022 09:12:21 -0500 Subject: kernel-5.17.4-0 * Wed Apr 20 2022 Justin M. Forbes [5.17.4-0] - Add F34 and F35 as release targets (Justin M. Forbes) - Revert "net: bcmgenet: Use stronger register read/writes to assure ordering" (Justin M. Forbes) Resolves: rhbz# Signed-off-by: Justin M. Forbes --- kernel.spec | 17 +++-- patch-5.17-redhat.patch | 196 +----------------------------------------------- sources | 6 +- 3 files changed, 14 insertions(+), 205 deletions(-) diff --git a/kernel.spec b/kernel.spec index bcb354a26..acb966d3c 100755 --- a/kernel.spec +++ b/kernel.spec @@ -87,7 +87,7 @@ Summary: The Linux kernel # the --with-release option overrides this setting.) %define debugbuildsenabled 1 -%global distro_build 302 +%global distro_build 300 %if 0%{?fedora} %define secure_boot_arch x86_64 @@ -130,15 +130,15 @@ Summary: The Linux kernel # The kernel tarball/base version %define kversion 5.17 -%define rpmversion 5.17.3 +%define rpmversion 5.17.4 %define patchversion 5.17 -%define pkgrelease 302 +%define pkgrelease 300 # This is needed to do merge window version magic %define patchlevel 17 # allow pkg_release to have configurable %%{?dist} tag -%define specrelease 302%{?buildid}%{?dist} +%define specrelease 300%{?buildid}%{?dist} %define pkg_release %{specrelease} @@ -695,7 +695,7 @@ BuildRequires: lld # exact git commit you can run # # xzcat -qq ${TARBALL} | git get-tar-commit-id -Source0: linux-5.17.3.tar.xz +Source0: linux-5.17.4.tar.xz Source1: Makefile.rhelver @@ -1387,8 +1387,8 @@ ApplyOptionalPatch() fi } -%setup -q -n kernel-5.17.3 -c -mv linux-5.17.3 linux-%{KVERREL} +%setup -q -n kernel-5.17.4 -c +mv linux-5.17.4 linux-%{KVERREL} cd linux-%{KVERREL} cp -a %{SOURCE1} . @@ -3015,7 +3015,8 @@ fi # # %changelog -* Sun Apr 17 2022 Justin M. Forbes [5.17.3-302] +* Wed Apr 20 2022 Justin M. Forbes [5.17.4-0] +- Add F34 and F35 as release targets (Justin M. Forbes) - Revert "net: bcmgenet: Use stronger register read/writes to assure ordering" (Justin M. Forbes) * Wed Apr 13 2022 Justin M. Forbes [5.17.3-0] diff --git a/patch-5.17-redhat.patch b/patch-5.17-redhat.patch index 032f61386..905be3a85 100644 --- a/patch-5.17-redhat.patch +++ b/patch-5.17-redhat.patch @@ -26,7 +26,6 @@ drivers/hwtracing/coresight/coresight-etm4x-core.c | 19 ++++ drivers/input/rmi4/rmi_driver.c | 124 ++++++++++++--------- drivers/iommu/iommu.c | 22 ++++ - drivers/net/ethernet/broadcom/genet/bcmgenet.c | 4 +- drivers/nvme/host/core.c | 22 +++- drivers/nvme/host/multipath.c | 19 ++-- drivers/nvme/host/nvme.h | 4 + @@ -44,7 +43,6 @@ include/linux/random.h | 7 ++ include/linux/rmi.h | 1 + include/linux/security.h | 5 + - include/sound/memalloc.h | 5 + init/Kconfig | 2 +- kernel/dma/swiotlb.c | 12 +- kernel/module.c | 2 + @@ -56,8 +54,7 @@ security/lockdown/Kconfig | 13 +++ security/lockdown/lockdown.c | 1 + security/security.c | 6 + - sound/core/memalloc.c | 111 +++++++++++++++++- - 59 files changed, 886 insertions(+), 210 deletions(-) + 56 files changed, 769 insertions(+), 207 deletions(-) diff --git a/Documentation/core-api/dma-attributes.rst b/Documentation/core-api/dma-attributes.rst index 1887d92e8e92..17706dc91ec9 100644 @@ -109,7 +106,7 @@ index 000000000000..733a26bd887a + +endmenu diff --git a/Makefile b/Makefile -index 02fbef1a0213..7e08c751f348 100644 +index d7747e4c216e..7a429bc431b4 100644 --- a/Makefile +++ b/Makefile @@ -18,6 +18,10 @@ $(if $(filter __%, $(MAKECMDGOALS)), \ @@ -1356,28 +1353,6 @@ index 107dcf5938d6..225a9797e39d 100644 /* * Changes the default domain of an iommu group that has *only* one device * -diff --git a/drivers/net/ethernet/broadcom/genet/bcmgenet.c b/drivers/net/ethernet/broadcom/genet/bcmgenet.c -index bd5998012a87..2da804f84b48 100644 ---- a/drivers/net/ethernet/broadcom/genet/bcmgenet.c -+++ b/drivers/net/ethernet/broadcom/genet/bcmgenet.c -@@ -76,7 +76,7 @@ static inline void bcmgenet_writel(u32 value, void __iomem *offset) - if (IS_ENABLED(CONFIG_MIPS) && IS_ENABLED(CONFIG_CPU_BIG_ENDIAN)) - __raw_writel(value, offset); - else -- writel(value, offset); -+ writel_relaxed(value, offset); - } - - static inline u32 bcmgenet_readl(void __iomem *offset) -@@ -84,7 +84,7 @@ static inline u32 bcmgenet_readl(void __iomem *offset) - if (IS_ENABLED(CONFIG_MIPS) && IS_ENABLED(CONFIG_CPU_BIG_ENDIAN)) - return __raw_readl(offset); - else -- return readl(offset); -+ return readl_relaxed(offset); - } - - static inline void dmadesc_set_length_status(struct bcmgenet_priv *priv, diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c index 6215d50ed3e7..10f1629e0940 100644 --- a/drivers/nvme/host/core.c @@ -1845,22 +1820,6 @@ index 25b3ef71f495..d37a6c88c69f 100644 #endif /* CONFIG_SECURITY */ #if defined(CONFIG_SECURITY) && defined(CONFIG_WATCH_QUEUE) -diff --git a/include/sound/memalloc.h b/include/sound/memalloc.h -index 653dfffb3ac8..8d79cebf95f3 100644 ---- a/include/sound/memalloc.h -+++ b/include/sound/memalloc.h -@@ -51,6 +51,11 @@ struct snd_dma_device { - #define SNDRV_DMA_TYPE_DEV_SG SNDRV_DMA_TYPE_DEV /* no SG-buf support */ - #define SNDRV_DMA_TYPE_DEV_WC_SG SNDRV_DMA_TYPE_DEV_WC - #endif -+/* fallback types, don't use those directly */ -+#ifdef CONFIG_SND_DMA_SGBUF -+#define SNDRV_DMA_TYPE_DEV_SG_FALLBACK 10 -+#define SNDRV_DMA_TYPE_DEV_WC_SG_FALLBACK 11 -+#endif - - /* - * info for buffer allocation diff --git a/init/Kconfig b/init/Kconfig index e9119bf54b1f..e3b57b4898fe 100644 --- a/init/Kconfig @@ -2076,154 +2035,3 @@ index b7cf5cbfdc67..3cde9062fcf6 100644 #ifdef CONFIG_PERF_EVENTS int security_perf_event_open(struct perf_event_attr *attr, int type) { -diff --git a/sound/core/memalloc.c b/sound/core/memalloc.c -index 6fd763d4d15b..15dc7160ba34 100644 ---- a/sound/core/memalloc.c -+++ b/sound/core/memalloc.c -@@ -499,6 +499,10 @@ static const struct snd_malloc_ops snd_dma_wc_ops = { - }; - #endif /* CONFIG_X86 */ - -+#ifdef CONFIG_SND_DMA_SGBUF -+static void *snd_dma_sg_fallback_alloc(struct snd_dma_buffer *dmab, size_t size); -+#endif -+ - /* - * Non-contiguous pages allocator - */ -@@ -509,8 +513,18 @@ static void *snd_dma_noncontig_alloc(struct snd_dma_buffer *dmab, size_t size) - - sgt = dma_alloc_noncontiguous(dmab->dev.dev, size, dmab->dev.dir, - DEFAULT_GFP, 0); -- if (!sgt) -+ if (!sgt) { -+#ifdef CONFIG_SND_DMA_SGBUF -+ if (dmab->dev.type == SNDRV_DMA_TYPE_DEV_WC_SG) -+ dmab->dev.type = SNDRV_DMA_TYPE_DEV_WC_SG_FALLBACK; -+ else -+ dmab->dev.type = SNDRV_DMA_TYPE_DEV_SG_FALLBACK; -+ return snd_dma_sg_fallback_alloc(dmab, size); -+#else - return NULL; -+#endif -+ } -+ - dmab->dev.need_sync = dma_need_sync(dmab->dev.dev, - sg_dma_address(sgt->sgl)); - p = dma_vmap_noncontiguous(dmab->dev.dev, size, sgt); -@@ -633,6 +647,8 @@ static void *snd_dma_sg_wc_alloc(struct snd_dma_buffer *dmab, size_t size) - - if (!p) - return NULL; -+ if (dmab->dev.type != SNDRV_DMA_TYPE_DEV_WC_SG) -+ return p; - for_each_sgtable_page(sgt, &iter, 0) - set_memory_wc(sg_wc_address(&iter), 1); - return p; -@@ -665,6 +681,95 @@ static const struct snd_malloc_ops snd_dma_sg_wc_ops = { - .get_page = snd_dma_noncontig_get_page, - .get_chunk_size = snd_dma_noncontig_get_chunk_size, - }; -+ -+/* Fallback SG-buffer allocations for x86 */ -+struct snd_dma_sg_fallback { -+ size_t count; -+ struct page **pages; -+ dma_addr_t *addrs; -+}; -+ -+static void __snd_dma_sg_fallback_free(struct snd_dma_buffer *dmab, -+ struct snd_dma_sg_fallback *sgbuf) -+{ -+ size_t i; -+ -+ if (sgbuf->count && dmab->dev.type == SNDRV_DMA_TYPE_DEV_WC_SG_FALLBACK) -+ set_pages_array_wb(sgbuf->pages, sgbuf->count); -+ for (i = 0; i < sgbuf->count && sgbuf->pages[i]; i++) -+ dma_free_coherent(dmab->dev.dev, PAGE_SIZE, -+ page_address(sgbuf->pages[i]), -+ sgbuf->addrs[i]); -+ kvfree(sgbuf->pages); -+ kvfree(sgbuf->addrs); -+ kfree(sgbuf); -+} -+ -+static void *snd_dma_sg_fallback_alloc(struct snd_dma_buffer *dmab, size_t size) -+{ -+ struct snd_dma_sg_fallback *sgbuf; -+ struct page **pages; -+ size_t i, count; -+ void *p; -+ -+ sgbuf = kzalloc(sizeof(*sgbuf), GFP_KERNEL); -+ if (!sgbuf) -+ return NULL; -+ count = PAGE_ALIGN(size) >> PAGE_SHIFT; -+ pages = kvcalloc(count, sizeof(*pages), GFP_KERNEL); -+ if (!pages) -+ goto error; -+ sgbuf->pages = pages; -+ sgbuf->addrs = kvcalloc(count, sizeof(*sgbuf->addrs), GFP_KERNEL); -+ if (!sgbuf->addrs) -+ goto error; -+ -+ for (i = 0; i < count; sgbuf->count++, i++) { -+ p = dma_alloc_coherent(dmab->dev.dev, PAGE_SIZE, -+ &sgbuf->addrs[i], DEFAULT_GFP); -+ if (!p) -+ goto error; -+ sgbuf->pages[i] = virt_to_page(p); -+ } -+ -+ if (dmab->dev.type == SNDRV_DMA_TYPE_DEV_WC_SG_FALLBACK) -+ set_pages_array_wc(pages, count); -+ p = vmap(pages, count, VM_MAP, PAGE_KERNEL); -+ if (!p) -+ goto error; -+ dmab->private_data = sgbuf; -+ return p; -+ -+ error: -+ __snd_dma_sg_fallback_free(dmab, sgbuf); -+ return NULL; -+} -+ -+static void snd_dma_sg_fallback_free(struct snd_dma_buffer *dmab) -+{ -+ vunmap(dmab->area); -+ __snd_dma_sg_fallback_free(dmab, dmab->private_data); -+} -+ -+static int snd_dma_sg_fallback_mmap(struct snd_dma_buffer *dmab, -+ struct vm_area_struct *area) -+{ -+ struct snd_dma_sg_fallback *sgbuf = dmab->private_data; -+ -+ if (dmab->dev.type == SNDRV_DMA_TYPE_DEV_WC_SG_FALLBACK) -+ area->vm_page_prot = pgprot_writecombine(area->vm_page_prot); -+ return vm_map_pages(area, sgbuf->pages, sgbuf->count); -+} -+ -+static const struct snd_malloc_ops snd_dma_sg_fallback_ops = { -+ .alloc = snd_dma_sg_fallback_alloc, -+ .free = snd_dma_sg_fallback_free, -+ .mmap = snd_dma_sg_fallback_mmap, -+ /* reuse vmalloc helpers */ -+ .get_addr = snd_dma_vmalloc_get_addr, -+ .get_page = snd_dma_vmalloc_get_page, -+ .get_chunk_size = snd_dma_vmalloc_get_chunk_size, -+}; - #endif /* CONFIG_SND_DMA_SGBUF */ - - /* -@@ -736,6 +841,10 @@ static const struct snd_malloc_ops *dma_ops[] = { - #ifdef CONFIG_GENERIC_ALLOCATOR - [SNDRV_DMA_TYPE_DEV_IRAM] = &snd_dma_iram_ops, - #endif /* CONFIG_GENERIC_ALLOCATOR */ -+#ifdef CONFIG_SND_DMA_SGBUF -+ [SNDRV_DMA_TYPE_DEV_SG_FALLBACK] = &snd_dma_sg_fallback_ops, -+ [SNDRV_DMA_TYPE_DEV_WC_SG_FALLBACK] = &snd_dma_sg_fallback_ops, -+#endif - #endif /* CONFIG_HAS_DMA */ - }; - diff --git a/sources b/sources index e172f4b98..dd3fe1104 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ -SHA512 (linux-5.17.3.tar.xz) = 94cf35f451ee0d17a36f4d45e99a284e13951f70449f69789b453fc3a053a474519fca3bed0ee84da203b1a9baabb26e7e663034c355f2293fc7704b9b95b23d -SHA512 (kernel-abi-stablelists-5.17.3-302.tar.bz2) = 7205c3340a1788f6dca4f3d07660cc0d6b532887e77519eaf80defba48d2841c19f7816307f4487f89f4e4823393e9c2e0cb030cebf2a444ad84976a56bd4ae1 -SHA512 (kernel-kabi-dw-5.17.3-302.tar.bz2) = ecf167b10b6d039e1714eb51b175faf48a151c94f716749597d86c93c392cadf9b06694df8a16e186d28ce03b3642ddb0cde13cfe4af826a1a868bc3f069c111 +SHA512 (linux-5.17.4.tar.xz) = cc04ca4e1b925f7ee4ae7513e3ddaf848021a5ee5f7e39e96450f30dc4ba19891d8eed014e5467bf85f35bb3495297291685ee7a6e93d8f66aa7b1e617d610eb +SHA512 (kernel-abi-stablelists-5.17.4-300.tar.bz2) = 7db9cbac440599e6e04f59f88a139529cafb1804f3b94644593e16244bdbe1b5f9ece90a2ff5bf15b31f1cf657b95482a9bb2f0b1a686872850cb3f48efa3a72 +SHA512 (kernel-kabi-dw-5.17.4-300.tar.bz2) = f89906fae867bef6df9806bd098311c02d373c7930439c205f684140eeb6e32d5e0b3ba450784414c9c34960d933953c1805fcc3dc52716c2f8a2c1325f4baa8 -- cgit