From 9700819ad7cd7dc725a0d9002b063a3236d16598 Mon Sep 17 00:00:00 2001 From: Josh Boyer Date: Wed, 2 Sep 2015 11:26:43 -0400 Subject: [PATCH] Linux v4.2-4282-gae982073095a --- ...dd-support-for-Acer-Aspire-Switch-12.patch | 103 ------------------ config-generic | 2 + config-x86-generic | 4 + kernel.spec | 10 +- ...-device_cgroup-fix-RCU-lockdep-splat.patch | 71 ++++++++++++ sources | 2 +- 6 files changed, 84 insertions(+), 108 deletions(-) delete mode 100644 HID-chicony-Add-support-for-Acer-Aspire-Switch-12.patch create mode 100644 security-device_cgroup-fix-RCU-lockdep-splat.patch diff --git a/HID-chicony-Add-support-for-Acer-Aspire-Switch-12.patch b/HID-chicony-Add-support-for-Acer-Aspire-Switch-12.patch deleted file mode 100644 index 2baf72e4c..000000000 --- a/HID-chicony-Add-support-for-Acer-Aspire-Switch-12.patch +++ /dev/null @@ -1,103 +0,0 @@ -From 98f07385212073536f303c07ece455acdd4d267f Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?=D0=9D=D0=B8=D0=BA=D0=BE=D0=BB=D0=B0=D0=B9=20=D0=9A=D1=83?= - =?UTF-8?q?=D0=B4=D1=80=D1=8F=D0=B2=D1=86=D0=B5=D0=B2?= - -Date: Tue, 21 Jul 2015 13:31:52 +0300 -Subject: [PATCH] HID: chicony: Add support for Acer Aspire Switch 12 - -Acer Aspire Switch 12 keyboard Chicony's controller reports too big usage -index on the 1st interface. The patch fixes the report. The work based on -solution from drivers/hid/hid-holtek-mouse.c - -Bug report: https://bugzilla.kernel.org/show_bug.cgi?id=101721 - -Signed-off-by: Nicholas Kudriavtsev -Signed-off-by: Jiri Kosina ---- - drivers/hid/hid-chicony.c | 26 ++++++++++++++++++++++++++ - drivers/hid/hid-core.c | 1 + - drivers/hid/hid-ids.h | 1 + - 3 files changed, 28 insertions(+) - -diff --git a/drivers/hid/hid-chicony.c b/drivers/hid/hid-chicony.c -index b613d5a79684..bc3cec199fee 100644 ---- a/drivers/hid/hid-chicony.c -+++ b/drivers/hid/hid-chicony.c -@@ -20,6 +20,7 @@ - #include - #include - #include -+#include - - #include "hid-ids.h" - -@@ -57,10 +58,34 @@ static int ch_input_mapping(struct hid_device *hdev, struct hid_input *hi, - return 1; - } - -+static __u8 *ch_switch12_report_fixup(struct hid_device *hdev, __u8 *rdesc, -+ unsigned int *rsize) -+{ -+ struct usb_interface *intf = to_usb_interface(hdev->dev.parent); -+ -+ if (intf->cur_altsetting->desc.bInterfaceNumber == 1) { -+ /* Change usage maximum and logical maximum from 0x7fff to -+ * 0x2fff, so they don't exceed HID_MAX_USAGES */ -+ switch (hdev->product) { -+ case USB_DEVICE_ID_CHICONY_ACER_SWITCH12: -+ if (*rsize >= 128 && rdesc[64] == 0xff && rdesc[65] == 0x7f -+ && rdesc[69] == 0xff && rdesc[70] == 0x7f) { -+ hid_info(hdev, "Fixing up report descriptor\n"); -+ rdesc[65] = rdesc[70] = 0x2f; -+ } -+ break; -+ } -+ -+ } -+ return rdesc; -+} -+ -+ - static const struct hid_device_id ch_devices[] = { - { HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_TACTICAL_PAD) }, - { HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_WIRELESS2) }, - { HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_AK1D) }, -+ { HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_ACER_SWITCH12) }, - { } - }; - MODULE_DEVICE_TABLE(hid, ch_devices); -@@ -68,6 +93,7 @@ MODULE_DEVICE_TABLE(hid, ch_devices); - static struct hid_driver ch_driver = { - .name = "chicony", - .id_table = ch_devices, -+ .report_fixup = ch_switch12_report_fixup, - .input_mapping = ch_input_mapping, - }; - module_hid_driver(ch_driver); -diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c -index e6fce23b121a..f90ca6574221 100644 ---- a/drivers/hid/hid-core.c -+++ b/drivers/hid/hid-core.c -@@ -1807,6 +1807,7 @@ static const struct hid_device_id hid_have_special_driver[] = { - { HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_WIRELESS) }, - { HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_WIRELESS2) }, - { HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_AK1D) }, -+ { HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_ACER_SWITCH12) }, - { HID_USB_DEVICE(USB_VENDOR_ID_CREATIVELABS, USB_DEVICE_ID_PRODIKEYS_PCMIDI) }, - { HID_USB_DEVICE(USB_VENDOR_ID_CYGNAL, USB_DEVICE_ID_CYGNAL_CP2112) }, - { HID_USB_DEVICE(USB_VENDOR_ID_CYPRESS, USB_DEVICE_ID_CYPRESS_BARCODE_1) }, -diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h -index b3b225b75d0a..79210ca8eff1 100644 ---- a/drivers/hid/hid-ids.h -+++ b/drivers/hid/hid-ids.h -@@ -233,6 +233,7 @@ - #define USB_DEVICE_ID_CHICONY_PIXART_USB_OPTICAL_MOUSE 0x1053 - #define USB_DEVICE_ID_CHICONY_WIRELESS2 0x1123 - #define USB_DEVICE_ID_CHICONY_AK1D 0x1125 -+#define USB_DEVICE_ID_CHICONY_ACER_SWITCH12 0x1421 - - #define USB_VENDOR_ID_CHUNGHWAT 0x2247 - #define USB_DEVICE_ID_CHUNGHWAT_MULTITOUCH 0x0001 --- -2.4.3 - diff --git a/config-generic b/config-generic index 00c6bf5b6..c10793af4 100644 --- a/config-generic +++ b/config-generic @@ -3882,6 +3882,7 @@ CONFIG_HID_EMS_FF=m CONFIG_HID_ELECOM=m CONFIG_HID_ELO=m CONFIG_HID_EZKEY=m +CONFIG_HID_GEMBIRD=m CONFIG_HID_UCLOGIC=m CONFIG_HID_WALTOP=m CONFIG_HID_ACRUX=m @@ -5137,6 +5138,7 @@ CONFIG_DMA_ENGINE=y CONFIG_DW_DMAC_CORE=m CONFIG_DW_DMAC=m CONFIG_DW_DMAC_PCI=m +# CONFIG_IDMA64 is not set # CONFIG_DW_DMAC_BIG_ENDIAN_IO is not set # CONFIG_TIMB_DMA is not set # CONFIG_DMATEST is not set diff --git a/config-x86-generic b/config-x86-generic index 94870d2eb..d780bc3ed 100644 --- a/config-x86-generic +++ b/config-x86-generic @@ -501,10 +501,14 @@ CONFIG_NFC_MICROREAD_MEI=m # CONFIG_X86_GOLDFISH is not set CONFIG_X86_INTEL_LPSS=y +CONFIG_IDMA64=m # CONFIG_X86_AMD_PLATFORM_DEVICE is not set # CONFIG_MFD_INTEL_QUARK_I2C_GPIO is not set +CONFIG_MFD_INTEL_LPSS_ACPI=m +CONFIG_MFD_INTEL_LPSS_PCI=m + CONFIG_IOSF_MBI=m # CONFIG_IOSF_MBI_DEBUG is not set CONFIG_PWM_LPSS=m diff --git a/kernel.spec b/kernel.spec index 0b6c4b995..c68e26150 100644 --- a/kernel.spec +++ b/kernel.spec @@ -67,7 +67,7 @@ Summary: The Linux kernel # The rc snapshot level %define rcrev 0 # The git snapshot level -%define gitrev 3 +%define gitrev 4 # Set rpm version accordingly %define rpmversion 4.%{upstream_sublevel}.0 %endif @@ -582,9 +582,6 @@ Patch502: firmware-Drop-WARN-from-usermodehelper_read_trylock-.patch Patch503: drm-i915-turn-off-wc-mmaps.patch -#rhbz 1244511 -Patch507: HID-chicony-Add-support-for-Acer-Aspire-Switch-12.patch - Patch508: kexec-uefi-copy-secure_boot-flag-in-boot-params.patch #rhbz 1239050 @@ -606,6 +603,8 @@ Patch514: drm-qxl-validate-monitors-config-modes.patch Patch517: vmwgfx-Rework-device-initialization.patch Patch518: drm-vmwgfx-Allow-dropped-masters-render-node-like-ac.patch +Patch519: security-device_cgroup-fix-RCU-lockdep-splat.patch + Patch904: kdbus.patch # END OF PATCH DEFINITIONS @@ -2053,6 +2052,9 @@ fi # # %changelog +* Wed Sep 02 2015 Josh Boyer - 4.3.0-0.rc0.git4.1 +- Linux v4.2-4282-gae982073095a + * Wed Sep 02 2015 Josh Boyer - 4.3.0-0.rc0.git3.1 - Linux v4.2-3986-g73b6fa8e49c2 diff --git a/security-device_cgroup-fix-RCU-lockdep-splat.patch b/security-device_cgroup-fix-RCU-lockdep-splat.patch new file mode 100644 index 000000000..2de959ee9 --- /dev/null +++ b/security-device_cgroup-fix-RCU-lockdep-splat.patch @@ -0,0 +1,71 @@ +From 28e1b4326abcc66839c6e21dd410fe983ee83fb3 Mon Sep 17 00:00:00 2001 +From: Felipe Balbi +Date: Wed, 2 Sep 2015 08:12:28 -0500 +Subject: [PATCH] security: device_cgroup: fix RCU lockdep splat + +while booting AM437x device, the following splat +triggered: + +[ 12.005238] =============================== +[ 12.009749] [ INFO: suspicious RCU usage. ] +[ 12.014116] 4.2.0-next-20150831 #1154 Not tainted +[ 12.019050] ------------------------------- +[ 12.023408] security/device_cgroup.c:405 device_cgroup:verify_new_ex called without proper synchronization! +[ 12.033576] other info that might help us debug this: + +[ 12.041942] rcu_scheduler_active = 1, debug_locks = 0 +[ 12.048796] 4 locks held by systemd/1: +[ 12.052700] #0: (sb_writers#7){.+.+.+}, at: [] __sb_start_write+0x8c/0xb0 +[ 12.060954] #1: (&of->mutex){+.+.+.}, at: [] kernfs_fop_write+0x50/0x1b8 +[ 12.069085] #2: (s_active#30){++++.+}, at: [] kernfs_fop_write+0x58/0x1b8 +[ 12.077310] #3: (devcgroup_mutex){+.+...}, at: [] devcgroup_access_write+0x20/0x658 +[ 12.086575] stack backtrace: +[ 12.091124] CPU: 0 PID: 1 Comm: systemd Not tainted 4.2.0-next-20150831 #1154 +[ 12.098609] Hardware name: Generic AM43 (Flattened Device Tree) +[ 12.104807] [] (unwind_backtrace) from [] (show_stack+0x10/0x14) +[ 12.112924] [] (show_stack) from [] (dump_stack+0x84/0x9c) +[ 12.120491] [] (dump_stack) from [] (verify_new_ex+0xc4/0xdc) +[ 12.128326] [] (verify_new_ex) from [] (devcgroup_access_write+0x374/0x658) +[ 12.137426] [] (devcgroup_access_write) from [] (cgroup_file_write+0x28/0x1bc) +[ 12.146796] [] (cgroup_file_write) from [] (kernfs_fop_write+0xc0/0x1b8) +[ 12.155620] [] (kernfs_fop_write) from [] (__vfs_write+0x1c/0xd8) +[ 12.163783] [] (__vfs_write) from [] (vfs_write+0x90/0x16c) +[ 12.171426] [] (vfs_write) from [] (SyS_write+0x44/0x9c) +[ 12.178806] [] (SyS_write) from [] (ret_fast_syscall+0x0/0x1c) + +Fix it by making sure rcu_read_lock() is held +around calls to parent_has_perm(). + +Signed-off-by: Felipe Balbi +--- + security/device_cgroup.c | 7 ++++++- + 1 file changed, 6 insertions(+), 1 deletion(-) + +diff --git a/security/device_cgroup.c b/security/device_cgroup.c +index 73455089feef..dd77ed206fa4 100644 +--- a/security/device_cgroup.c ++++ b/security/device_cgroup.c +@@ -608,6 +608,7 @@ static int devcgroup_update_access(struct dev_cgroup *devcgroup, + int count, rc = 0; + struct dev_exception_item ex; + struct dev_cgroup *parent = css_to_devcgroup(devcgroup->css.parent); ++ int ret; + + if (!capable(CAP_SYS_ADMIN)) + return -EPERM; +@@ -734,7 +735,11 @@ static int devcgroup_update_access(struct dev_cgroup *devcgroup, + break; + } + +- if (!parent_has_perm(devcgroup, &ex)) ++ rcu_read_lock(); ++ ret = parent_has_perm(devcgroup, &ex); ++ rcu_read_unlock(); ++ ++ if (!ret) + return -EPERM; + rc = dev_exception_add(devcgroup, &ex); + break; +-- +2.4.3 + diff --git a/sources b/sources index c16149f23..44a75f318 100644 --- a/sources +++ b/sources @@ -1,3 +1,3 @@ 3d5ea06d767e2f35c999eeadafc76523 linux-4.2.tar.xz 4c964bfba54d65b5b54cc898baddecad perf-man-4.2.tar.gz -68a2dc7c75dad784e4ff57b74b862376 patch-4.2-git3.xz +02da0901d12a9743dba00f8ff51828ce patch-4.2-git4.xz