parent
7961d2a433
commit
3beca208e3
|
@ -1,27 +0,0 @@
|
|||
From bb4d91481dd2122351866e500b46cff9399f579d Mon Sep 17 00:00:00 2001
|
||||
From: Laura Abbott <labbott@fedoraproject.org>
|
||||
Date: Thu, 25 Feb 2016 11:40:07 -0800
|
||||
Subject: [PATCH] Test ata fix
|
||||
|
||||
Signed-off-by: Laura Abbott <labbott@fedoraproject.org>
|
||||
---
|
||||
drivers/ata/libahci.c | 3 +--
|
||||
1 file changed, 1 insertion(+), 2 deletions(-)
|
||||
|
||||
diff --git a/drivers/ata/libahci.c b/drivers/ata/libahci.c
|
||||
index 1f225cc..998c6a8 100644
|
||||
--- a/drivers/ata/libahci.c
|
||||
+++ b/drivers/ata/libahci.c
|
||||
@@ -1142,8 +1142,7 @@ static void ahci_port_init(struct device *dev, struct ata_port *ap,
|
||||
|
||||
/* mark esata ports */
|
||||
tmp = readl(port_mmio + PORT_CMD);
|
||||
- if ((tmp & PORT_CMD_HPCP) ||
|
||||
- ((tmp & PORT_CMD_ESP) && (hpriv->cap & HOST_CAP_SXS)))
|
||||
+ if ((tmp & PORT_CMD_ESP) && (hpriv->cap & HOST_CAP_SXS))
|
||||
ap->pflags |= ATA_PFLAG_EXTERNAL;
|
||||
}
|
||||
|
||||
--
|
||||
2.5.0
|
||||
|
|
@ -0,0 +1,54 @@
|
|||
From b3ffe8a6522dd1f07c181a5f2581142776e2162d Mon Sep 17 00:00:00 2001
|
||||
From: Ard Biesheuvel <ard.biesheuvel@linaro.org>
|
||||
Date: Tue, 8 Mar 2016 21:09:29 +0700
|
||||
Subject: [PATCH] arm64: account for sparsemem section alignment when choosing
|
||||
vmemmap offset
|
||||
|
||||
Commit dfd55ad85e4a ("arm64: vmemmap: use virtual projection of linear
|
||||
region") fixed an issue where the struct page array would overflow into the
|
||||
adjacent virtual memory region if system RAM was placed so high up in
|
||||
physical memory that its addresses were not representable in the build time
|
||||
configured virtual address size.
|
||||
|
||||
However, the fix failed to take into account that the vmemmap region needs
|
||||
to be relatively aligned with respect to the sparsemem section size, so that
|
||||
a sequence of page structs corresponding with a sparsemem section in the
|
||||
linear region appears naturally aligned in the vmemmap region.
|
||||
|
||||
So round up vmemmap to sparsemem section size. Since this essentially moves
|
||||
the projection of the linear region up in memory, also revert the reduction
|
||||
of the size of the vmemmap region.
|
||||
|
||||
Fixes: dfd55ad85e4a ("arm64: vmemmap: use virtual projection of linear region")
|
||||
Tested-by: Mark Langsdorf <mlangsdo@redhat.com>
|
||||
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
|
||||
---
|
||||
arch/arm64/include/asm/pgtable.h | 5 +++--
|
||||
1 file changed, 3 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/arch/arm64/include/asm/pgtable.h b/arch/arm64/include/asm/pgtable.h
|
||||
index fc9f7ef..eaa9cab 100644
|
||||
--- a/arch/arm64/include/asm/pgtable.h
|
||||
+++ b/arch/arm64/include/asm/pgtable.h
|
||||
@@ -40,7 +40,7 @@
|
||||
* VMALLOC_END: extends to the available space below vmmemmap, PCI I/O space,
|
||||
* fixed mappings and modules
|
||||
*/
|
||||
-#define VMEMMAP_SIZE ALIGN((1UL << (VA_BITS - PAGE_SHIFT - 1)) * sizeof(struct page), PUD_SIZE)
|
||||
+#define VMEMMAP_SIZE ALIGN((1UL << (VA_BITS - PAGE_SHIFT)) * sizeof(struct page), PUD_SIZE)
|
||||
|
||||
#ifndef CONFIG_KASAN
|
||||
#define VMALLOC_START (VA_START)
|
||||
@@ -52,7 +52,8 @@
|
||||
#define VMALLOC_END (PAGE_OFFSET - PUD_SIZE - VMEMMAP_SIZE - SZ_64K)
|
||||
|
||||
#define VMEMMAP_START (VMALLOC_END + SZ_64K)
|
||||
-#define vmemmap ((struct page *)VMEMMAP_START - (memstart_addr >> PAGE_SHIFT))
|
||||
+#define vmemmap ((struct page *)VMEMMAP_START - \
|
||||
+ SECTION_ALIGN_DOWN(memstart_addr >> PAGE_SHIFT))
|
||||
|
||||
#define FIRST_USER_ADDRESS 0UL
|
||||
|
||||
--
|
||||
2.5.0
|
||||
|
|
@ -1,92 +0,0 @@
|
|||
From b91309eedd77374fdecc379942c44f903e2dedff Mon Sep 17 00:00:00 2001
|
||||
From: Suravee Suthikulpanit <Suravee.Suthikulpanit@amd.com>
|
||||
Date: Tue, 23 Feb 2016 13:03:30 +0100
|
||||
Subject: [PATCH] iommu/amd: Fix boot warning when device 00:00.0 is not iommu
|
||||
covered
|
||||
|
||||
The setup code for the performance counters in the AMD IOMMU driver
|
||||
tests whether the counters can be written. It tests to setup a counter
|
||||
for device 00:00.0, which fails on systems where this particular device
|
||||
is not covered by the IOMMU.
|
||||
|
||||
Fix this by not relying on device 00:00.0 but only on the IOMMU being
|
||||
present.
|
||||
|
||||
Cc: stable@vger.kernel.org
|
||||
Signed-off-by: Suravee Suthikulpanit <Suravee.Suthikulpanit@amd.com>
|
||||
Signed-off-by: Joerg Roedel <jroedel@suse.de>
|
||||
---
|
||||
drivers/iommu/amd_iommu_init.c | 34 ++++++++++++++++++++++------------
|
||||
1 file changed, 22 insertions(+), 12 deletions(-)
|
||||
|
||||
diff --git a/drivers/iommu/amd_iommu_init.c b/drivers/iommu/amd_iommu_init.c
|
||||
index 013bdff..d06a6d9 100644
|
||||
--- a/drivers/iommu/amd_iommu_init.c
|
||||
+++ b/drivers/iommu/amd_iommu_init.c
|
||||
@@ -228,6 +228,10 @@ static int amd_iommu_enable_interrupts(void);
|
||||
static int __init iommu_go_to_state(enum iommu_init_state state);
|
||||
static void init_device_table_dma(void);
|
||||
|
||||
+static int iommu_pc_get_set_reg_val(struct amd_iommu *iommu,
|
||||
+ u8 bank, u8 cntr, u8 fxn,
|
||||
+ u64 *value, bool is_write);
|
||||
+
|
||||
static inline void update_last_devid(u16 devid)
|
||||
{
|
||||
if (devid > amd_iommu_last_bdf)
|
||||
@@ -1142,8 +1146,8 @@ static void init_iommu_perf_ctr(struct amd_iommu *iommu)
|
||||
amd_iommu_pc_present = true;
|
||||
|
||||
/* Check if the performance counters can be written to */
|
||||
- if ((0 != amd_iommu_pc_get_set_reg_val(0, 0, 0, 0, &val, true)) ||
|
||||
- (0 != amd_iommu_pc_get_set_reg_val(0, 0, 0, 0, &val2, false)) ||
|
||||
+ if ((0 != iommu_pc_get_set_reg_val(iommu, 0, 0, 0, &val, true)) ||
|
||||
+ (0 != iommu_pc_get_set_reg_val(iommu, 0, 0, 0, &val2, false)) ||
|
||||
(val != val2)) {
|
||||
pr_err("AMD-Vi: Unable to write to IOMMU perf counter.\n");
|
||||
amd_iommu_pc_present = false;
|
||||
@@ -2283,22 +2287,15 @@ u8 amd_iommu_pc_get_max_counters(u16 devid)
|
||||
}
|
||||
EXPORT_SYMBOL(amd_iommu_pc_get_max_counters);
|
||||
|
||||
-int amd_iommu_pc_get_set_reg_val(u16 devid, u8 bank, u8 cntr, u8 fxn,
|
||||
+static int iommu_pc_get_set_reg_val(struct amd_iommu *iommu,
|
||||
+ u8 bank, u8 cntr, u8 fxn,
|
||||
u64 *value, bool is_write)
|
||||
{
|
||||
- struct amd_iommu *iommu;
|
||||
u32 offset;
|
||||
u32 max_offset_lim;
|
||||
|
||||
- /* Make sure the IOMMU PC resource is available */
|
||||
- if (!amd_iommu_pc_present)
|
||||
- return -ENODEV;
|
||||
-
|
||||
- /* Locate the iommu associated with the device ID */
|
||||
- iommu = amd_iommu_rlookup_table[devid];
|
||||
-
|
||||
/* Check for valid iommu and pc register indexing */
|
||||
- if (WARN_ON((iommu == NULL) || (fxn > 0x28) || (fxn & 7)))
|
||||
+ if (WARN_ON((fxn > 0x28) || (fxn & 7)))
|
||||
return -ENODEV;
|
||||
|
||||
offset = (u32)(((0x40|bank) << 12) | (cntr << 8) | fxn);
|
||||
@@ -2322,3 +2319,16 @@ int amd_iommu_pc_get_set_reg_val(u16 devid, u8 bank, u8 cntr, u8 fxn,
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(amd_iommu_pc_get_set_reg_val);
|
||||
+
|
||||
+int amd_iommu_pc_get_set_reg_val(u16 devid, u8 bank, u8 cntr, u8 fxn,
|
||||
+ u64 *value, bool is_write)
|
||||
+{
|
||||
+ struct amd_iommu *iommu = amd_iommu_rlookup_table[devid];
|
||||
+
|
||||
+ /* Make sure the IOMMU PC resource is available */
|
||||
+ if (!amd_iommu_pc_present || iommu == NULL)
|
||||
+ return -ENODEV;
|
||||
+
|
||||
+ return iommu_pc_get_set_reg_val(iommu, bank, cntr, fxn,
|
||||
+ value, is_write);
|
||||
+}
|
||||
--
|
||||
1.8.4.5
|
22
kernel.spec
22
kernel.spec
|
@ -52,7 +52,7 @@ Summary: The Linux kernel
|
|||
%if 0%{?released_kernel}
|
||||
|
||||
# Do we have a -stable update to apply?
|
||||
%define stable_update 4
|
||||
%define stable_update 5
|
||||
# Set rpm version accordingly
|
||||
%if 0%{?stable_update}
|
||||
%define stablerev %{stable_update}
|
||||
|
@ -619,18 +619,15 @@ Patch646: HID-sony-do-not-bail-out-when-the-sixaxis-refuses-th.patch
|
|||
#Known use after free, possibly rhbz 1310579
|
||||
Patch654: 0001-usb-hub-fix-panic-in-usb_reset_and_verify_device.patch
|
||||
|
||||
#rhbz 1310258
|
||||
Patch655: iommu-fix.patch
|
||||
|
||||
#rhbz 1310682
|
||||
Patch657: 0001-Test-ata-fix.patch
|
||||
|
||||
#Mitigates CVE-2013-4312 rhbz 1313428 1313433
|
||||
Patch659: pipe-limit-the-per-user-amount-of-pages-allocated-in.patch
|
||||
|
||||
#rhbz 1310252 1313318
|
||||
Patch660: 0001-drm-i915-Pretend-cursor-is-always-on-for-ILK-style-W.patch
|
||||
|
||||
#Fix for known arm64 breakage. No bugzilla becuase proactivity \o/
|
||||
Patch661: 0001-arm64-account-for-sparsemem-section-alignment-when-c.patch
|
||||
|
||||
# END OF PATCH DEFINITIONS
|
||||
%endif
|
||||
|
||||
|
@ -1314,18 +1311,13 @@ ApplyPatch HID-sony-do-not-bail-out-when-the-sixaxis-refuses-th.patch
|
|||
#Known use after free, possibly rhbz 1310579
|
||||
ApplyPatch 0001-usb-hub-fix-panic-in-usb_reset_and_verify_device.patch
|
||||
|
||||
#rhbz 1310258
|
||||
ApplyPatch iommu-fix.patch
|
||||
|
||||
#rhbz 1310682
|
||||
ApplyPatch 0001-Test-ata-fix.patch
|
||||
|
||||
#Mitigates CVE-2013-4312 rhbz 1313428 1313433
|
||||
ApplyPatch pipe-limit-the-per-user-amount-of-pages-allocated-in.patch
|
||||
|
||||
#rhbz 1310252 1313318
|
||||
ApplyPatch 0001-drm-i915-Pretend-cursor-is-always-on-for-ILK-style-W.patch
|
||||
|
||||
ApplyPatch 0001-arm64-account-for-sparsemem-section-alignment-when-c.patch
|
||||
# END OF PATCH APPLICATIONS
|
||||
|
||||
%endif
|
||||
|
@ -2175,6 +2167,10 @@ fi
|
|||
#
|
||||
#
|
||||
%changelog
|
||||
* Wed Mar 09 2016 Laura Abbott <labbott@redhat.com> - 4.4.5-200
|
||||
- Linux v4.4.5
|
||||
- Fix for known arm64 bootup issue
|
||||
|
||||
* Fri Mar 04 2016 Laura Abbott <labbott@redhat.com> - 4.4.4-200
|
||||
- Require updated XFS utilities
|
||||
|
||||
|
|
Loading…
Reference in New Issue