Linux v4.2-4282-gae982073095a
This commit is contained in:
parent
bb4aedb375
commit
9700819ad7
@ -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?=
|
|
||||||
<nkudriavtsev@gmail.com>
|
|
||||||
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 <nkudriavtsev@gmail.com>
|
|
||||||
Signed-off-by: Jiri Kosina <jkosina@suse.com>
|
|
||||||
---
|
|
||||||
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 <linux/input.h>
|
|
||||||
#include <linux/hid.h>
|
|
||||||
#include <linux/module.h>
|
|
||||||
+#include <linux/usb.h>
|
|
||||||
|
|
||||||
#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
|
|
||||||
|
|
@ -3882,6 +3882,7 @@ CONFIG_HID_EMS_FF=m
|
|||||||
CONFIG_HID_ELECOM=m
|
CONFIG_HID_ELECOM=m
|
||||||
CONFIG_HID_ELO=m
|
CONFIG_HID_ELO=m
|
||||||
CONFIG_HID_EZKEY=m
|
CONFIG_HID_EZKEY=m
|
||||||
|
CONFIG_HID_GEMBIRD=m
|
||||||
CONFIG_HID_UCLOGIC=m
|
CONFIG_HID_UCLOGIC=m
|
||||||
CONFIG_HID_WALTOP=m
|
CONFIG_HID_WALTOP=m
|
||||||
CONFIG_HID_ACRUX=m
|
CONFIG_HID_ACRUX=m
|
||||||
@ -5137,6 +5138,7 @@ CONFIG_DMA_ENGINE=y
|
|||||||
CONFIG_DW_DMAC_CORE=m
|
CONFIG_DW_DMAC_CORE=m
|
||||||
CONFIG_DW_DMAC=m
|
CONFIG_DW_DMAC=m
|
||||||
CONFIG_DW_DMAC_PCI=m
|
CONFIG_DW_DMAC_PCI=m
|
||||||
|
# CONFIG_IDMA64 is not set
|
||||||
# CONFIG_DW_DMAC_BIG_ENDIAN_IO is not set
|
# CONFIG_DW_DMAC_BIG_ENDIAN_IO is not set
|
||||||
# CONFIG_TIMB_DMA is not set
|
# CONFIG_TIMB_DMA is not set
|
||||||
# CONFIG_DMATEST is not set
|
# CONFIG_DMATEST is not set
|
||||||
|
@ -501,10 +501,14 @@ CONFIG_NFC_MICROREAD_MEI=m
|
|||||||
# CONFIG_X86_GOLDFISH is not set
|
# CONFIG_X86_GOLDFISH is not set
|
||||||
|
|
||||||
CONFIG_X86_INTEL_LPSS=y
|
CONFIG_X86_INTEL_LPSS=y
|
||||||
|
CONFIG_IDMA64=m
|
||||||
|
|
||||||
# CONFIG_X86_AMD_PLATFORM_DEVICE is not set
|
# CONFIG_X86_AMD_PLATFORM_DEVICE is not set
|
||||||
# CONFIG_MFD_INTEL_QUARK_I2C_GPIO 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=m
|
||||||
# CONFIG_IOSF_MBI_DEBUG is not set
|
# CONFIG_IOSF_MBI_DEBUG is not set
|
||||||
CONFIG_PWM_LPSS=m
|
CONFIG_PWM_LPSS=m
|
||||||
|
10
kernel.spec
10
kernel.spec
@ -67,7 +67,7 @@ Summary: The Linux kernel
|
|||||||
# The rc snapshot level
|
# The rc snapshot level
|
||||||
%define rcrev 0
|
%define rcrev 0
|
||||||
# The git snapshot level
|
# The git snapshot level
|
||||||
%define gitrev 3
|
%define gitrev 4
|
||||||
# Set rpm version accordingly
|
# Set rpm version accordingly
|
||||||
%define rpmversion 4.%{upstream_sublevel}.0
|
%define rpmversion 4.%{upstream_sublevel}.0
|
||||||
%endif
|
%endif
|
||||||
@ -582,9 +582,6 @@ Patch502: firmware-Drop-WARN-from-usermodehelper_read_trylock-.patch
|
|||||||
|
|
||||||
Patch503: drm-i915-turn-off-wc-mmaps.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
|
Patch508: kexec-uefi-copy-secure_boot-flag-in-boot-params.patch
|
||||||
|
|
||||||
#rhbz 1239050
|
#rhbz 1239050
|
||||||
@ -606,6 +603,8 @@ Patch514: drm-qxl-validate-monitors-config-modes.patch
|
|||||||
Patch517: vmwgfx-Rework-device-initialization.patch
|
Patch517: vmwgfx-Rework-device-initialization.patch
|
||||||
Patch518: drm-vmwgfx-Allow-dropped-masters-render-node-like-ac.patch
|
Patch518: drm-vmwgfx-Allow-dropped-masters-render-node-like-ac.patch
|
||||||
|
|
||||||
|
Patch519: security-device_cgroup-fix-RCU-lockdep-splat.patch
|
||||||
|
|
||||||
Patch904: kdbus.patch
|
Patch904: kdbus.patch
|
||||||
|
|
||||||
# END OF PATCH DEFINITIONS
|
# END OF PATCH DEFINITIONS
|
||||||
@ -2053,6 +2052,9 @@ fi
|
|||||||
#
|
#
|
||||||
#
|
#
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Sep 02 2015 Josh Boyer <jwboyer@fedoraproject.org> - 4.3.0-0.rc0.git4.1
|
||||||
|
- Linux v4.2-4282-gae982073095a
|
||||||
|
|
||||||
* Wed Sep 02 2015 Josh Boyer <jwboyer@fedoraproject.org> - 4.3.0-0.rc0.git3.1
|
* Wed Sep 02 2015 Josh Boyer <jwboyer@fedoraproject.org> - 4.3.0-0.rc0.git3.1
|
||||||
- Linux v4.2-3986-g73b6fa8e49c2
|
- Linux v4.2-3986-g73b6fa8e49c2
|
||||||
|
|
||||||
|
71
security-device_cgroup-fix-RCU-lockdep-splat.patch
Normal file
71
security-device_cgroup-fix-RCU-lockdep-splat.patch
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
From 28e1b4326abcc66839c6e21dd410fe983ee83fb3 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Felipe Balbi <balbi@ti.com>
|
||||||
|
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: [<c017af84>] __sb_start_write+0x8c/0xb0
|
||||||
|
[ 12.060954] #1: (&of->mutex){+.+.+.}, at: [<c01f1600>] kernfs_fop_write+0x50/0x1b8
|
||||||
|
[ 12.069085] #2: (s_active#30){++++.+}, at: [<c01f1608>] kernfs_fop_write+0x58/0x1b8
|
||||||
|
[ 12.077310] #3: (devcgroup_mutex){+.+...}, at: [<c0317bfc>] 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] [<c001770c>] (unwind_backtrace) from [<c0013a58>] (show_stack+0x10/0x14)
|
||||||
|
[ 12.112924] [<c0013a58>] (show_stack) from [<c034f014>] (dump_stack+0x84/0x9c)
|
||||||
|
[ 12.120491] [<c034f014>] (dump_stack) from [<c0317a04>] (verify_new_ex+0xc4/0xdc)
|
||||||
|
[ 12.128326] [<c0317a04>] (verify_new_ex) from [<c0317f50>] (devcgroup_access_write+0x374/0x658)
|
||||||
|
[ 12.137426] [<c0317f50>] (devcgroup_access_write) from [<c00d2800>] (cgroup_file_write+0x28/0x1bc)
|
||||||
|
[ 12.146796] [<c00d2800>] (cgroup_file_write) from [<c01f1670>] (kernfs_fop_write+0xc0/0x1b8)
|
||||||
|
[ 12.155620] [<c01f1670>] (kernfs_fop_write) from [<c0177c94>] (__vfs_write+0x1c/0xd8)
|
||||||
|
[ 12.163783] [<c0177c94>] (__vfs_write) from [<c0178594>] (vfs_write+0x90/0x16c)
|
||||||
|
[ 12.171426] [<c0178594>] (vfs_write) from [<c0178db4>] (SyS_write+0x44/0x9c)
|
||||||
|
[ 12.178806] [<c0178db4>] (SyS_write) from [<c000f680>] (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 <balbi@ti.com>
|
||||||
|
---
|
||||||
|
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
|
||||||
|
|
2
sources
2
sources
@ -1,3 +1,3 @@
|
|||||||
3d5ea06d767e2f35c999eeadafc76523 linux-4.2.tar.xz
|
3d5ea06d767e2f35c999eeadafc76523 linux-4.2.tar.xz
|
||||||
4c964bfba54d65b5b54cc898baddecad perf-man-4.2.tar.gz
|
4c964bfba54d65b5b54cc898baddecad perf-man-4.2.tar.gz
|
||||||
68a2dc7c75dad784e4ff57b74b862376 patch-4.2-git3.xz
|
02da0901d12a9743dba00f8ff51828ce patch-4.2-git4.xz
|
||||||
|
Loading…
Reference in New Issue
Block a user