kernel-5.17.4-0

* Wed Apr 20 2022 Justin M. Forbes <jforbes@fedoraproject.org> [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 <jforbes@fedoraproject.org>
This commit is contained in:
Justin M. Forbes 2022-04-20 09:12:21 -05:00
parent 811d2ec22a
commit b8e4d45cce
No known key found for this signature in database
GPG Key ID: B8FA7924A4B1C140
3 changed files with 14 additions and 205 deletions

View File

@ -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 <jforbes@fedoraproject.org> [5.17.3-302]
* Wed Apr 20 2022 Justin M. Forbes <jforbes@fedoraproject.org> [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 <jforbes@fedoraproject.org> [5.17.3-0]

View File

@ -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 */
};

View File

@ -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