Linux v5.8.17
Signed-off-by: Justin M. Forbes <jforbes@fedoraproject.org>
This commit is contained in:
parent
cfb276ec02
commit
42041fa804
4 changed files with 5 additions and 189 deletions
|
|
@ -1,109 +0,0 @@
|
|||
From 68912566d659046b12b02e5a316af3760e08eab8 Mon Sep 17 00:00:00 2001
|
||||
From: Fedora Kernel Team <kernel-team@fedoraproject.org>
|
||||
Date: Tue, 1 Sep 2020 18:44:00 -0400
|
||||
Subject: [PATCH] drivers/perf: xgene_pmu: Fix uninitialized resource struct
|
||||
|
||||
This splat was reported on newer Fedora kernels booting on certain
|
||||
Ampere machines:
|
||||
|
||||
xgene-pmu APMC0D83:00: X-Gene PMU version 3
|
||||
Unable to handle kernel read from unreadable memory at virtual address 0000000000004006
|
||||
Mem abort info:
|
||||
ESR = 0x96000004
|
||||
EC = 0x25: DABT (current EL), IL = 32 bits
|
||||
SET = 0, FnV = 0
|
||||
EA = 0, S1PTW = 0
|
||||
Data abort info:
|
||||
ISV = 0, ISS = 0x00000004
|
||||
CM = 0, WnR = 0
|
||||
[0000000000004006] user address but active_mm is swapper
|
||||
Internal error: Oops: 96000004 [#1] SMP
|
||||
Modules linked in:
|
||||
CPU: 0 PID: 1 Comm: swapper/0 Not tainted 5.8.3-300.fc33.aarch64 #1
|
||||
Hardware name: Lenovo HR350A 7X35CTO1WW /HR350A , BIOS HVE104N-1.12 11/29/2019
|
||||
pstate: 00400005 (nzcv daif +PAN -UAO BTYPE=--)
|
||||
pc : string+0x50/0x100
|
||||
lr : vsnprintf+0x160/0x750
|
||||
sp : ffff800012b4b760
|
||||
x29: ffff800012b4b760 x28: 000000000000000c
|
||||
x27: ffff8000113610d5 x26: ffff8000113610d5
|
||||
x25: 0000000000000020 x24: 0000000000000000
|
||||
x23: 00000000ffffffe8 x22: ffff800010f8e628
|
||||
x21: ffff800012b4b8f0 x20: 0000000000000000
|
||||
x19: 0000000000000000 x18: 00000000fffffffc
|
||||
x17: 000000000000002d x16: 0000000000000001
|
||||
x15: 0000000000000020 x14: 0000000000000000
|
||||
x13: 0000000000000000 x12: 071c71c71c71c71c
|
||||
x11: 00000000ffffff76 x10: ffff800012b4b8f0
|
||||
x9 : ffff8000109e97d8 x8 : 00000000ffffffff
|
||||
x7 : 000000000000000b x6 : 0000000000000000
|
||||
x5 : 0000000000000000 x4 : 0000000000000000
|
||||
x3 : ffff0a00ffffff04 x2 : 0000000000004006
|
||||
x1 : ffffffffffffffff x0 : 000000000000000c
|
||||
Call trace:
|
||||
string+0x50/0x100
|
||||
vsnprintf+0x160/0x750
|
||||
devm_kvasprintf+0x5c/0xb4
|
||||
devm_kasprintf+0x54/0x60
|
||||
__devm_ioremap_resource+0xdc/0x1a0
|
||||
devm_ioremap_resource+0x14/0x20
|
||||
acpi_get_pmu_hw_inf.isra.0+0x84/0x15c
|
||||
acpi_pmu_dev_add+0xbc/0x21c
|
||||
acpi_ns_walk_namespace+0x16c/0x1e4
|
||||
acpi_walk_namespace+0xb4/0xfc
|
||||
xgene_pmu_probe_pmu_dev+0x7c/0xe0
|
||||
xgene_pmu_probe.part.0+0x2c0/0x310
|
||||
xgene_pmu_probe+0x54/0x64
|
||||
platform_drv_probe+0x60/0xb4
|
||||
really_probe+0xe8/0x4a0
|
||||
driver_probe_device+0xe4/0x100
|
||||
device_driver_attach+0xcc/0xd4
|
||||
__driver_attach+0xb0/0x17c
|
||||
bus_for_each_dev+0x6c/0xb0
|
||||
driver_attach+0x30/0x40
|
||||
bus_add_driver+0x154/0x250
|
||||
driver_register+0x84/0x140
|
||||
__platform_driver_register+0x54/0x60
|
||||
xgene_pmu_driver_init+0x28/0x34
|
||||
do_one_initcall+0x40/0x204
|
||||
do_initcalls+0x104/0x144
|
||||
kernel_init_freeable+0x198/0x210
|
||||
kernel_init+0x20/0x12c
|
||||
ret_from_fork+0x10/0x18
|
||||
Code: 91000400 110004e1 eb08009f 540000c0 (38646846)
|
||||
---[ end trace f08c10566496a703 ]---
|
||||
Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
|
||||
SMP: stopping secondary CPUs
|
||||
Kernel Offset: 0x40000 from 0xffff800010000000
|
||||
PHYS_OFFSET: 0x80000000
|
||||
CPU features: 0x240002,20802008
|
||||
Memory Limit: none
|
||||
|
||||
This was due to a local struct resource variable in acpi_get_pmu_hw_inf().
|
||||
A pointer to that struct makes it's way to __devm_ioremap_resource()
|
||||
where the name field is passed to devm_kasprintf() and dereferenced.
|
||||
The struct was never initialized, so the name pointer is whatever
|
||||
happened to be on the stack. This has been the case since the original
|
||||
checkin of xgene_pmu.c, but it was a recent change to which added the
|
||||
use of the name field.
|
||||
|
||||
Signed-off-by: Mark Salter <msalter@redhat.com>
|
||||
---
|
||||
drivers/perf/xgene_pmu.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/drivers/perf/xgene_pmu.c b/drivers/perf/xgene_pmu.c
|
||||
index edac28c..fdbbd08 100644
|
||||
--- a/drivers/perf/xgene_pmu.c
|
||||
+++ b/drivers/perf/xgene_pmu.c
|
||||
@@ -1483,6 +1483,7 @@ xgene_pmu_dev_ctx *acpi_get_pmu_hw_inf(struct xgene_pmu *xgene_pmu,
|
||||
return NULL;
|
||||
|
||||
INIT_LIST_HEAD(&resource_list);
|
||||
+ memset(&res, 0, sizeof(res));
|
||||
rc = acpi_dev_get_resources(adev, &resource_list,
|
||||
acpi_pmu_dev_add_resource, &res);
|
||||
acpi_dev_free_resource_list(&resource_list);
|
||||
--
|
||||
2.26.0
|
||||
|
||||
|
|
@ -1,70 +0,0 @@
|
|||
From c342deae0807d249020e1edda9920255d76b58a1 Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Wed, 14 Oct 2020 13:59:06 +0200
|
||||
Subject: [PATCH] i2c: core: Restore acpi_walk_dep_device_list() getting called
|
||||
after registering the ACPI i2c devs
|
||||
|
||||
Commit 21653a4181ff ("i2c: core: Call i2c_acpi_install_space_handler()
|
||||
before i2c_acpi_register_devices()")'s intention was to only move the
|
||||
acpi_install_address_space_handler() call to the point before where
|
||||
the ACPI declared i2c-children of the adapter where instantiated by
|
||||
i2c_acpi_register_devices().
|
||||
|
||||
But i2c_acpi_install_space_handler() had a call to
|
||||
acpi_walk_dep_device_list() hidden (that is I missed it) at the end
|
||||
of it, so as an unwanted side-effect now acpi_walk_dep_device_list()
|
||||
was also being called before i2c_acpi_register_devices().
|
||||
|
||||
Move the acpi_walk_dep_device_list() call to the end of
|
||||
i2c_acpi_register_devices(), so that it is once again called *after*
|
||||
the i2c_client-s hanging of the adapter have been created.
|
||||
|
||||
This fixes the Microsoft Surface Go 2 hanging at boot.
|
||||
|
||||
Fixes: 21653a4181ff ("i2c: core: Call i2c_acpi_install_space_handler() before i2c_acpi_register_devices()")
|
||||
Suggested-by: Maximilian Luz <luzmaximilian@gmail.com>
|
||||
Reported-and-tested-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
---
|
||||
drivers/i2c/i2c-core-acpi.c | 11 ++++++++++-
|
||||
1 file changed, 10 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/drivers/i2c/i2c-core-acpi.c b/drivers/i2c/i2c-core-acpi.c
|
||||
index 2ade99b..bbf8dd4 100644
|
||||
--- a/drivers/i2c/i2c-core-acpi.c
|
||||
+++ b/drivers/i2c/i2c-core-acpi.c
|
||||
@@ -264,6 +264,7 @@ static acpi_status i2c_acpi_add_device(acpi_handle handle, u32 level,
|
||||
void i2c_acpi_register_devices(struct i2c_adapter *adap)
|
||||
{
|
||||
acpi_status status;
|
||||
+ acpi_handle handle;
|
||||
|
||||
if (!has_acpi_companion(&adap->dev))
|
||||
return;
|
||||
@@ -274,6 +275,15 @@ void i2c_acpi_register_devices(struct i2c_adapter *adap)
|
||||
adap, NULL);
|
||||
if (ACPI_FAILURE(status))
|
||||
dev_warn(&adap->dev, "failed to enumerate I2C slaves\n");
|
||||
+
|
||||
+ if (!adap->dev.parent)
|
||||
+ return;
|
||||
+
|
||||
+ handle = ACPI_HANDLE(adap->dev.parent);
|
||||
+ if (!handle)
|
||||
+ return;
|
||||
+
|
||||
+ acpi_walk_dep_device_list(handle);
|
||||
}
|
||||
|
||||
const struct acpi_device_id *
|
||||
@@ -729,7 +739,6 @@ int i2c_acpi_install_space_handler(struct i2c_adapter *adapter)
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
- acpi_walk_dep_device_list(handle);
|
||||
return 0;
|
||||
}
|
||||
|
||||
--
|
||||
2.28.0
|
||||
|
||||
13
kernel.spec
13
kernel.spec
|
|
@ -89,7 +89,7 @@ Summary: The Linux kernel
|
|||
%if 0%{?released_kernel}
|
||||
|
||||
# Do we have a -stable update to apply?
|
||||
%define stable_update 16
|
||||
%define stable_update 17
|
||||
# Set rpm version accordingly
|
||||
%if 0%{?stable_update}
|
||||
%define stablerev %{stable_update}
|
||||
|
|
@ -861,19 +861,11 @@ Patch103: arm64-tegra-Use-valid-PWM-period-for-VDD_GPU-on-Tegra210.patch
|
|||
# Goes away with 5.9
|
||||
Patch105: 0001-platform-x86-thinkpad_acpi-lap-or-desk-mode-interfac.patch
|
||||
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1874117
|
||||
Patch107: 0001-drivers-perf-xgene_pmu-Fix-uninitialized-resource-st.patch
|
||||
|
||||
Patch110: memory-tegra-Remove-GPU-from-DRM-IOMMU-group.patch
|
||||
|
||||
# CVE-2020-16119 rhbz 1886374 1888083
|
||||
Patch119: CVE-2020-16119-DCCP-CCID-structure-use-after-free.patch
|
||||
|
||||
# Surface Go series not booting regression fix (rhbz 1886249)
|
||||
# Also fixes some touchscreen regressions:
|
||||
# https://bugzilla.kernel.org/show_bug.cgi?id=209627
|
||||
# Pending for inclusion into stable series
|
||||
Patch123: 0001-i2c-core-Restore-acpi_walk_dep_device_list-getting-c.patch
|
||||
# A patch to fix some undocumented things broke a bunch of Allwinner networks due to wrong assumptions
|
||||
Patch124: 0001-update-phy-on-pine64-a64-devices.patch
|
||||
# https://patchwork.kernel.org/project/linux-arm-kernel/patch/20201024162515.30032-2-wens@kernel.org/
|
||||
|
|
@ -3004,6 +2996,9 @@ fi
|
|||
#
|
||||
#
|
||||
%changelog
|
||||
* Thu Oct 29 07:55:28 CDT 2020 Justin M. Forbes <jforbes@fedoraproject.org> - 5.8.17-100
|
||||
- Linux v5.8.17
|
||||
|
||||
* Wed Oct 28 2020 Peter Robinson <pbrobinson@fedoraproject.org>
|
||||
- Fixes for AllWinner wired network issues due to Realtek PHY driver change (rhbz 1889090)
|
||||
|
||||
|
|
|
|||
2
sources
2
sources
|
|
@ -1,2 +1,2 @@
|
|||
SHA512 (linux-5.8.tar.xz) = 19c8694bda4533464877e2d976aca95f48c2c40c11efcc1dce0ca91cc5f9826110e277c7de2a49ff99af8ae1c76e275b7c463abf71fbf410956d63066dc4ee53
|
||||
SHA512 (patch-5.8.16.xz) = b9f00c9aa0998e1db72ef2f3301c0082ec21e6d439394ea61876312634713ece2ca9ecce70a00af0c618dc6acbae4efb7a1b75df4d4564a672e6b8439ef13f97
|
||||
SHA512 (patch-5.8.17.xz) = bdd9d37c227e605f52ccbb24715ffbc449a4b993e1afce676216e7a4f47354227c904e40f9afe70a7b85bdf25659a33eca07a224f53dbde1781222c66756d53a
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue