diff options
author | Justin M. Forbes <jforbes@fedoraproject.org> | 2018-07-30 08:40:14 -0500 |
---|---|---|
committer | Justin M. Forbes <jforbes@fedoraproject.org> | 2018-07-30 08:40:14 -0500 |
commit | 0d298e70b508f90883846cfc82f2918d1a561c0f (patch) | |
tree | ec29b48fdf35c68d189a082e0fbd290afe545ce8 | |
parent | 23c0c7b625171b4e3b7ea61d8e4fd5c93a12fb93 (diff) | |
download | kernel-0d298e70b508f90883846cfc82f2918d1a561c0f.tar.gz kernel-0d298e70b508f90883846cfc82f2918d1a561c0f.tar.xz kernel-0d298e70b508f90883846cfc82f2918d1a561c0f.zip |
Linux v4.17.11
-rw-r--r-- | Revert-iommu-intel-iommu-Enable-CONFIG_DMA_DIRECT_OP.patch | 125 | ||||
-rw-r--r-- | kernel.spec | 13 | ||||
-rw-r--r-- | sources | 2 |
3 files changed, 10 insertions, 130 deletions
diff --git a/Revert-iommu-intel-iommu-Enable-CONFIG_DMA_DIRECT_OP.patch b/Revert-iommu-intel-iommu-Enable-CONFIG_DMA_DIRECT_OP.patch deleted file mode 100644 index 46212341f..000000000 --- a/Revert-iommu-intel-iommu-Enable-CONFIG_DMA_DIRECT_OP.patch +++ /dev/null @@ -1,125 +0,0 @@ -From 3c16e0cc4ace8bd838bf234caead5a766b07fe9d Mon Sep 17 00:00:00 2001 -From: Christoph Hellwig <hch@lst.de> -Date: Thu, 5 Jul 2018 13:29:55 -0600 -Subject: [PATCH] Revert "iommu/intel-iommu: Enable CONFIG_DMA_DIRECT_OPS=y and - clean up intel_{alloc,free}_coherent()" - -This commit may cause a less than required dma mask to be used for -some allocations, which apparently leads to module load failures for -iwlwifi sometimes. - -This reverts commit d657c5c73ca987214a6f9436e435b34fc60f332a. - -Signed-off-by: Christoph Hellwig <hch@lst.de> -Reported-by: Fabio Coatti <fabio.coatti@gmail.com> -Tested-by: Fabio Coatti <fabio.coatti@gmail.com> -Signed-off-by: Jeremy Cline <jcline@redhat.com> ---- - drivers/iommu/Kconfig | 1 - - drivers/iommu/intel-iommu.c | 62 +++++++++++++++++++++++++++---------- - 2 files changed, 46 insertions(+), 17 deletions(-) - -diff --git a/drivers/iommu/Kconfig b/drivers/iommu/Kconfig -index b38798cc5288..f3a21343e636 100644 ---- a/drivers/iommu/Kconfig -+++ b/drivers/iommu/Kconfig -@@ -142,7 +142,6 @@ config DMAR_TABLE - config INTEL_IOMMU - bool "Support for Intel IOMMU using DMA Remapping Devices" - depends on PCI_MSI && ACPI && (X86 || IA64_GENERIC) -- select DMA_DIRECT_OPS - select IOMMU_API - select IOMMU_IOVA - select DMAR_TABLE -diff --git a/drivers/iommu/intel-iommu.c b/drivers/iommu/intel-iommu.c -index 749d8f235346..6392a4964fc5 100644 ---- a/drivers/iommu/intel-iommu.c -+++ b/drivers/iommu/intel-iommu.c -@@ -31,7 +31,6 @@ - #include <linux/pci.h> - #include <linux/dmar.h> - #include <linux/dma-mapping.h> --#include <linux/dma-direct.h> - #include <linux/mempool.h> - #include <linux/memory.h> - #include <linux/cpu.h> -@@ -3709,30 +3708,61 @@ static void *intel_alloc_coherent(struct device *dev, size_t size, - dma_addr_t *dma_handle, gfp_t flags, - unsigned long attrs) - { -- void *vaddr; -+ struct page *page = NULL; -+ int order; - -- vaddr = dma_direct_alloc(dev, size, dma_handle, flags, attrs); -- if (iommu_no_mapping(dev) || !vaddr) -- return vaddr; -+ size = PAGE_ALIGN(size); -+ order = get_order(size); - -- *dma_handle = __intel_map_single(dev, virt_to_phys(vaddr), -- PAGE_ALIGN(size), DMA_BIDIRECTIONAL, -- dev->coherent_dma_mask); -- if (!*dma_handle) -- goto out_free_pages; -- return vaddr; -+ if (!iommu_no_mapping(dev)) -+ flags &= ~(GFP_DMA | GFP_DMA32); -+ else if (dev->coherent_dma_mask < dma_get_required_mask(dev)) { -+ if (dev->coherent_dma_mask < DMA_BIT_MASK(32)) -+ flags |= GFP_DMA; -+ else -+ flags |= GFP_DMA32; -+ } -+ -+ if (gfpflags_allow_blocking(flags)) { -+ unsigned int count = size >> PAGE_SHIFT; -+ -+ page = dma_alloc_from_contiguous(dev, count, order, flags); -+ if (page && iommu_no_mapping(dev) && -+ page_to_phys(page) + size > dev->coherent_dma_mask) { -+ dma_release_from_contiguous(dev, page, count); -+ page = NULL; -+ } -+ } -+ -+ if (!page) -+ page = alloc_pages(flags, order); -+ if (!page) -+ return NULL; -+ memset(page_address(page), 0, size); -+ -+ *dma_handle = __intel_map_single(dev, page_to_phys(page), size, -+ DMA_BIDIRECTIONAL, -+ dev->coherent_dma_mask); -+ if (*dma_handle) -+ return page_address(page); -+ if (!dma_release_from_contiguous(dev, page, size >> PAGE_SHIFT)) -+ __free_pages(page, order); - --out_free_pages: -- dma_direct_free(dev, size, vaddr, *dma_handle, attrs); - return NULL; - } - - static void intel_free_coherent(struct device *dev, size_t size, void *vaddr, - dma_addr_t dma_handle, unsigned long attrs) - { -- if (!iommu_no_mapping(dev)) -- intel_unmap(dev, dma_handle, PAGE_ALIGN(size)); -- dma_direct_free(dev, size, vaddr, dma_handle, attrs); -+ int order; -+ struct page *page = virt_to_page(vaddr); -+ -+ size = PAGE_ALIGN(size); -+ order = get_order(size); -+ -+ intel_unmap(dev, dma_handle, size); -+ if (!dma_release_from_contiguous(dev, page, size >> PAGE_SHIFT)) -+ __free_pages(page, order); - } - - static void intel_unmap_sg(struct device *dev, struct scatterlist *sglist, --- -2.17.1 - diff --git a/kernel.spec b/kernel.spec index 5446d6815..2649f382d 100644 --- a/kernel.spec +++ b/kernel.spec @@ -54,7 +54,7 @@ Summary: The Linux kernel %if 0%{?released_kernel} # Do we have a -stable update to apply? -%define stable_update 10 +%define stable_update 11 # Set rpm version accordingly %if 0%{?stable_update} %define stablerev %{stable_update} @@ -126,6 +126,10 @@ Summary: The Linux kernel # See also 'make debug' and 'make release'. %define debugbuildsenabled 1 +# Kernel headers are being split out into a separate package +%define with_headers 0 +%define with_cross_headers 0 + %if %{with_verbose} %define make_opts V=1 %else @@ -667,9 +671,6 @@ Patch523: 0001-xfs-More-robust-inode-extent-count-validation.patch # rhbz 1597333 # Patch526: xhci-Fix-perceived-dead-host-due-to-runtime-suspend-.patch -# rbhz 1607092 -Patch528: Revert-iommu-intel-iommu-Enable-CONFIG_DMA_DIRECT_OP.patch - # rhbz 1602971 Patch529: ext4-fix-false-negative-and-false-positives.patch @@ -1922,6 +1923,10 @@ fi # # %changelog +* Mon Jul 30 2018 Justin M. Forbes <jforbes@fedoraproject.org> - 4.17.11-200 +- Linux v4.17.11 +- Turn off kernel-headers for the split + * Wed Jul 25 2018 Justin M. Forbes <jforbes@fedoraproject.org> - 4.17.10-200 - Linux v4.17.10 @@ -1,2 +1,2 @@ SHA512 (linux-4.17.tar.xz) = 4d9de340a26155a89ea8773131c76220cc2057f2b5d031b467b60e8b14c1842518e2d60a863d8c695f0f7640f3f18d43826201984a238dade857b6cef79837db -SHA512 (patch-4.17.10.xz) = 4ed5a6d47de7b4153805d937c44cb5eb03628a590d597c38be299afe67047611a6b37b1c13d0a8503de296779fc4ad6337dd4209f06b375c0111400b454b59c7 +SHA512 (patch-4.17.11.xz) = 6cab8f1aecceb0491dca25afa088f9601178c8dfec51551afd34e219600bba54f65f929d9a10948cdb5595e339e096473127b55b1142e6dbe9a818149bec307d |