Linux v3.18.4
This commit is contained in:
parent
6716e0528c
commit
1d791edb46
|
@ -9,23 +9,23 @@ Patch for disconnect issues with storage attached to a
|
|||
1 file changed, 7 insertions(+)
|
||||
|
||||
diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
|
||||
index dc849154f9de..88647f158ed2 100644
|
||||
index b649fef2e35d..fb89290710ad 100644
|
||||
--- a/drivers/usb/core/hub.c
|
||||
+++ b/drivers/usb/core/hub.c
|
||||
@@ -5038,6 +5038,13 @@ static void hub_events(void)
|
||||
(u16) hub->change_bits[0],
|
||||
(u16) hub->event_bits[0]);
|
||||
@@ -5023,6 +5023,13 @@ static void hub_event(struct work_struct *work)
|
||||
(u16) hub->change_bits[0],
|
||||
(u16) hub->event_bits[0]);
|
||||
|
||||
+ /* Don't disconnect USB-SATA on TrimSlice */
|
||||
+ if (strcmp(dev_name(hdev->bus->controller), "tegra-ehci.0") == 0) {
|
||||
+ if ((hdev->state == 7) && (hub->change_bits[0] == 0) &&
|
||||
+ (hub->event_bits[0] == 0x2))
|
||||
+ hub->event_bits[0] = 0;
|
||||
+ }
|
||||
+ /* Don't disconnect USB-SATA on TrimSlice */
|
||||
+ if (strcmp(dev_name(hdev->bus->controller), "tegra-ehci.0") == 0) {
|
||||
+ if ((hdev->state == 7) && (hub->change_bits[0] == 0) &&
|
||||
+ (hub->event_bits[0] == 0x2))
|
||||
+ hub->event_bits[0] = 0;
|
||||
+ }
|
||||
+
|
||||
/* Lock the device, then check to see if we were
|
||||
* disconnected while waiting for the lock to succeed. */
|
||||
usb_lock_device(hdev);
|
||||
/* Lock the device, then check to see if we were
|
||||
* disconnected while waiting for the lock to succeed. */
|
||||
usb_lock_device(hdev);
|
||||
--
|
||||
1.9.3
|
||||
2.1.0
|
||||
|
||||
|
|
|
@ -159,12 +159,12 @@ index 000000000000..424896a0b169
|
|||
+ return 0;
|
||||
+}
|
||||
diff --git a/include/linux/efi.h b/include/linux/efi.h
|
||||
index 5ce40e215f15..41359e548bcb 100644
|
||||
index 58d7feadd149..b1d686e9175e 100644
|
||||
--- a/include/linux/efi.h
|
||||
+++ b/include/linux/efi.h
|
||||
@@ -906,6 +906,10 @@ extern bool efi_poweroff_required(void);
|
||||
(md) <= (efi_memory_desc_t *)((m)->map_end - (m)->desc_size); \
|
||||
(md) = (void *)(md) + (m)->desc_size)
|
||||
@@ -919,6 +919,10 @@ extern bool efi_poweroff_required(void);
|
||||
char * __init efi_md_typeattr_format(char *buf, size_t size,
|
||||
const efi_memory_desc_t *md);
|
||||
|
||||
+struct key;
|
||||
+extern int __init parse_efi_signature_list(const void *data, size_t size,
|
||||
|
@ -174,5 +174,5 @@ index 5ce40e215f15..41359e548bcb 100644
|
|||
* efi_range_is_wc - check the WC bit on an address range
|
||||
* @start: starting kvirt address
|
||||
--
|
||||
1.9.3
|
||||
2.1.0
|
||||
|
||||
|
|
|
@ -1,46 +0,0 @@
|
|||
From: Benjamin Tissoires <benjamin.tissoires@redhat.com>
|
||||
Date: Wed, 3 Sep 2014 15:43:25 -0400
|
||||
Subject: [PATCH] HID: wacom: Add support for the Cintiq Companion
|
||||
|
||||
The Wacom Cintiq Companion shares the same sensor than the Cintiq
|
||||
Companion Hybrid, with the exception of the different PIDs.
|
||||
|
||||
Bugzilla: 1134969
|
||||
Upstream-status: Queued for 3.18
|
||||
|
||||
Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com>
|
||||
---
|
||||
drivers/hid/wacom_wac.c | 10 ++++++++++
|
||||
1 file changed, 10 insertions(+)
|
||||
|
||||
diff --git a/drivers/hid/wacom_wac.c b/drivers/hid/wacom_wac.c
|
||||
index aa6a08eb7ad6..c3cbbfb5811f 100644
|
||||
--- a/drivers/hid/wacom_wac.c
|
||||
+++ b/drivers/hid/wacom_wac.c
|
||||
@@ -2573,6 +2573,14 @@ static const struct wacom_features wacom_features_0x309 =
|
||||
{ "Wacom ISDv5 309", .type = WACOM_24HDT, /* Touch */
|
||||
.oVid = USB_VENDOR_ID_WACOM, .oPid = 0x0307, .touch_max = 10,
|
||||
.check_for_hid_type = true, .hid_type = HID_TYPE_USBNONE };
|
||||
+static const struct wacom_features wacom_features_0x30A =
|
||||
+ { "Wacom ISDv5 30A", 59352, 33648, 2047, 63,
|
||||
+ CINTIQ_HYBRID, WACOM_INTUOS3_RES, WACOM_INTUOS3_RES, 200, 200,
|
||||
+ .oVid = USB_VENDOR_ID_WACOM, .oPid = 0x30C };
|
||||
+static const struct wacom_features wacom_features_0x30C =
|
||||
+ { "Wacom ISDv5 30C", .type = WACOM_24HDT, /* Touch */
|
||||
+ .oVid = USB_VENDOR_ID_WACOM, .oPid = 0x30A, .touch_max = 10,
|
||||
+ .check_for_hid_type = true, .hid_type = HID_TYPE_USBNONE };
|
||||
|
||||
#define USB_DEVICE_WACOM(prod) \
|
||||
HID_DEVICE(BUS_USB, HID_GROUP_WACOM, USB_VENDOR_ID_WACOM, prod),\
|
||||
@@ -2708,6 +2716,8 @@ const struct hid_device_id wacom_ids[] = {
|
||||
{ USB_DEVICE_WACOM(0x304) },
|
||||
{ USB_DEVICE_WACOM(0x307) },
|
||||
{ USB_DEVICE_WACOM(0x309) },
|
||||
+ { USB_DEVICE_WACOM(0x30A) },
|
||||
+ { USB_DEVICE_WACOM(0x30C) },
|
||||
{ USB_DEVICE_WACOM(0x30E) },
|
||||
{ USB_DEVICE_WACOM(0x314) },
|
||||
{ USB_DEVICE_WACOM(0x315) },
|
||||
--
|
||||
1.9.3
|
||||
|
|
@ -0,0 +1,81 @@
|
|||
From: Nadav Amit <namit@cs.technion.ac.il>
|
||||
Date: Thu, 1 Jan 2015 23:11:11 +0200
|
||||
Subject: [PATCH] KVM: x86: SYSENTER emulation is broken
|
||||
|
||||
SYSENTER emulation is broken in several ways:
|
||||
1. It misses the case of 16-bit code segments completely (CVE-2015-0239).
|
||||
2. MSR_IA32_SYSENTER_CS is checked in 64-bit mode incorrectly (bits 0 and 1 can
|
||||
still be set without causing #GP).
|
||||
3. MSR_IA32_SYSENTER_EIP and MSR_IA32_SYSENTER_ESP are not masked in
|
||||
legacy-mode.
|
||||
4. There is some unneeded code.
|
||||
|
||||
Fix it.
|
||||
|
||||
Cc: stable@vger.linux.org
|
||||
Signed-off-by: Nadav Amit <namit@cs.technion.ac.il>
|
||||
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
||||
---
|
||||
arch/x86/kvm/emulate.c | 27 ++++++++-------------------
|
||||
1 file changed, 8 insertions(+), 19 deletions(-)
|
||||
|
||||
diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c
|
||||
index 22e7ed9e6d8e..ac640d47c28d 100644
|
||||
--- a/arch/x86/kvm/emulate.c
|
||||
+++ b/arch/x86/kvm/emulate.c
|
||||
@@ -2345,7 +2345,7 @@ static int em_sysenter(struct x86_emulate_ctxt *ctxt)
|
||||
* Not recognized on AMD in compat mode (but is recognized in legacy
|
||||
* mode).
|
||||
*/
|
||||
- if ((ctxt->mode == X86EMUL_MODE_PROT32) && (efer & EFER_LMA)
|
||||
+ if ((ctxt->mode != X86EMUL_MODE_PROT64) && (efer & EFER_LMA)
|
||||
&& !vendor_intel(ctxt))
|
||||
return emulate_ud(ctxt);
|
||||
|
||||
@@ -2358,25 +2358,13 @@ static int em_sysenter(struct x86_emulate_ctxt *ctxt)
|
||||
setup_syscalls_segments(ctxt, &cs, &ss);
|
||||
|
||||
ops->get_msr(ctxt, MSR_IA32_SYSENTER_CS, &msr_data);
|
||||
- switch (ctxt->mode) {
|
||||
- case X86EMUL_MODE_PROT32:
|
||||
- if ((msr_data & 0xfffc) == 0x0)
|
||||
- return emulate_gp(ctxt, 0);
|
||||
- break;
|
||||
- case X86EMUL_MODE_PROT64:
|
||||
- if (msr_data == 0x0)
|
||||
- return emulate_gp(ctxt, 0);
|
||||
- break;
|
||||
- default:
|
||||
- break;
|
||||
- }
|
||||
+ if ((msr_data & 0xfffc) == 0x0)
|
||||
+ return emulate_gp(ctxt, 0);
|
||||
|
||||
ctxt->eflags &= ~(EFLG_VM | EFLG_IF);
|
||||
- cs_sel = (u16)msr_data;
|
||||
- cs_sel &= ~SELECTOR_RPL_MASK;
|
||||
+ cs_sel = (u16)msr_data & ~SELECTOR_RPL_MASK;
|
||||
ss_sel = cs_sel + 8;
|
||||
- ss_sel &= ~SELECTOR_RPL_MASK;
|
||||
- if (ctxt->mode == X86EMUL_MODE_PROT64 || (efer & EFER_LMA)) {
|
||||
+ if (efer & EFER_LMA) {
|
||||
cs.d = 0;
|
||||
cs.l = 1;
|
||||
}
|
||||
@@ -2385,10 +2373,11 @@ static int em_sysenter(struct x86_emulate_ctxt *ctxt)
|
||||
ops->set_segment(ctxt, ss_sel, &ss, 0, VCPU_SREG_SS);
|
||||
|
||||
ops->get_msr(ctxt, MSR_IA32_SYSENTER_EIP, &msr_data);
|
||||
- ctxt->_eip = msr_data;
|
||||
+ ctxt->_eip = (efer & EFER_LMA) ? msr_data : (u32)msr_data;
|
||||
|
||||
ops->get_msr(ctxt, MSR_IA32_SYSENTER_ESP, &msr_data);
|
||||
- *reg_write(ctxt, VCPU_REGS_RSP) = msr_data;
|
||||
+ *reg_write(ctxt, VCPU_REGS_RSP) = (efer & EFER_LMA) ? msr_data :
|
||||
+ (u32)msr_data;
|
||||
|
||||
return X86EMUL_CONTINUE;
|
||||
}
|
||||
--
|
||||
2.1.0
|
||||
|
|
@ -1,61 +0,0 @@
|
|||
From: Sven Eckelmann <sven@narfation.org>
|
||||
Date: Sat, 20 Dec 2014 13:48:55 +0100
|
||||
Subject: [PATCH] batman-adv: Calculate extra tail size based on queued
|
||||
fragments
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
The fragmentation code was replaced in 610bfc6bc99bc83680d190ebc69359a05fc7f605
|
||||
("batman-adv: Receive fragmented packets and merge"). The new code provided a
|
||||
mostly unused parameter skb for the merging function. It is used inside the
|
||||
function to calculate the additionally needed skb tailroom. But instead of
|
||||
increasing its own tailroom, it is only increasing the tailroom of the first
|
||||
queued skb. This is not correct in some situations because the first queued
|
||||
entry can be a different one than the parameter.
|
||||
|
||||
An observed problem was:
|
||||
|
||||
1. packet with size 104, total_size 1464, fragno 1 was received
|
||||
- packet is queued
|
||||
2. packet with size 1400, total_size 1464, fragno 0 was received
|
||||
- packet is queued at the end of the list
|
||||
3. enough data was received and can be given to the merge function
|
||||
(1464 == (1400 - 20) + (104 - 20))
|
||||
- merge functions gets 1400 byte large packet as skb argument
|
||||
4. merge function gets first entry in queue (104 byte)
|
||||
- stored as skb_out
|
||||
5. merge function calculates the required extra tail as total_size - skb->len
|
||||
- pskb_expand_head tail of skb_out with 64 bytes
|
||||
6. merge function tries to squeeze the extra 1380 bytes from the second queued
|
||||
skb (1400 byte aka skb parameter) in the 64 extra tail bytes of skb_out
|
||||
|
||||
Instead calculate the extra required tail bytes for skb_out also using skb_out
|
||||
instead of using the parameter skb. The skb parameter is only used to get the
|
||||
total_size from the last received packet. This is also the total_size used to
|
||||
decide that all fragments were received.
|
||||
|
||||
Reported-by: Philipp Psurek <philipp.psurek@gmail.com>
|
||||
Signed-off-by: Sven Eckelmann <sven@narfation.org>
|
||||
Acked-by: Martin Hundebøll <martin@hundeboll.net>
|
||||
Signed-off-by: David S. Miller <davem@davemloft.net>
|
||||
---
|
||||
net/batman-adv/fragmentation.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/net/batman-adv/fragmentation.c b/net/batman-adv/fragmentation.c
|
||||
index fc1835c6bb40..8af3461d18d2 100644
|
||||
--- a/net/batman-adv/fragmentation.c
|
||||
+++ b/net/batman-adv/fragmentation.c
|
||||
@@ -251,7 +251,7 @@ batadv_frag_merge_packets(struct hlist_head *chain, struct sk_buff *skb)
|
||||
kfree(entry);
|
||||
|
||||
/* Make room for the rest of the fragments. */
|
||||
- if (pskb_expand_head(skb_out, 0, size - skb->len, GFP_ATOMIC) < 0) {
|
||||
+ if (pskb_expand_head(skb_out, 0, size - skb_out->len, GFP_ATOMIC) < 0) {
|
||||
kfree_skb(skb_out);
|
||||
skb_out = NULL;
|
||||
goto free;
|
||||
--
|
||||
2.1.0
|
||||
|
|
@ -1,79 +0,0 @@
|
|||
From: Takashi Iwai <tiwai@suse.de>
|
||||
Date: Wed, 10 Dec 2014 16:38:30 +0100
|
||||
Subject: [PATCH] blk-mq: Fix uninitialized kobject at CPU hotplugging
|
||||
|
||||
When a CPU is hotplugged, the current blk-mq spews a warning like:
|
||||
|
||||
kobject '(null)' (ffffe8ffffc8b5d8): tried to add an uninitialized object, something is seriously wrong.
|
||||
CPU: 1 PID: 1386 Comm: systemd-udevd Not tainted 3.18.0-rc7-2.g088d59b-default #1
|
||||
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.7.5-20140531_171129-lamiak 04/01/2014
|
||||
0000000000000000 0000000000000002 ffffffff81605f07 ffffe8ffffc8b5d8
|
||||
ffffffff8132c7a0 ffff88023341d370 0000000000000020 ffff8800bb05bd58
|
||||
ffff8800bb05bd08 000000000000a0a0 000000003f441940 0000000000000007
|
||||
Call Trace:
|
||||
[<ffffffff81005306>] dump_trace+0x86/0x330
|
||||
[<ffffffff81005644>] show_stack_log_lvl+0x94/0x170
|
||||
[<ffffffff81006d21>] show_stack+0x21/0x50
|
||||
[<ffffffff81605f07>] dump_stack+0x41/0x51
|
||||
[<ffffffff8132c7a0>] kobject_add+0xa0/0xb0
|
||||
[<ffffffff8130aee1>] blk_mq_register_hctx+0x91/0xb0
|
||||
[<ffffffff8130b82e>] blk_mq_sysfs_register+0x3e/0x60
|
||||
[<ffffffff81309298>] blk_mq_queue_reinit_notify+0xf8/0x190
|
||||
[<ffffffff8107cfdc>] notifier_call_chain+0x4c/0x70
|
||||
[<ffffffff8105fd23>] cpu_notify+0x23/0x50
|
||||
[<ffffffff81060037>] _cpu_up+0x157/0x170
|
||||
[<ffffffff810600d9>] cpu_up+0x89/0xb0
|
||||
[<ffffffff815fa5b5>] cpu_subsys_online+0x35/0x80
|
||||
[<ffffffff814323cd>] device_online+0x5d/0xa0
|
||||
[<ffffffff81432485>] online_store+0x75/0x80
|
||||
[<ffffffff81236a5a>] kernfs_fop_write+0xda/0x150
|
||||
[<ffffffff811c5532>] vfs_write+0xb2/0x1f0
|
||||
[<ffffffff811c5f42>] SyS_write+0x42/0xb0
|
||||
[<ffffffff8160c4ed>] system_call_fastpath+0x16/0x1b
|
||||
[<00007f0132fb24e0>] 0x7f0132fb24e0
|
||||
|
||||
This is indeed because of an uninitialized kobject for blk_mq_ctx.
|
||||
The blk_mq_ctx kobjects are initialized in blk_mq_sysfs_init(), but it
|
||||
goes loop over hctx_for_each_ctx(), i.e. it initializes only for
|
||||
online CPUs. Thus, when a CPU is hotplugged, the ctx for the newly
|
||||
onlined CPU is registered without initialization.
|
||||
|
||||
This patch fixes the issue by initializing the all ctx kobjects
|
||||
belonging to each queue.
|
||||
|
||||
Bugzilla: https://bugzilla.novell.com/show_bug.cgi?id=908794
|
||||
Cc: <stable@vger.kernel.org>
|
||||
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
||||
Signed-off-by: Jens Axboe <axboe@fb.com>
|
||||
---
|
||||
block/blk-mq-sysfs.c | 9 ++++-----
|
||||
1 file changed, 4 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/block/blk-mq-sysfs.c b/block/blk-mq-sysfs.c
|
||||
index ed5217867555..e0fb3f4a628f 100644
|
||||
--- a/block/blk-mq-sysfs.c
|
||||
+++ b/block/blk-mq-sysfs.c
|
||||
@@ -390,16 +390,15 @@ static void blk_mq_sysfs_init(struct request_queue *q)
|
||||
{
|
||||
struct blk_mq_hw_ctx *hctx;
|
||||
struct blk_mq_ctx *ctx;
|
||||
- int i, j;
|
||||
+ int i;
|
||||
|
||||
kobject_init(&q->mq_kobj, &blk_mq_ktype);
|
||||
|
||||
- queue_for_each_hw_ctx(q, hctx, i) {
|
||||
+ queue_for_each_hw_ctx(q, hctx, i)
|
||||
kobject_init(&hctx->kobj, &blk_mq_hw_ktype);
|
||||
|
||||
- hctx_for_each_ctx(hctx, ctx, j)
|
||||
- kobject_init(&ctx->kobj, &blk_mq_ctx_ktype);
|
||||
- }
|
||||
+ queue_for_each_ctx(q, ctx, i)
|
||||
+ kobject_init(&ctx->kobj, &blk_mq_ctx_ktype);
|
||||
}
|
||||
|
||||
int blk_mq_register_disk(struct gendisk *disk)
|
||||
--
|
||||
2.1.0
|
||||
|
|
@ -1,42 +0,0 @@
|
|||
From e95a7085483366d52dd93b9fe8258ea77b99b89a Mon Sep 17 00:00:00 2001
|
||||
From: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
|
||||
Date: Tue, 2 Dec 2014 09:53:25 +0200
|
||||
Subject: [PATCH] cfg80211: don't WARN about two consecutive Country IE hint
|
||||
|
||||
This can happen and there is no point in added more
|
||||
detection code lower in the stack. Catching these in one
|
||||
single point (cfg80211) is enough. Stop WARNING about this
|
||||
case.
|
||||
|
||||
This fixes:
|
||||
https://bugzilla.kernel.org/show_bug.cgi?id=89001
|
||||
|
||||
Cc: <stable@vger.kernel.org>
|
||||
Fixes: 2f1c6c572d7b ("cfg80211: process non country IE conflicting first")
|
||||
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
|
||||
Acked-by: Luis R. Rodriguez <mcgrof@suse.com>
|
||||
---
|
||||
net/wireless/reg.c | 7 ++-----
|
||||
1 file changed, 2 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/net/wireless/reg.c b/net/wireless/reg.c
|
||||
index b725a31a4751..695f12b2c176 100644
|
||||
--- a/net/wireless/reg.c
|
||||
+++ b/net/wireless/reg.c
|
||||
@@ -1839,11 +1839,8 @@ __reg_process_hint_country_ie(struct wiphy *wiphy,
|
||||
return REG_REQ_IGNORE;
|
||||
return REG_REQ_ALREADY_SET;
|
||||
}
|
||||
- /*
|
||||
- * Two consecutive Country IE hints on the same wiphy.
|
||||
- * This should be picked up early by the driver/stack
|
||||
- */
|
||||
- if (WARN_ON(regdom_changes(country_ie_request->alpha2)))
|
||||
+
|
||||
+ if (regdom_changes(country_ie_request->alpha2))
|
||||
return REG_REQ_OK;
|
||||
return REG_REQ_ALREADY_SET;
|
||||
}
|
||||
--
|
||||
2.1.0
|
||||
|
|
@ -24,8 +24,6 @@ CONFIG_RESET_CONTROLLER=y
|
|||
CONFIG_RESET_GPIO=y
|
||||
|
||||
CONFIG_RCU_FANOUT_LEAF=16
|
||||
# CONFIG_RTC_DRV_SNVS is not set
|
||||
# CONFIG_RTC_DRV_HYM8563 is not set
|
||||
CONFIG_BACKLIGHT_PWM=m
|
||||
CONFIG_INPUT_PWM_BEEPER=m
|
||||
CONFIG_ARM_SP805_WATCHDOG=m
|
||||
|
@ -53,6 +51,7 @@ CONFIG_ARM_SMMU=y
|
|||
CONFIG_MMC_ARMMMCI=y
|
||||
CONFIG_SERIAL_AMBA_PL011=y
|
||||
CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
|
||||
CONFIG_SERIAL_8250_DW=y
|
||||
CONFIG_SERIO_AMBAKMI=y
|
||||
CONFIG_OC_ETM=y
|
||||
CONFIG_FB_ARMCLCD=y
|
||||
|
@ -69,10 +68,10 @@ CONFIG_POWER_RESET_VEXPRESS=y
|
|||
CONFIG_REGULATOR_VEXPRESS=m
|
||||
CONFIG_SENSORS_VEXPRESS=m
|
||||
CONFIG_CLKSRC_VERSATILE=y
|
||||
CONFIG_POWER_RESET_VERSATILE=y
|
||||
# CONFIG_ARM_CHARLCD is not set
|
||||
|
||||
# Power/Thermal/Cpufreq
|
||||
CONFIG_GENERIC_CPUFREQ_CPU0=m
|
||||
# CONFIG_ARM_DT_BL_CPUFREQ is not set
|
||||
# CONFIG_ARM_BIG_LITTLE_CPUFREQ is not set
|
||||
|
||||
|
@ -87,22 +86,27 @@ CONFIG_OF_FLATTREE=y
|
|||
CONFIG_OF_GPIO=y
|
||||
CONFIG_OF_IOMMU=y
|
||||
CONFIG_OF_IRQ=y
|
||||
CONFIG_OF_MDIO=m
|
||||
CONFIG_OF_MTD=y
|
||||
CONFIG_OF_NET=y
|
||||
CONFIG_OF_PCI_IRQ=m
|
||||
CONFIG_OF_PCI=m
|
||||
CONFIG_OF_RESERVED_MEM=y
|
||||
CONFIG_OF_RESOLVE=y
|
||||
CONFIG_PATA_OF_PLATFORM=m
|
||||
# CONFIG_OF_SELFTEST is not set
|
||||
CONFIG_SERIAL_OF_PLATFORM=y
|
||||
CONFIG_THERMAL_OF=y
|
||||
|
||||
# CONFIG_OF_MDIO is not set
|
||||
# CONFIG_MDIO_BUS_MUX_GPIO is not set
|
||||
# CONFIG_MDIO_BUS_MUX_MMIOREG is not set
|
||||
|
||||
# External Connectors
|
||||
CONFIG_EXTCON=m
|
||||
CONFIG_EXTCON_GPIO=m
|
||||
CONFIG_EXTCON_ADC_JACK=m
|
||||
# CONFIG_EXTCON_SM5502 is not set
|
||||
# CONFIG_EXTCON_RT8973A is not set
|
||||
|
||||
# MTD
|
||||
CONFIG_MTD_BLKDEVS=m
|
||||
|
@ -126,9 +130,9 @@ CONFIG_GPIO_WATCHDOG=m
|
|||
CONFIG_GPIOLIB=y
|
||||
CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y
|
||||
CONFIG_ARCH_REQUIRE_GPIOLIB=y
|
||||
CONFIG_MDIO_GPIO=m
|
||||
CONFIG_BACKLIGHT_GPIO=m
|
||||
CONFIG_POWER_RESET_GPIO=y
|
||||
CONFIG_POWER_RESET_GPIO_RESTART=y
|
||||
CONFIG_POWER_RESET_RESTART=y
|
||||
|
||||
#i2c
|
||||
|
@ -183,6 +187,8 @@ CONFIG_CMA_AREAS=7
|
|||
# CONFIG_IRQ_DOMAIN_DEBUG is not set
|
||||
# CONFIG_LOCK_STAT is not set
|
||||
|
||||
# CONFIG_CADENCE_WATCHDOG is not set
|
||||
|
||||
# CONFIG_DRM_ARMADA is not set
|
||||
# CONFIG_DRM_TEGRA is not set
|
||||
# CONFIG_SHMOBILE_IOMMU is not set
|
||||
|
|
32
config-arm64
32
config-arm64
|
@ -8,6 +8,7 @@ CONFIG_SCHED_SMT=y
|
|||
|
||||
# arm64 only SoCs
|
||||
CONFIG_ARCH_XGENE=y
|
||||
# CONFIG_ARCH_THUNDER is not set
|
||||
|
||||
# CONFIG_AMBA_PL08X is not set
|
||||
CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y
|
||||
|
@ -17,7 +18,6 @@ CONFIG_ARM64_64K_PAGES=y
|
|||
|
||||
CONFIG_BCMA_POSSIBLE=y
|
||||
CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0
|
||||
CONFIG_BQL=y
|
||||
CONFIG_BRCMUTIL=m
|
||||
CONFIG_BUG=y
|
||||
CONFIG_CLKDEV_LOOKUP=y
|
||||
|
@ -42,7 +42,6 @@ CONFIG_HZ=100
|
|||
|
||||
CONFIG_KVM=y
|
||||
CONFIG_KVM_ARM_MAX_VCPUS=8
|
||||
CONFIG_LOG_BUF_SHIFT=14
|
||||
|
||||
CONFIG_NFS_ACL_SUPPORT=y
|
||||
CONFIG_NFS_COMMON=y
|
||||
|
@ -53,7 +52,7 @@ CONFIG_NFS_USE_KERNEL_DNS=y
|
|||
# CONFIG_PL330_DMA is not set
|
||||
CONFIG_RCU_FANOUT=64
|
||||
# CONFIG_RTC_DRV_PL030 is not set
|
||||
# CONFIG_RTC_DRV_PL031 is not set
|
||||
CONFIG_RTC_DRV_PL031=y
|
||||
CONFIG_SERIAL_8250_DMA=y
|
||||
# CONFIG_SERIAL_AMBA_PL010 is not set
|
||||
CONFIG_SPARSE_IRQ=y
|
||||
|
@ -69,6 +68,7 @@ CONFIG_EFI_VARS=y
|
|||
CONFIG_EFIVAR_FS=y
|
||||
CONFIG_EFI_VARS_PSTORE=y
|
||||
CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE=y
|
||||
CONFIG_RTC_DRV_EFI=y
|
||||
|
||||
CONFIG_ARM64_CRYPTO=y
|
||||
CONFIG_CRYPTO_SHA1_ARM64_CE=m
|
||||
|
@ -82,6 +82,7 @@ CONFIG_CRYPTO_DEV_CCP=y
|
|||
CONFIG_CRYPTO_DEV_CCP_DD=m
|
||||
CONFIG_CRYPTO_DEV_CCP_CRYPTO=m
|
||||
|
||||
CONFIG_ARM64_CPUIDLE=y
|
||||
|
||||
# APM Xgene
|
||||
CONFIG_POWER_RESET_XGENE=y
|
||||
|
@ -91,13 +92,8 @@ CONFIG_AHCI_XGENE=y
|
|||
CONFIG_PHY_XGENE=y
|
||||
CONFIG_NET_XGENE=y
|
||||
CONFIG_RTC_DRV_XGENE=m
|
||||
CONFIG_RTC_DRV_EFI=y
|
||||
|
||||
# not arm64
|
||||
# CONFIG_GPIO_ADNP is not set
|
||||
# CONFIG_GPIO_MCP23S08 is not set
|
||||
# CONFIG_MDIO_BUS_MUX_GPIO is not set
|
||||
# CONFIG_MDIO_BUS_MUX_MMIOREG is not set
|
||||
CONFIG_HW_RANDOM_XGENE=m
|
||||
CONFIG_GPIO_XGENE=y
|
||||
|
||||
# busted build for various reasons
|
||||
# uses pci_* for some reason to allocate DMA buffers
|
||||
|
@ -120,7 +116,6 @@ CONFIG_NET_SB1000=y
|
|||
CONFIG_SBSAUART_TTY=y
|
||||
CONFIG_I2C_SCMI=m
|
||||
CONFIG_SENSORS_ACPI_POWER=m
|
||||
CONFIG_IMX_THERMAL=m
|
||||
CONFIG_PWM_LPSS=m
|
||||
CONFIG_ACPI=y
|
||||
CONFIG_ACPI_PROCFS_POWER=y
|
||||
|
@ -133,6 +128,17 @@ CONFIG_ACPI_CONTAINER=y
|
|||
CONFIG_ACPI_HED=m
|
||||
CONFIG_ACPI_CUSTOM_METHOD=m
|
||||
|
||||
CONFIG_AMD_XGBE=y
|
||||
CONFIG_AMD_XGBE_PHY=y
|
||||
CONFIG_AMD_XGBE=m
|
||||
CONFIG_AMD_XGBE_PHY=m
|
||||
# CONFIG_AMD_XGBE_DCB is not set
|
||||
|
||||
# CONFIG_IMX_THERMAL is not set
|
||||
|
||||
# still? 2014-11-11
|
||||
# CONFIG_BPF_JIT is not set
|
||||
|
||||
CONFIG_DMI=y
|
||||
CONFIG_DMIID=y
|
||||
CONFIG_DMI_SYSFS=y
|
||||
|
||||
CONFIG_SATA_AHCI_PLATFORM=y
|
||||
|
|
58
config-armv7
58
config-armv7
|
@ -65,6 +65,7 @@ CONFIG_SND_KIRKWOOD_SOC_ARMADA370_DB=m
|
|||
CONFIG_USB_EHCI_HCD_ORION=m
|
||||
CONFIG_MMC_SDHCI_PXAV3=m
|
||||
CONFIG_MVPP2=m
|
||||
CONFIG_COMMON_CLK_SI5351=m
|
||||
# CONFIG_CACHE_FEROCEON_L2 is not set
|
||||
# CONFIG_CACHE_FEROCEON_L2_WRITETHROUGH is not set
|
||||
|
||||
|
@ -164,6 +165,7 @@ CONFIG_RTC_DRV_PALMAS=m
|
|||
CONFIG_OMAP5_DSS_HDMI=y
|
||||
CONFIG_OMAP5_DSS_HDMI_AUDIO=y
|
||||
CONFIG_COMMON_CLK_PALMAS=m
|
||||
CONFIG_INPUT_PALMAS_PWRBUTTON=m
|
||||
|
||||
CONFIG_WL_TI=y
|
||||
CONFIG_WLCORE_SDIO=m
|
||||
|
@ -184,10 +186,9 @@ CONFIG_INPUT_TWL4030_VIBRA=m
|
|||
CONFIG_INPUT_TWL6040_VIBRA=m
|
||||
CONFIG_KEYBOARD_OMAP4=m
|
||||
CONFIG_KEYBOARD_TWL4030=m
|
||||
CONFIG_LEDS_TCA6507=m
|
||||
|
||||
# OMAP thermal temp. Can likely be built as module but doesn't autoload so build in to ensure performance on PandaES
|
||||
CONFIG_TI_SOC_THERMAL=y
|
||||
CONFIG_TI_THERMAL=y
|
||||
# OMAP thermal temp.
|
||||
CONFIG_OMAP4_THERMAL=y
|
||||
CONFIG_OMAP5_THERMAL=y
|
||||
|
||||
|
@ -249,9 +250,6 @@ CONFIG_VIDEO_OMAP3=m
|
|||
# The ones below are for TI Davinci
|
||||
# CONFIG_VIDEO_DM6446_CCDC is not set
|
||||
# CONFIG_VIDEO_DM355_CCDC is not set
|
||||
# Also enable vivi driver - useful for testing a full kernelspace V4L2 driver
|
||||
CONFIG_V4L_TEST_DRIVERS=y
|
||||
CONFIG_VIDEO_VIVI=m
|
||||
|
||||
CONFIG_SND_OMAP_SOC=m
|
||||
CONFIG_SND_SOC_I2C_AND_SPI=m
|
||||
|
@ -267,6 +265,7 @@ CONFIG_SND_OMAP_SOC_OMAP3_PANDORA=m
|
|||
CONFIG_SND_OMAP_SOC_RX51=m
|
||||
CONFIG_SND_SOC_TLV320AIC23=m
|
||||
CONFIG_SND_SOC_TLV320AIC3X=m
|
||||
CONFIG_SND_SOC_TPA6130A2=m
|
||||
CONFIG_SND_SOC_TWL4030=m
|
||||
CONFIG_SND_SOC_TWL6040=m
|
||||
CONFIG_SND_SOC_PCM1792A=m
|
||||
|
@ -321,10 +320,16 @@ CONFIG_ARCH_MSM8960=y
|
|||
CONFIG_ARCH_MSM8974=y
|
||||
CONFIG_SERIAL_MSM=y
|
||||
CONFIG_SERIAL_MSM_CONSOLE=y
|
||||
CONFIG_SERIAL_MSM_HS=m
|
||||
CONFIG_PINCTRL_APQ8064=m
|
||||
CONFIG_PINCTRL_APQ8084=m
|
||||
CONFIG_PINCTRL_IPQ8064=m
|
||||
CONFIG_PINCTRL_MSM8960=m
|
||||
CONFIG_PINCTRL_MSM8X74=m
|
||||
CONFIG_COMMON_CLK_QCOM=m
|
||||
CONFIG_MFD_QCOM_RPM=m
|
||||
CONFIG_MFD_PM8921_CORE=m
|
||||
CONFIG_REGULATOR_QCOM_RPM=m
|
||||
CONFIG_APQ_GCC_8084=m
|
||||
CONFIG_APQ_MMCC_8084=m
|
||||
CONFIG_IPQ_GCC_806X=m
|
||||
|
@ -340,16 +345,24 @@ CONFIG_GPIO_MSM_V2=m
|
|||
CONFIG_POWER_RESET_MSM=y
|
||||
CONFIG_USB_MSM_OTG=m
|
||||
CONFIG_MMC_SDHCI_MSM=m
|
||||
CONFIG_MMC_QCOM_DML=m
|
||||
CONFIG_QCOM_BAM_DMA=m
|
||||
CONFIG_QCOM_GSBI=m
|
||||
CONFIG_PHY_QCOM_APQ8064_SATA=m
|
||||
CONFIG_PHY_QCOM_IPQ806X_SATA=m
|
||||
CONFIG_USB_DWC3_QCOM=m
|
||||
CONFIG_CRYPTO_DEV_QCE=m
|
||||
CONFIG_MSM_IOMMU=y
|
||||
CONFIG_DRM_MSM=m
|
||||
CONFIG_DRM_MSM_FBDEV=y
|
||||
CONFIG_USB_EHCI_MSM=m
|
||||
CONFIG_MFD_PM8XXX=m
|
||||
CONFIG_KEYBOARD_PMIC8XXX=m
|
||||
CONFIG_INPUT_PM8XXX_VIBRATOR=m
|
||||
CONFIG_INPUT_PMIC8XXX_PWRKEY=m
|
||||
CONFIG_RTC_DRV_PM8XXX=m
|
||||
# CONFIG_DRM_MSM_REGISTER_LOGGING is not set
|
||||
CONFIG_QCOM_WDT=m
|
||||
|
||||
# i.MX
|
||||
# CONFIG_MXC_DEBUG_BOARD is not set
|
||||
|
@ -400,6 +413,7 @@ CONFIG_RTC_DRV_SNVS=m
|
|||
# CONFIG_FB_IMX is not set
|
||||
|
||||
CONFIG_SND_IMX_SOC=m
|
||||
CONFIG_SND_SOC_FSL_ASOC_CARD=m
|
||||
CONFIG_SND_SOC_FSL_ASRC=m
|
||||
CONFIG_SND_SOC_FSL_ESAI=m
|
||||
CONFIG_SND_SOC_FSL_SAI=m
|
||||
|
@ -408,14 +422,21 @@ CONFIG_SND_SOC_FSL_SSI=m
|
|||
CONFIG_SND_SOC_FSL_UTILS=m
|
||||
CONFIG_SND_SOC_IMX_SSI=m
|
||||
CONFIG_SND_SOC_IMX_AUDMUX=m
|
||||
CONFIG_SND_SOC_IMX_ES8328=m
|
||||
CONFIG_SND_SOC_IMX_PCM_FIQ=m
|
||||
CONFIG_SND_SOC_IMX_PCM_DMA=m
|
||||
CONFIG_SND_SOC_IMX_SGTL5000=m
|
||||
CONFIG_SND_SOC_IMX_WM8962=m
|
||||
CONFIG_SND_SOC_IMX_MC13783=m
|
||||
CONFIG_SND_SOC_IMX_SPDIF=m
|
||||
CONFIG_SND_SOC_CS42XX8_I2C=m
|
||||
CONFIG_SND_SOC_ES8328=m
|
||||
CONFIG_SND_SOC_ES8328_I2C=m
|
||||
CONFIG_SND_SOC_ES8328_SPI=m
|
||||
CONFIG_SND_SOC_EUKREA_TLV320=m
|
||||
CONFIG_SND_SOC_SGTL5000=m
|
||||
CONFIG_SND_SOC_WM8731=m
|
||||
CONFIG_SND_SOC_WM8962=m
|
||||
|
||||
CONFIG_USB_IMX21_HCD=m
|
||||
CONFIG_USB_MXS_PHY=m
|
||||
|
@ -480,12 +501,26 @@ CONFIG_REGULATOR_DA9055=m
|
|||
CONFIG_ARCH_EXYNOS4=y
|
||||
CONFIG_SOC_EXYNOS4212=y
|
||||
CONFIG_SOC_EXYNOS4412=y
|
||||
CONFIG_ARM_EXYNOS4210_CPUFREQ=y
|
||||
CONFIG_ARM_EXYNOS4X12_CPUFREQ=y
|
||||
CONFIG_AK8975=m
|
||||
CONFIG_CM36651=m
|
||||
CONFIG_KEYBOARD_SAMSUNG=m
|
||||
|
||||
# Rockchips
|
||||
CONFIG_I2C_RK3X=m
|
||||
CONFIG_SPI_ROCKCHIP=m
|
||||
CONFIG_SND_SOC_ROCKCHIP=m
|
||||
CONFIG_PWM_ROCKCHIP=m
|
||||
CONFIG_ROCKCHIP_SARADC=m
|
||||
CONFIG_ROCKCHIP_IODOMAIN=m
|
||||
CONFIG_MMC_DW_ROCKCHIP=m
|
||||
CONFIG_EMAC_ROCKCHIP=m
|
||||
CONFIG_MFD_RK808=m
|
||||
CONFIG_COMMON_CLK_RK808=m
|
||||
CONFIG_REGULATOR_RK808=m
|
||||
CONFIG_RTC_DRV_HYM8563=m
|
||||
CONFIG_ROCKCHIP_SARADC=m
|
||||
|
||||
# ST Ericsson
|
||||
CONFIG_MACH_HREFV60=y
|
||||
|
@ -508,6 +543,8 @@ CONFIG_AHCI_ST=m
|
|||
CONFIG_INPUT_AB8500_PONKEY=m
|
||||
CONFIG_REGULATOR_AB8500=y
|
||||
CONFIG_AB8500_USB=m
|
||||
CONFIG_USB_MUSB_UX500=m
|
||||
CONFIG_USB_UX500_DMA=y
|
||||
CONFIG_RTC_DRV_AB8500=m
|
||||
CONFIG_PWM_AB8500=m
|
||||
CONFIG_SND_SOC_UX500=m
|
||||
|
@ -572,19 +609,18 @@ CONFIG_RTC_DRV_TPS6586X=m
|
|||
CONFIG_SERIO_OLPC_APSP=m
|
||||
|
||||
# Zynq-7xxx
|
||||
# likely needs usb still
|
||||
CONFIG_SERIAL_UARTLITE=y
|
||||
CONFIG_SERIAL_UARTLITE_CONSOLE=y
|
||||
CONFIG_SERIAL_XILINX_PS_UART=y
|
||||
CONFIG_SERIAL_XILINX_PS_UART_CONSOLE=y
|
||||
CONFIG_COMMON_CLK_AXI_CLKGEN=m
|
||||
CONFIG_COMMON_CLK_SI570=m
|
||||
CONFIG_ARM_ZYNQ_CPUIDLE=y
|
||||
CONFIG_LATTICE_ECP3_CONFIG=m
|
||||
CONFIG_NET_VENDOR_XILINX=y
|
||||
CONFIG_XILINX_EMACLITE=m
|
||||
CONFIG_GPIO_XILINX=y
|
||||
# Broken
|
||||
# CONFIG_GPIO_ZYNQ is not set
|
||||
CONFIG_GPIO_ZYNQ=m
|
||||
CONFIG_I2C_XILINX=m
|
||||
CONFIG_SPI_XILINX=m
|
||||
CONFIG_SPI_CADENCE=m
|
||||
|
@ -600,6 +636,10 @@ CONFIG_XILLYBUS=m
|
|||
CONFIG_XILLYBUS_PCIE=m
|
||||
CONFIG_XILLYBUS_OF=m
|
||||
CONFIG_GS_FPGABOOT=m
|
||||
CONFIG_USB_GADGET_XILINX=m
|
||||
CONFIG_PCIE_XILINX=y
|
||||
CONFIG_CADENCE_WATCHDOG=m
|
||||
CONFIG_REGULATOR_ISL9305=m
|
||||
|
||||
# Multi function devices
|
||||
CONFIG_MFD_88PM800=m
|
||||
|
|
|
@ -61,6 +61,7 @@ CONFIG_ARCH_VEXPRESS_CORTEX_A5_A9_ERRATA=y
|
|||
# CONFIG_ARCH_HI3xxx is not set
|
||||
# CONFIG_ARCH_HISI is not set
|
||||
# CONFIG_ARCH_MEDIATEK is not set
|
||||
# CONFIG_ARCH_MESON is not set
|
||||
# CONFIG_ARCH_QCOM is not set
|
||||
# CONFIG_ARCH_S5PV210 is not set
|
||||
# CONFIG_ARCH_SHMOBILE_MULTI is not set
|
||||
|
@ -112,11 +113,17 @@ CONFIG_SCHED_SMT=y
|
|||
|
||||
CONFIG_RCU_FANOUT=32
|
||||
|
||||
# Power management / thermal / cpu scaling
|
||||
CONFIG_CPU_IDLE=y
|
||||
# CONFIG_CPU_IDLE_GOV_LADDER is not set
|
||||
CONFIG_CPU_IDLE_GOV_MENU=y
|
||||
# CONFIG_CPU_IDLE_MULTIPLE_DRIVERS is not set
|
||||
|
||||
CONFIG_PM_OPP=y
|
||||
CONFIG_ARM_CPU_SUSPEND=y
|
||||
CONFIG_ARM_PSCI=y
|
||||
CONFIG_THERMAL=y
|
||||
CONFIG_CPUFREQ_DT=y
|
||||
# CONFIG_ARM_BIG_LITTLE_CPUFREQ is not set
|
||||
|
||||
CONFIG_DEFAULT_MMAP_MIN_ADDR=32768
|
||||
|
@ -144,7 +151,6 @@ CONFIG_ARM_TIMER_SP804=y
|
|||
CONFIG_SERIO_AMBAKMI=m
|
||||
CONFIG_SERIAL_AMBA_PL010=y
|
||||
CONFIG_SERIAL_AMBA_PL010_CONSOLE=y
|
||||
CONFIG_SERIAL_8250_DW=y
|
||||
CONFIG_SERIAL_MRST_MAX3110=m
|
||||
|
||||
CONFIG_RTC_DRV_PL030=y
|
||||
|
@ -189,6 +195,7 @@ CONFIG_REGULATOR_AXP20X=m
|
|||
CONFIG_IR_SUNXI=m
|
||||
CONFIG_MDIO_SUN4I=m
|
||||
CONFIG_SUN4I_EMAC=m
|
||||
CONFIG_RTC_DRV_SUN6I=m
|
||||
|
||||
# Exynos
|
||||
CONFIG_ARCH_EXYNOS3=y
|
||||
|
@ -203,8 +210,6 @@ CONFIG_SOC_EXYNOS5410=y
|
|||
CONFIG_SOC_EXYNOS5800=y
|
||||
CONFIG_SERIAL_SAMSUNG=y
|
||||
CONFIG_SERIAL_SAMSUNG_CONSOLE=y
|
||||
CONFIG_ARM_EXYNOS4210_CPUFREQ=y
|
||||
CONFIG_ARM_EXYNOS4X12_CPUFREQ=y
|
||||
CONFIG_ARM_EXYNOS5250_CPUFREQ=y
|
||||
CONFIG_ARM_EXYNOS5440_CPUFREQ=y
|
||||
CONFIG_ARM_EXYNOS_CPU_FREQ_BOOST_SW=y
|
||||
|
@ -216,6 +221,7 @@ CONFIG_I2C_S3C2410=m
|
|||
CONFIG_SPI_S3C64XX=m
|
||||
CONFIG_EXYNOS_THERMAL=m
|
||||
CONFIG_EXYNOS_THERMAL_CORE=y
|
||||
CONFIG_EXYNOS_ADC=m
|
||||
CONFIG_MMC_SDHCI_S3C=m
|
||||
CONFIG_MMC_SDHCI_S3C_DMA=y
|
||||
CONFIG_MMC_DW_EXYNOS=m
|
||||
|
@ -235,6 +241,9 @@ CONFIG_REGULATOR_S2MPS11=m
|
|||
CONFIG_REGULATOR_S5M8767=m
|
||||
CONFIG_TCG_TIS_I2C_INFINEON=m
|
||||
CONFIG_RTC_DRV_S5M=m
|
||||
CONFIG_MFD_WM8994=m
|
||||
CONFIG_GPIO_WM8994=m
|
||||
CONFIG_REGULATOR_WM8994=m
|
||||
# CONFIG_RTC_DRV_S3C is not set
|
||||
|
||||
CONFIG_EXYNOS_VIDEO=y
|
||||
|
@ -255,7 +264,14 @@ CONFIG_DRM_EXYNOS_ROTATOR=y
|
|||
CONFIG_DRM_EXYNOS_VIDI=y
|
||||
CONFIG_PHY_EXYNOS_DP_VIDEO=m
|
||||
# CONFIG_FB_S3C is not set
|
||||
# CONFIG_VIDEO_SAMSUNG_EXYNOS4_IS is not set
|
||||
CONFIG_PHY_EXYNOS_MIPI_VIDEO=m
|
||||
CONFIG_PHY_EXYNOS_DP_VIDEO=m
|
||||
CONFIG_VIDEO_SAMSUNG_EXYNOS4_IS=y
|
||||
CONFIG_VIDEO_EXYNOS_FIMC_LITE=m
|
||||
CONFIG_VIDEO_EXYNOS4_FIMC_IS=m
|
||||
CONFIG_VIDEO_EXYNOS4_ISP_DMA_CAPTURE=y
|
||||
CONFIG_VIDEO_S5P_FIMC=m
|
||||
CONFIG_VIDEO_S5P_MIPI_CSIS=m
|
||||
CONFIG_VIDEO_SAMSUNG_S5P_G2D=m
|
||||
CONFIG_VIDEO_SAMSUNG_S5P_JPEG=m
|
||||
CONFIG_VIDEO_SAMSUNG_S5P_MFC=m
|
||||
|
@ -268,11 +284,10 @@ CONFIG_SND_SOC_SAMSUNG_SMDK_WM8994=m
|
|||
CONFIG_SND_SOC_SMDK_WM8994_PCM=m
|
||||
CONFIG_SND_SOC_SNOW=m
|
||||
CONFIG_SND_SOC_ODROIDX2=m
|
||||
# CONFIG_GPIO_WM8994 is not set
|
||||
# CONFIG_REGULATOR_WM8994 is not set
|
||||
# CONFIG_EXYNOS_IOMMU_DEBUG is not set
|
||||
# CONFIG_SAMSUNG_PM_DEBUG is not set
|
||||
# CONFIG_SAMSUNG_PM_CHECK is not set
|
||||
# CONFIG_ARM_EXYNOS5_BUS_DEVFREQ is not set
|
||||
|
||||
# Arndale/Origen
|
||||
CONFIG_MFD_MAX8997=y
|
||||
|
@ -282,12 +297,15 @@ CONFIG_REGULATOR_MAX77686=m
|
|||
CONFIG_REGULATOR_S2MPA01=m
|
||||
CONFIG_REGULATOR_S5M8767=m
|
||||
CONFIG_COMMON_CLK_MAX77686=m
|
||||
CONFIG_COMMON_CLK_MAX77802=m
|
||||
CONFIG_COMMON_CLK_S2MPS11=m
|
||||
CONFIG_INPUT_MAX8997_HAPTIC=m
|
||||
CONFIG_CHARGER_MAX8997=m
|
||||
CONFIG_LEDS_MAX8997=m
|
||||
CONFIG_RTC_DRV_MAX8997=m
|
||||
CONFIG_RTC_DRV_MAX77686=m
|
||||
CONFIG_RTC_DRV_MAX77802=m
|
||||
CONFIG_RTC_DRV_RK808=m
|
||||
CONFIG_EXTCON_MAX8997=m
|
||||
|
||||
# Tegra
|
||||
|
@ -334,6 +352,10 @@ CONFIG_MFD_AS3722=y
|
|||
CONFIG_REGULATOR_AS3722=m
|
||||
CONFIG_RTC_DRV_AS3722=y
|
||||
|
||||
# TI Generic
|
||||
CONFIG_TI_SOC_THERMAL=m
|
||||
CONFIG_TI_THERMAL=y
|
||||
|
||||
# DRM panels
|
||||
CONFIG_DRM_PANEL=y
|
||||
CONFIG_DRM_PANEL_SIMPLE=m
|
||||
|
@ -351,12 +373,10 @@ CONFIG_REGMAP_IRQ=y
|
|||
# Power management
|
||||
CONFIG_PM_OPP=y
|
||||
CONFIG_ARM_CPU_SUSPEND=y
|
||||
CONFIG_GENERIC_CPUFREQ_CPU0=m
|
||||
|
||||
# usb
|
||||
CONFIG_USB_OHCI_HCD_PLATFORM=m
|
||||
CONFIG_USB_EHCI_HCD_PLATFORM=m
|
||||
# CONFIG_USB_OTG_WHITELIST is not set
|
||||
# CONFIG_USB_OTG_BLACKLIST_HUB is not set
|
||||
CONFIG_USB_ULPI=y
|
||||
CONFIG_AX88796=m
|
||||
|
@ -367,6 +387,7 @@ CONFIG_USB_OTG=y
|
|||
CONFIG_USB_GADGET=m
|
||||
CONFIG_USB_GADGET_VBUS_DRAW=100
|
||||
CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
|
||||
# CONFIG_USB_GADGET_XILINX is not set
|
||||
CONFIG_USB_MUSB_HDRC=m
|
||||
CONFIG_USB_MUSB_DUAL_ROLE=y
|
||||
CONFIG_USB_MUSB_DSPS=m
|
||||
|
@ -436,20 +457,20 @@ CONFIG_GENERIC_PINCONF=y
|
|||
# CONFIG_PINCTRL_MSM8X74 is not set
|
||||
# CONFIG_PINCTRL_BCM281XX is not set
|
||||
# CONFIG_PINCTRL_APQ8064 is not set
|
||||
# CONFIG_PINCTRL_APQ8084 is not set
|
||||
# CONFIG_PINCTRL_IPQ8064 is not set
|
||||
# CONFIG_PINCTRL_MSM8960 is not set
|
||||
|
||||
# GPIO
|
||||
# CONFIG_GPIO_EM is not set
|
||||
CONFIG_GPIO_74X164=m
|
||||
CONFIG_GPIO_ADNP=m
|
||||
CONFIG_GPIO_MCP23S08=m
|
||||
CONFIG_GPIO_MAX7301=m
|
||||
CONFIG_GPIO_MC33880=m
|
||||
CONFIG_GPIO_TPS65910=y
|
||||
CONFIG_GPIO_TPS65912=m
|
||||
# CONFIG_GPIO_ZEVIO is not set
|
||||
CONFIG_LEDS_GPIO=m
|
||||
CONFIG_LEDS_GPIO_REGISTER=y
|
||||
CONFIG_MDIO_BUS_MUX=m
|
||||
CONFIG_MDIO_BUS_MUX_GPIO=m
|
||||
CONFIG_MDIO_BUS_MUX_MMIOREG=m
|
||||
|
@ -458,6 +479,7 @@ CONFIG_INPUT_GPIO_BEEPER=m
|
|||
CONFIG_INPUT_GPIO_TILT_POLLED=m
|
||||
CONFIG_INPUT_MATRIXKMAP=m
|
||||
CONFIG_KEYBOARD_GPIO=m
|
||||
CONFIG_KEYBOARD_GPIO_POLLED=m
|
||||
CONFIG_KEYBOARD_MATRIX=m
|
||||
# CONFIG_GPIO_RCAR is not set
|
||||
CONFIG_W1_MASTER_GPIO=m
|
||||
|
@ -504,10 +526,6 @@ CONFIG_EDAC_LEGACY_SYSFS=y
|
|||
|
||||
# Watchdog
|
||||
|
||||
# Thermal / powersaving
|
||||
CONFIG_THERMAL=y
|
||||
CONFIG_ARM_PSCI=y
|
||||
|
||||
# Mailbox
|
||||
CONFIG_MAILBOX=y
|
||||
|
||||
|
@ -532,6 +550,7 @@ CONFIG_MTD_NAND_PXA3xx=m
|
|||
CONFIG_MTD_NAND_RICOH=m
|
||||
CONFIG_MTD_NAND_TMIO=m
|
||||
CONFIG_MTD_SPI_NOR=m
|
||||
# CONFIG_MTD_SPI_NOR_USE_4K_SECTORS is not set
|
||||
CONFIG_MTD_SPINAND_MT29F=m
|
||||
CONFIG_MTD_SPINAND_ONDIEECC=y
|
||||
CONFIG_MTD_SST25L=m
|
||||
|
@ -550,6 +569,8 @@ CONFIG_SPI_DW_MMIO=m
|
|||
CONFIG_SPI_DW_PCI=m
|
||||
# CONFIG_MMC_DW_IDMAC is not set
|
||||
# CONFIG_MMC_DW_K3 is not set
|
||||
# CONFIG_MMC_QCOM_DML is not set
|
||||
# CONFIG_MMC_DW_ROCKCHIP is not set
|
||||
CONFIG_USB_DWC2=y
|
||||
CONFIG_USB_DWC2_HOST=m
|
||||
CONFIG_USB_DWC2_PLATFORM=y
|
||||
|
@ -562,6 +583,7 @@ CONFIG_USB_DWC3_OMAP=m
|
|||
CONFIG_USB_DWC3_PCI=m
|
||||
# CONFIG_USB_DWC3_DEBUG is not set
|
||||
# CONFIG_USB_DWC3_KEYSTONE is not set
|
||||
# CONFIG_USB_DWC3_QCOM is not set
|
||||
# CONFIG_DWC3_HOST_USB3_LPM_ENABLE is not set
|
||||
CONFIG_DW_WATCHDOG=m
|
||||
CONFIG_PCIE_DW=y
|
||||
|
@ -624,10 +646,18 @@ CONFIG_SND_SOC_SPDIF=m
|
|||
# CONFIG_SND_SOC_ALC5623 is not set
|
||||
# CONFIG_SND_SOC_CS42L56 is not set
|
||||
# CONFIG_SND_SOC_STA350 is not set
|
||||
# CONFIG_SND_SOC_CS35L32 is not set
|
||||
# CONFIG_SND_SOC_ES8328 is not set
|
||||
# CONFIG_SND_SOC_SSM2602_SPI is not set
|
||||
# CONFIG_SND_SOC_SSM2602_I2C is not set
|
||||
# CONFIG_SND_SOC_SSM4567 is not set
|
||||
# CONFIG_SND_SOC_WM8978 is not set
|
||||
# CONFIG_SND_ATMEL_SOC is not set
|
||||
# CONFIG_SND_SOC_TLV320AIC31XX is not set
|
||||
# CONFIG_SND_SOC_TAS2552 is not set
|
||||
# CONFIG_SND_SOC_CS4265 is not set
|
||||
# CONFIG_SND_SOC_IMX_ES8328 is not set
|
||||
# CONFIG_SND_SOC_FSL_ASOC_CARD is not set
|
||||
# CONFIG_SND_EDMA_SOC is not set
|
||||
# CONFIG_SND_SOC_ROCKCHIP is not set
|
||||
|
||||
|
@ -688,7 +718,11 @@ CONFIG_REGULATOR_TPS80031=m
|
|||
CONFIG_REGULATOR_LTC3589=m
|
||||
CONFIG_REGULATOR_ANATOP=m
|
||||
CONFIG_REGULATOR_DA9211=m
|
||||
CONFIG_REGULATOR_ISL9305=m
|
||||
CONFIG_REGULATOR_MAX77802=m
|
||||
CONFIG_REGULATOR_PWM=m
|
||||
|
||||
CONFIG_POWER_AVS=y
|
||||
CONFIG_CHARGER_MANAGER=y
|
||||
CONFIG_CHARGER_BQ2415X=m
|
||||
CONFIG_CHARGER_BQ24190=m
|
||||
|
@ -697,6 +731,7 @@ CONFIG_CHARGER_GPIO=m
|
|||
CONFIG_CHARGER_TPS65090=m
|
||||
CONFIG_PDA_POWER=m
|
||||
CONFIG_GENERIC_ADC_BATTERY=m
|
||||
CONFIG_BATTERY_SBS=m
|
||||
|
||||
# Sensors
|
||||
CONFIG_TMP006=m
|
||||
|
@ -708,6 +743,8 @@ CONFIG_SENSORS_ADCXX=m
|
|||
CONFIG_SENSORS_ADS7871=m
|
||||
CONFIG_SENSORS_GPIO_FAN=m
|
||||
CONFIG_SENSORS_HTU21=m
|
||||
CONFIG_SENSORS_ISL29018=m
|
||||
CONFIG_SENSORS_ISL29028=m
|
||||
CONFIG_SENSORS_LIS3_SPI=m
|
||||
CONFIG_SENSORS_LM70=m
|
||||
CONFIG_SENSORS_MAX1111=m
|
||||
|
@ -736,8 +773,10 @@ CONFIG_TOUCHSCREEN_AD7877=m
|
|||
CONFIG_TOUCHSCREEN_MC13783=m
|
||||
CONFIG_TOUCHSCREEN_TSC2005=m
|
||||
|
||||
CONFIG_LEDS_TRIGGER_CPU=y
|
||||
CONFIG_LEDS_DAC124S085=m
|
||||
CONFIG_LEDS_PWM=m
|
||||
CONFIG_LEDS_SYSCON=y
|
||||
CONFIG_BMP085_SPI=m
|
||||
|
||||
CONFIG_SRAM=y
|
||||
|
@ -785,9 +824,6 @@ CONFIG_MFD_CROS_EC_SPI=m
|
|||
CONFIG_KEYBOARD_CROS_EC=m
|
||||
CONFIG_I2C_CROS_EC_TUNNEL=m
|
||||
|
||||
# Should be in generic
|
||||
CONFIG_BPF_JIT=y
|
||||
|
||||
# Needs work/investigation
|
||||
# CONFIG_ARM_KPROBES_TEST is not set
|
||||
|
||||
|
|
|
@ -62,7 +62,8 @@ CONFIG_POWER_RESET_KEYSTONE=y
|
|||
CONFIG_DAVINCI_WATCHDOG=m
|
||||
CONFIG_SPI_DAVINCI=m
|
||||
CONFIG_TI_DAVINCI_MDIO=m
|
||||
# CONFIG_TI_SOC_THERMAL is not set
|
||||
CONFIG_KEYSTONE_IRQ=m
|
||||
CONFIG_PCI_KEYSTONE=y
|
||||
|
||||
# Tegra (non A15 device options)
|
||||
# CONFIG_ARCH_TEGRA_2x_SOC is not set
|
||||
|
|
113
config-generic
113
config-generic
|
@ -391,6 +391,7 @@ CONFIG_VHOST_SCSI=m
|
|||
# SCSI device support
|
||||
#
|
||||
CONFIG_SCSI=y
|
||||
# CONFIG_SCSI_MQ_DEFAULT is not set
|
||||
|
||||
CONFIG_SCSI_ENCLOSURE=m
|
||||
CONFIG_SCSI_PROC_FS=y
|
||||
|
@ -705,11 +706,11 @@ CONFIG_FIREWIRE_NOSY=m
|
|||
#
|
||||
CONFIG_NET=y
|
||||
|
||||
CONFIG_NET_DMA=y
|
||||
|
||||
CONFIG_NETLINK_MMAP=y
|
||||
CONFIG_NETLINK_DIAG=m
|
||||
|
||||
CONFIG_BPF_JIT=y
|
||||
|
||||
CONFIG_TCP_CONG_ADVANCED=y
|
||||
CONFIG_TCP_CONG_BIC=m
|
||||
CONFIG_TCP_CONG_CUBIC=y
|
||||
|
@ -717,6 +718,7 @@ CONFIG_TCP_CONG_HTCP=m
|
|||
CONFIG_TCP_CONG_HSTCP=m
|
||||
CONFIG_TCP_CONG_HYBLA=m
|
||||
CONFIG_TCP_CONG_ILLINOIS=m
|
||||
CONFIG_TCP_CONG_DCTCP=m
|
||||
CONFIG_TCP_CONG_LP=m
|
||||
CONFIG_TCP_CONG_SCALABLE=m
|
||||
CONFIG_TCP_CONG_VEGAS=m
|
||||
|
@ -758,6 +760,8 @@ CONFIG_IP_PIMSM_V1=y
|
|||
CONFIG_IP_PIMSM_V2=y
|
||||
CONFIG_SYN_COOKIES=y
|
||||
CONFIG_NET_IPVTI=m
|
||||
CONFIG_NET_FOU=m
|
||||
CONFIG_GENEVE=m
|
||||
CONFIG_INET_AH=m
|
||||
CONFIG_INET_ESP=m
|
||||
CONFIG_INET_IPCOMP=m
|
||||
|
@ -776,6 +780,7 @@ CONFIG_IP_VS_PROTO_UDP=y
|
|||
CONFIG_IP_VS_PROTO_ESP=y
|
||||
CONFIG_IP_VS_PROTO_AH=y
|
||||
CONFIG_IP_VS_PROTO_SCTP=y
|
||||
CONFIG_IP_VS_FO=m
|
||||
CONFIG_IP_VS_IPV6=y
|
||||
CONFIG_IP_VS_RR=m
|
||||
CONFIG_IP_VS_WRR=m
|
||||
|
@ -1017,12 +1022,16 @@ CONFIG_NFT_HASH=m
|
|||
CONFIG_NFT_COUNTER=m
|
||||
CONFIG_NFT_LOG=m
|
||||
CONFIG_NFT_LIMIT=m
|
||||
CONFIG_NFT_MASQ=m
|
||||
CONFIG_NFT_MASQ_IPV4=m
|
||||
CONFIG_NFT_MASQ_IPV6=m
|
||||
CONFIG_NFT_NAT=m
|
||||
CONFIG_NFT_QUEUE=m
|
||||
CONFIG_NFT_REJECT=m
|
||||
CONFIG_NFT_COMPAT=m
|
||||
|
||||
CONFIG_NF_TABLES_IPV4=m
|
||||
CONFIG_NF_REJECT_IPV6=m
|
||||
CONFIG_NFT_REJECT_IPV4=m
|
||||
CONFIG_NFT_CHAIN_ROUTE_IPV4=m
|
||||
CONFIG_NFT_CHAIN_NAT_IPV4=m
|
||||
|
@ -1082,6 +1091,7 @@ CONFIG_IP_SET_HASH_IPMARK=m
|
|||
CONFIG_IP_SET_HASH_IPPORT=m
|
||||
CONFIG_IP_SET_HASH_IPPORTIP=m
|
||||
CONFIG_IP_SET_HASH_IPPORTNET=m
|
||||
CONFIG_IP_SET_HASH_MAC=m
|
||||
CONFIG_IP_SET_HASH_NETPORTNET=m
|
||||
CONFIG_IP_SET_HASH_NET=m
|
||||
CONFIG_IP_SET_HASH_NETNET=m
|
||||
|
@ -1207,6 +1217,7 @@ CONFIG_BATMAN_ADV_MCAST=y
|
|||
CONFIG_OPENVSWITCH=m
|
||||
CONFIG_OPENVSWITCH_GRE=y
|
||||
CONFIG_OPENVSWITCH_VXLAN=y
|
||||
CONFIG_OPENVSWITCH_GENEVE=y
|
||||
CONFIG_VSOCKETS=m
|
||||
|
||||
|
||||
|
@ -1306,6 +1317,8 @@ CONFIG_ETHERNET=y
|
|||
CONFIG_NET_VENDOR_ADAPTEC=y
|
||||
CONFIG_ADAPTEC_STARFIRE=m
|
||||
|
||||
# CONFIG_NET_VENDOR_AGERE is not set
|
||||
|
||||
CONFIG_NET_VENDOR_ALTEON=y
|
||||
CONFIG_ACENIC=m
|
||||
# CONFIG_ACENIC_OMIT_TIGON_I is not set
|
||||
|
@ -1321,6 +1334,7 @@ CONFIG_PCMCIA_NMCLAN=m
|
|||
|
||||
CONFIG_NET_VENDOR_ARC=y
|
||||
CONFIG_ARC_EMAC=m
|
||||
# CONFIG_EMAC_ROCKCHIP is not set
|
||||
|
||||
CONFIG_NET_VENDOR_ATHEROS=y
|
||||
CONFIG_ALX=m
|
||||
|
@ -1401,8 +1415,10 @@ CONFIG_IXGBE_HWMON=y
|
|||
CONFIG_I40E=m
|
||||
# CONFIG_I40E_VXLAN is not set
|
||||
# CONFIG_I40E_DCB is not set
|
||||
# CONFIG_I40E_FCOE is not set
|
||||
CONFIG_I40EVF=m
|
||||
|
||||
CONFIG_FM10K=m
|
||||
# CONFIG_FM10K_VXLAN is not set
|
||||
|
||||
# CONFIG_NET_VENDOR_I825XX is not set
|
||||
CONFIG_NET_VENDOR_MARVELL=y
|
||||
|
@ -1454,6 +1470,8 @@ CONFIG_QLCNIC_HWMON=y
|
|||
CONFIG_QLGE=m
|
||||
CONFIG_NETXEN_NIC=m
|
||||
|
||||
# CONFIG_NET_VENDOR_QUALCOMM is not set
|
||||
|
||||
CONFIG_NET_VENDOR_REALTEK=y
|
||||
CONFIG_ATP=m
|
||||
CONFIG_8139CP=m
|
||||
|
@ -1526,6 +1544,7 @@ CONFIG_DAVICOM_PHY=m
|
|||
CONFIG_DP83640_PHY=m
|
||||
CONFIG_FIXED_PHY=y
|
||||
CONFIG_MDIO_BITBANG=m
|
||||
CONFIG_MDIO_BCM_UNIMAC=m
|
||||
CONFIG_NATIONAL_PHY=m
|
||||
CONFIG_ICPLUS_PHY=m
|
||||
CONFIG_BCM63XX_PHY=m
|
||||
|
@ -1652,11 +1671,14 @@ CONFIG_ATH9K_BTCOEX_SUPPORT=y
|
|||
# CONFIG_ATH9K_HTC_DEBUGFS is not set
|
||||
# CONFIG_ATH9K_STATION_STATISTICS is not set
|
||||
# CONFIG_ATH9K_WOW is not set
|
||||
# CONFIG_ATH9K_DYNACK is not set
|
||||
# CONFIG_ATH9K_CHANNEL_CONTEXT is not set
|
||||
#
|
||||
CONFIG_ATH10K=m
|
||||
CONFIG_ATH10K_PCI=m
|
||||
# CONFIG_ATH10K_DEBUG is not set
|
||||
# CONFIG_ATH10K_TRACING is not set
|
||||
# CONFIG_ATH_TRACEPOINTS is not set
|
||||
CONFIG_ATH10K_DEBUGFS=y
|
||||
CONFIG_WCN36XX=m
|
||||
# CONFIG_WCN36XX_DEBUGFS is not set
|
||||
|
@ -1723,12 +1745,15 @@ CONFIG_LIBERTAS_SDIO=m
|
|||
# CONFIG_LIBERTAS_THINFIRM is not set
|
||||
# CONFIG_LIBERTAS_SPI is not set
|
||||
CONFIG_LIBERTAS_MESH=y
|
||||
|
||||
CONFIG_IWLWIFI=m
|
||||
CONFIG_IWLDVM=m
|
||||
CONFIG_IWLMVM=m
|
||||
# CONFIG_IWLWIFI_BCAST_FILTERING is not set
|
||||
# CONFIG_IWLWIFI_UAPSD is not set
|
||||
CONFIG_IWLWIFI_DEBUG=y
|
||||
CONFIG_IWLWIFI_DEBUGFS=y
|
||||
|
||||
CONFIG_IWLEGACY=m
|
||||
CONFIG_IWLEGACY_DEBUG=y
|
||||
CONFIG_IWLEGACY_DEBUGFS=y
|
||||
|
@ -1736,6 +1761,7 @@ CONFIG_IWL4965=y
|
|||
CONFIG_IWL3945=m
|
||||
# CONFIG_IWM is not set
|
||||
# CONFIG_IWLWIFI_DEBUG_EXPERIMENTAL_UCODE is not set
|
||||
|
||||
CONFIG_MAC80211_HWSIM=m
|
||||
CONFIG_P54_COMMON=m
|
||||
CONFIG_P54_USB=m
|
||||
|
@ -1792,9 +1818,11 @@ CONFIG_RTL8192CE=m
|
|||
CONFIG_RTL8192SE=m
|
||||
CONFIG_RTL8192CU=m
|
||||
CONFIG_RTL8192DE=m
|
||||
CONFIG_RTL8192EE=m
|
||||
CONFIG_RTL8723AE=m
|
||||
CONFIG_RTL8723BE=m
|
||||
CONFIG_RTL8188EE=m
|
||||
CONFIG_RTL8821AE=m
|
||||
|
||||
CONFIG_MWIFIEX=m
|
||||
CONFIG_MWIFIEX_SDIO=m
|
||||
|
@ -2118,6 +2146,8 @@ CONFIG_INPUT_SPARSEKMAP=m
|
|||
CONFIG_INPUT_CMA3000=m
|
||||
CONFIG_INPUT_CMA3000_I2C=m
|
||||
CONFIG_INPUT_IDEAPAD_SLIDEBAR=m
|
||||
# CONFIG_INPUT_DRV260X_HAPTICS is not set
|
||||
# CONFIG_INPUT_DRV2667_HAPTICS is not set
|
||||
|
||||
#
|
||||
# Input I/O drivers
|
||||
|
@ -2259,6 +2289,7 @@ CONFIG_TOUCHSCREEN_ZFORCE=m
|
|||
# CONFIG_TOUCHSCREEN_ADS7846 is not set
|
||||
# CONFIG_TOUCHSCREEN_AD7877 is not set
|
||||
# CONFIG_TOUCHSCREEN_TSC2005 is not set
|
||||
# CONFIG_TOUCHSCREEN_AR1021_I2C is not set
|
||||
|
||||
CONFIG_INPUT_MISC=y
|
||||
CONFIG_INPUT_PCSPKR=m
|
||||
|
@ -2617,8 +2648,10 @@ CONFIG_HID_SENSOR_IIO_TRIGGER=m
|
|||
# CONFIG_AD5380 is not set
|
||||
# CONFIG_AD5064 is not set
|
||||
# CONFIG_BMA180 is not set
|
||||
# CONFIG_BMC150_ACCEL is not set
|
||||
# CONFIG_MAX1363 is not set
|
||||
# CONFIG_MAX517 is not set
|
||||
# CONFIG_MAX5821 is not set
|
||||
# CONFIG_MCP4725 is not set
|
||||
# CONFIG_ITG3200 is not set
|
||||
# CONFIG_APDS9300 is not set
|
||||
|
@ -2632,10 +2665,9 @@ CONFIG_HID_SENSOR_IIO_TRIGGER=m
|
|||
# CONFIG_TSL4531 is not set
|
||||
# CONFIG_NAU7802 is not set
|
||||
# CONFIG_TI_ADC081C is not set
|
||||
# CONFIG_EXYNOS_ADC is not set
|
||||
# CONFIG_TI_ADC128S052 is not set
|
||||
# CONFIG_VIPERBOARD_ADC is not set
|
||||
# CONFIG_VF610_ADC is not set
|
||||
# CONFIG_XILINX_XADC is not set
|
||||
# CONFIG_INV_MPU6050_IIO is not set
|
||||
CONFIG_IIO_ST_GYRO_3AXIS=m
|
||||
CONFIG_IIO_ST_MAGN_3AXIS=m
|
||||
|
@ -2643,6 +2675,7 @@ CONFIG_IIO_ST_ACCEL_3AXIS=m
|
|||
CONFIG_HID_SENSOR_INCLINOMETER_3D=m
|
||||
CONFIG_HID_SENSOR_DEVICE_ROTATION=m
|
||||
# CONFIG_ADJD_S311 is not set
|
||||
# CONFIG_AL3320A is not set
|
||||
# CONFIG_SENSORS_TSL2563 is not set
|
||||
# CONFIG_SENSORS_HMC5843_I2C is not set
|
||||
# CONFIG_VCNL4000 is not set
|
||||
|
@ -2681,6 +2714,7 @@ CONFIG_HID_SENSOR_DEVICE_ROTATION=m
|
|||
# CONFIG_ADIS16136 is not set
|
||||
# CONFIG_ADIS16260 is not set
|
||||
# CONFIG_ADXRS450 is not set
|
||||
# CONFIG_BMG160 is not set
|
||||
# CONFIG_ADIS16400 is not set
|
||||
# CONFIG_ADIS16480 is not set
|
||||
# CONFIG_DHT11 is not set
|
||||
|
@ -2688,7 +2722,7 @@ CONFIG_HID_SENSOR_DEVICE_ROTATION=m
|
|||
# CONFIG_MPL115 is not set
|
||||
# CONFIG_SI7005 is not set
|
||||
# CONFIG_AS3935 is not set
|
||||
# CONFIG_KXCJK1013 is not set
|
||||
CONFIG_KXCJK1013=m
|
||||
# CONFIG_ISL29125 is not set
|
||||
# CONFIG_TCS3414 is not set
|
||||
# CONFIG_AK09911 is not set
|
||||
|
@ -2724,13 +2758,8 @@ CONFIG_HID_SENSOR_DEVICE_ROTATION=m
|
|||
# CONFIG_AD7816 is not set
|
||||
# CONFIG_AD7192 is not set
|
||||
# CONFIG_AD7280 is not set
|
||||
# CONFIG_AD5930 is not set
|
||||
# CONFIG_AD9832 is not set
|
||||
# CONFIG_AD9834 is not set
|
||||
# CONFIG_AD9850 is not set
|
||||
# CONFIG_AD9852 is not set
|
||||
# CONFIG_AD9910 is not set
|
||||
# CONFIG_AD9951 is not set
|
||||
# CONFIG_ADIS16060 is not set
|
||||
# CONFIG_ADE7753 is not set
|
||||
# CONFIG_ADE7754 is not set
|
||||
|
@ -2859,6 +2888,7 @@ CONFIG_RTC_DRV_DS1742=m
|
|||
CONFIG_RTC_DRV_DS1374=m
|
||||
# CONFIG_RTC_DRV_EP93XX is not set
|
||||
CONFIG_RTC_DRV_FM3130=m
|
||||
# CONFIG_RTC_DRV_HYM8563 is not set
|
||||
CONFIG_RTC_DRV_ISL1208=m
|
||||
CONFIG_RTC_DRV_M41T80=m
|
||||
CONFIG_RTC_DRV_M41T80_WDT=y
|
||||
|
@ -2870,6 +2900,7 @@ CONFIG_RTC_DRV_PCF8563=m
|
|||
CONFIG_RTC_DRV_PCF8583=m
|
||||
CONFIG_RTC_DRV_RS5C372=m
|
||||
# CONFIG_RTC_DRV_SA1100 is not set
|
||||
# CONFIG_RTC_DRV_SNVS is not set
|
||||
# CONFIG_RTC_DRV_TEST is not set
|
||||
CONFIG_RTC_DRV_X1205=m
|
||||
CONFIG_RTC_DRV_PCF8523=m
|
||||
|
@ -3077,6 +3108,8 @@ CONFIG_VIDEO_TM6000_DVB=m
|
|||
CONFIG_VIDEO_TLG2300=m
|
||||
# CONFIG_VIDEO_TIMBERDALE is not set
|
||||
# CONFIG_VIDEO_M5MOLS is not set
|
||||
# CONFIG_VIDEO_TW68 is not set
|
||||
# CONFIG_VIDEO_VIVID is not set
|
||||
# CONFIG_EXYNOS_VIDEO is not set
|
||||
CONFIG_VIDEO_USBTV=m
|
||||
# CONFIG_VIDEO_AU0828_RC is not set
|
||||
|
@ -3117,6 +3150,7 @@ CONFIG_DVB_DYNAMIC_MINORS=y
|
|||
CONFIG_DVB_BT8XX=m
|
||||
CONFIG_DVB_BUDGET_CORE=m
|
||||
CONFIG_DVB_PLUTO2=m
|
||||
# CONFIG_DVB_PT3 is not set
|
||||
CONFIG_SMS_SIANO_MDTV=m
|
||||
CONFIG_SMS_SIANO_RC=y
|
||||
# CONFIG_SMS_SIANO_DEBUGFS is not set
|
||||
|
@ -3184,6 +3218,7 @@ CONFIG_DVB_USB_AZ6007=m
|
|||
CONFIG_DVB_USB_LME2510=m
|
||||
CONFIG_DVB_USB_RTL28XXU=m
|
||||
CONFIG_DVB_USB_AF9035=m
|
||||
CONFIG_DVB_USB_DVBSKY=m
|
||||
|
||||
CONFIG_DVB_PT1=m
|
||||
|
||||
|
@ -3229,6 +3264,7 @@ CONFIG_IR_IGUANA=m
|
|||
CONFIG_IR_TTUSBIR=m
|
||||
CONFIG_IR_GPIO_CIR=m
|
||||
CONFIG_IR_XMP_DECODER=m
|
||||
CONFIG_IR_HIX5HD2=m
|
||||
|
||||
CONFIG_V4L_MEM2MEM_DRIVERS=y
|
||||
# CONFIG_VIDEO_MEM2MEM_DEINTERLACE is not set
|
||||
|
@ -3499,7 +3535,7 @@ CONFIG_SND_FIREWIRE_SPEAKERS=m
|
|||
CONFIG_SND_ISIGHT=m
|
||||
CONFIG_SND_SCS1X=m
|
||||
CONFIG_SND_DICE=m
|
||||
# CONFIG_SND_FIREWORKS is not set
|
||||
CONFIG_SND_FIREWORKS=m
|
||||
# CONFIG_SND_BEBOB is not set
|
||||
|
||||
#
|
||||
|
@ -3619,6 +3655,7 @@ CONFIG_HID_ICADE=m
|
|||
CONFIG_HID_TWINHAN=m
|
||||
CONFIG_HID_ORTEK=m
|
||||
CONFIG_HID_PANTHERLORD=m
|
||||
CONFIG_HID_PENMOUNT=m
|
||||
CONFIG_HID_PETALYNX=m
|
||||
CONFIG_HID_PICOLCD=m
|
||||
CONFIG_HID_RMI=m
|
||||
|
@ -3733,6 +3770,7 @@ CONFIG_USB_S2255=m
|
|||
# CONFIG_VIDEO_SH_MOBILE_CSI2 is not set
|
||||
CONFIG_USB_ZR364XX=m
|
||||
# CONFIG_SOC_CAMERA is not set
|
||||
# CONFIG_SOC_TI is not set
|
||||
|
||||
#
|
||||
# USB Network adaptors
|
||||
|
@ -3837,7 +3875,6 @@ CONFIG_USB_SERIAL_MCT_U232=m
|
|||
CONFIG_USB_SERIAL_MOS7720=m
|
||||
CONFIG_USB_SERIAL_MOS7715_PARPORT=y
|
||||
# CONFIG_USB_SERIAL_WISHBONE is not set
|
||||
# CONFIG_USB_SERIAL_ZTE is not set
|
||||
CONFIG_USB_SERIAL_MOS7840=m
|
||||
# CONFIG_USB_SERIAL_MXUPORT is not set
|
||||
CONFIG_USB_SERIAL_NAVMAN=m
|
||||
|
@ -3881,16 +3918,12 @@ CONFIG_USB_PHY=y
|
|||
# CONFIG_USB_OTG_FSM is not set
|
||||
|
||||
# CONFIG_GENERIC_PHY is not set
|
||||
# CONFIG_PHY_EXYNOS_MIPI_VIDEO is not set
|
||||
# CONFIG_PHY_EXYNOS_DP_VIDEO is not set
|
||||
# CONFIG_PHY_ST_SPEAR1310_MIPHY is not set
|
||||
# CONFIG_PHY_ST_SPEAR1340_MIPHY is not set
|
||||
# CONFIG_AM335X_PHY_USB is not set
|
||||
# CONFIG_SAMSUNG_USBPHY is not set
|
||||
# CONFIG_SAMSUNG_USB2PHY is not set
|
||||
# CONFIG_SAMSUNG_USB3PHY is not set
|
||||
# CONFIG_BCM_KONA_USB2_PHY is not set
|
||||
CONFIG_USB_RCAR_PHY=m
|
||||
# CONFIG_USB_RCAR_PHY is not set
|
||||
CONFIG_USB_ATM=m
|
||||
CONFIG_USB_CXACRU=m
|
||||
# CONFIG_USB_C67X00_HCD is not set
|
||||
|
@ -3936,6 +3969,8 @@ CONFIG_USB_XUSBATM=m
|
|||
# CONFIG_USB_DWC2 is not set
|
||||
# CONFIG_USB_ISP1301 is not set
|
||||
# CONFIG_USB_OTG is not set
|
||||
# CONFIG_USB_OTG_WHITELIST is not set
|
||||
CONFIG_USB_LED_TRIG=y
|
||||
|
||||
CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
|
||||
|
||||
|
@ -4013,6 +4048,10 @@ CONFIG_MFD_VIPERBOARD=m
|
|||
# CONFIG_MFD_TPS65912_SPI is not set
|
||||
# CONFIG_MFD_MC13XXX_SPI is not set
|
||||
# CONFIG_MFD_DA9052_SPI is not set
|
||||
# CONFIG_MFD_MENF21BMC is not set
|
||||
# CONFIG_MFD_HI6421_PMIC is not set
|
||||
# CONFIG_MFD_RK808 is not set
|
||||
# CONFIG_MFD_RN5T618 is not set
|
||||
# CONFIG_EZX_PCAP is not set
|
||||
# CONFIG_INTEL_SOC_PMIC is not set
|
||||
|
||||
|
@ -4148,6 +4187,7 @@ CONFIG_9P_FSCACHE=y
|
|||
CONFIG_9P_FS_POSIX_ACL=y
|
||||
CONFIG_9P_FS_SECURITY=y
|
||||
CONFIG_FUSE_FS=m
|
||||
CONFIG_OVERLAY_FS=m
|
||||
# CONFIG_OMFS_FS is not set
|
||||
CONFIG_CUSE=m
|
||||
CONFIG_F2FS_FS=m
|
||||
|
@ -4452,6 +4492,7 @@ CONFIG_CRYPTO_MANAGER=y
|
|||
CONFIG_CRYPTO_HW=y
|
||||
CONFIG_CRYPTO_BLKCIPHER=y
|
||||
# CONFIG_CRYPTO_CRYPTD is not set
|
||||
# CONFIG_CRYPTO_MCRYPTD is not set
|
||||
CONFIG_CRYPTO_AES=y
|
||||
CONFIG_CRYPTO_ARC4=m
|
||||
CONFIG_CRYPTO_ANUBIS=m
|
||||
|
@ -4630,6 +4671,7 @@ CONFIG_THERMAL_HWMON=y
|
|||
CONFIG_THERMAL_GOV_FAIR_SHARE=y
|
||||
# CONFIG_THERMAL_GOV_USER_SPACE is not set
|
||||
CONFIG_THERMAL_GOV_STEP_WISE=y
|
||||
# CONFIG_THERMAL_GOV_BANG_BANG is not set
|
||||
# CONFIG_THERMAL_EMULATION is not set
|
||||
# CONFIG_THERMAL_OF is not set
|
||||
# CONFIG_CPU_THERMAL is not set
|
||||
|
@ -4726,6 +4768,7 @@ CONFIG_LEDS_DELL_NETBOOKS=m
|
|||
# CONFIG_LEDS_PWM is not set
|
||||
# CONFIG_LEDS_LP8501 is not set
|
||||
# CONFIG_LEDS_PCA963X is not set
|
||||
# CONFIG_LEDS_SYSCON is not set
|
||||
CONFIG_LEDS_TRIGGERS=y
|
||||
CONFIG_LEDS_TRIGGER_TIMER=m
|
||||
CONFIG_LEDS_TRIGGER_ONESHOT=m
|
||||
|
@ -4798,6 +4841,7 @@ CONFIG_OPTPROBES=y
|
|||
CONFIG_HZ_1000=y
|
||||
CONFIG_NO_HZ=y
|
||||
|
||||
# CONFIG_SCHED_STACK_END_CHECK is not set
|
||||
CONFIG_TIMER_STATS=y
|
||||
CONFIG_HIGH_RES_TIMERS=y
|
||||
CONFIG_PERF_EVENTS=y
|
||||
|
@ -4838,6 +4882,8 @@ CONFIG_APM_POWER=m
|
|||
# CONFIG_CHARGER_BQ24190 is not set
|
||||
# CONFIG_CHARGER_BQ24735 is not set
|
||||
CONFIG_POWER_RESET=y
|
||||
# CONFIG_POWER_RESET_LTC2952 is not set
|
||||
# CONFIG_POWER_RESET_SYSCON is not set
|
||||
|
||||
# CONFIG_PDA_POWER is not set
|
||||
|
||||
|
@ -4921,6 +4967,8 @@ CONFIG_NET_DSA=m
|
|||
CONFIG_NET_DSA_MV88E6060=m
|
||||
CONFIG_NET_DSA_MV88E6131=m
|
||||
CONFIG_NET_DSA_MV88E6123_61_65=m
|
||||
CONFIG_NET_DSA_MV88E6171=m
|
||||
CONFIG_NET_DSA_BCM_SF2=m
|
||||
|
||||
# Used by Maemo, we don't care.
|
||||
# CONFIG_PHONET is not set
|
||||
|
@ -4936,6 +4984,7 @@ CONFIG_NET_DSA_MV88E6123_61_65=m
|
|||
CONFIG_WM8350_POWER=m
|
||||
|
||||
# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
|
||||
# CONFIG_VIDEO_PCI_SKELETON is not set
|
||||
|
||||
CONFIG_USB_WUSB=m
|
||||
CONFIG_USB_WUSB_CBAF=m
|
||||
|
@ -4980,9 +5029,6 @@ CONFIG_RTL8192E=m
|
|||
# CONFIG_INPUT_GPIO is not set
|
||||
# CONFIG_VIDEO_CX25821 is not set
|
||||
# CONFIG_R8188EU is not set
|
||||
# Larry Finger maintains (rhbz 1113422)
|
||||
CONFIG_R8192EE=m
|
||||
# CONFIG_R8821AE is not set
|
||||
# CONFIG_RTL8192U is not set
|
||||
CONFIG_R8723AU=m # Jes Sorensen maintains this (rhbz 1100162)
|
||||
# CONFIG_8723AU_AP_MODE is not set
|
||||
|
@ -5014,7 +5060,6 @@ CONFIG_USBIP_HOST=m
|
|||
# CONFIG_DGNC is not set
|
||||
# CONFIG_RTS5208 is not set
|
||||
# CONFIG_GS_FPGABOOT is not set
|
||||
# CONFIG_BT_NOKIA_H4P is not set
|
||||
# CONFIG_UNISYSSPAR is not set
|
||||
# CONFIG_MEDIA_TUNER_MSI001 is not set
|
||||
# END OF STAGING
|
||||
|
@ -5026,6 +5071,8 @@ CONFIG_USBIP_HOST=m
|
|||
|
||||
CONFIG_NOP_USB_XCEIV=m
|
||||
|
||||
# CONFIG_INTEGRITY is not set
|
||||
|
||||
# CONFIG_IMA is not set
|
||||
CONFIG_IMA_MEASURE_PCR_IDX=10
|
||||
CONFIG_IMA_LSM_RULES=y
|
||||
|
@ -5046,6 +5093,7 @@ CONFIG_RCU_CPU_STALL_TIMEOUT=60
|
|||
# CONFIG_RCU_TORTURE_TEST is not set
|
||||
# CONFIG_RCU_TRACE is not set
|
||||
# CONFIG_RCU_CPU_STALL_INFO is not set
|
||||
# CONFIG_TASKS_RCU is not set
|
||||
# CONFIG_RCU_USER_QS is not set
|
||||
CONFIG_SPARSE_RCU_POINTER=y
|
||||
|
||||
|
@ -5097,6 +5145,7 @@ CONFIG_GPIO_SYSFS=y
|
|||
# CONFIG_GPIO_PCA953X is not set
|
||||
# CONFIG_GPIO_PCF857X is not set
|
||||
# CONFIG_GPIO_CS5535 is not set
|
||||
# CONFIG_GPIO_ADNP is not set
|
||||
# CONFIG_GPIO_ADP5588 is not set
|
||||
# CONFIG_GPIO_IT8761E is not set
|
||||
# CONFIG SB105x is not set
|
||||
|
@ -5124,6 +5173,7 @@ CONFIG_GPIO_VIPERBOARD=m
|
|||
# CONFIG_GPIO_74X164 is not set
|
||||
# CONFIG_GPIO_MAX7301 is not set
|
||||
# CONFIG_GPIO_MC33880 is not set
|
||||
# CONFIG_GPIO_MCP23S08 is not set
|
||||
|
||||
# FIXME: Why?
|
||||
|
||||
|
@ -5147,6 +5197,7 @@ CONFIG_TCM_IBLOCK=m
|
|||
CONFIG_TCM_FILEIO=m
|
||||
CONFIG_TCM_PSCSI=m
|
||||
CONFIG_TCM_FC=m
|
||||
CONFIG_TCM_USER=m
|
||||
|
||||
CONFIG_HWSPINLOCK=m
|
||||
|
||||
|
@ -5155,7 +5206,7 @@ CONFIG_PSTORE_RAM=m
|
|||
# CONFIG_PSTORE_CONSOLE is not set
|
||||
# CONFIG_PSTORE_FTRACE is not set
|
||||
|
||||
# CONFIG_TEST_MODULE is not set
|
||||
# CONFIG_TEST_LKM is not set
|
||||
# CONFIG_TEST_USER_COPY is not set
|
||||
# CONFIG_TEST_BPF is not set
|
||||
# CONFIG_TEST_UDELAY is not set
|
||||
|
@ -5201,8 +5252,19 @@ CONFIG_POWERCAP=y
|
|||
|
||||
# CONFIG_ARM_ARCH_TIMER_EVTSTREAM is not set
|
||||
|
||||
# CONFIG_HMC_DRV is not set
|
||||
|
||||
# CONFIG_PM_DEVFREQ is not set
|
||||
# CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND is not set
|
||||
# CONFIG_DEVFREQ_GOV_PERFORMANCE is not set
|
||||
# CONFIG_DEVFREQ_GOV_POWERSAVE is not set
|
||||
# CONFIG_DEVFREQ_GOV_USERSPACE is not set
|
||||
|
||||
# CONFIG_CPUFREQ_DT is not set
|
||||
|
||||
# CONFIG_MODULE_SIG is not set
|
||||
# FIXME: Revisit this to see if we can use it instead of the spec file stuff
|
||||
# CONFIG_MODULE_COMPRESS is not set
|
||||
# CONFIG_SYSTEM_TRUSTED_KEYRING is not set
|
||||
# CONFIG_SYSTEM_BLACKLIST_KEYRING is not set
|
||||
|
||||
|
@ -5212,3 +5274,8 @@ CONFIG_POWERCAP=y
|
|||
# CONFIG_GLOB_SELFTEST is not set
|
||||
|
||||
# CONFIG_SBSAUART_TTY is not set
|
||||
|
||||
# CONFIG_SERIAL_8250_FINTEK is not set
|
||||
|
||||
# set in x86-generic presently
|
||||
# CONFIG_TOUCHSCREEN_GOODIX is not set
|
||||
|
|
|
@ -309,7 +309,6 @@ CONFIG_SERIAL_GRLIB_GAISLER_APBUART=m
|
|||
|
||||
# CONFIG_PPC_MPC512x is not set
|
||||
# CONFIG_RTC_DRV_MPC5121 is not set
|
||||
# CONFIG_RTC_DRV_HYM8563 is not set
|
||||
|
||||
# CONFIG_MPC512X_DMA is not set
|
||||
|
||||
|
@ -323,8 +322,6 @@ CONFIG_I2C_MPC=m
|
|||
# CONFIG_CRYPTO_DEV_FSL_CAAM is not set
|
||||
# CONFIG_CRYPTO_SHA1_PPC is not set
|
||||
|
||||
# CONFIG_GPIO_MCP23S08 is not set
|
||||
|
||||
# CONFIG_CAN_FLEXCAN is not set
|
||||
# CONFIG_NET_VENDOR_XILINX is not set
|
||||
# CONFIG_PPC_EPAPR_HV_BYTECHAN is not set
|
||||
|
@ -351,15 +348,14 @@ CONFIG_RCU_FANOUT_LEAF=16
|
|||
|
||||
CONFIG_PPC_DENORMALISATION=y
|
||||
# CONFIG_MDIO_BUS_MUX_MMIOREG is not set
|
||||
# CONFIG_GPIO_ADNP is not set
|
||||
# CONFIG_MFD_SYSCON is not set
|
||||
# CONFIG_RTC_DRV_SNVS is not set
|
||||
# CONFIG_ASYMMETRIC_KEY_TYPE is not set
|
||||
|
||||
|
||||
# CONFIG_CPU_LITTLE_ENDIAN is not set
|
||||
|
||||
CONFIG_POWER_RESET_GPIO=y
|
||||
CONFIG_POWER_RESET_GPIO_RESTART=y
|
||||
CONFIG_FB_SSD1307=m
|
||||
CONFIG_INPUT_PWM_BEEPER=m
|
||||
CONFIG_BACKLIGHT_PWM=m
|
||||
|
|
|
@ -171,8 +171,8 @@ CONFIG_CRYPTO_842=m
|
|||
CONFIG_CRYPTO_DEV_NX_ENCRYPT=m
|
||||
CONFIG_CRYPTO_DEV_NX_COMPRESS=m
|
||||
|
||||
CONFIG_CXL=m
|
||||
|
||||
CONFIG_BPF_JIT=y
|
||||
# CONFIG_PPC_ICSWX_PID is not set
|
||||
# CONFIG_PPC_ICSWX_USE_SIGILL is not set
|
||||
# CONFIG_PCIEPORTBUS is not set
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
CONFIG_CPU_LITTLE_ENDIAN=y
|
|
@ -161,8 +161,8 @@ CONFIG_CRYPTO_842=m
|
|||
CONFIG_CRYPTO_DEV_NX_ENCRYPT=m
|
||||
CONFIG_CRYPTO_DEV_NX_COMPRESS=m
|
||||
|
||||
CONFIG_CXL=m
|
||||
|
||||
CONFIG_BPF_JIT=y
|
||||
# CONFIG_PPC_ICSWX_PID is not set
|
||||
# CONFIG_PPC_ICSWX_USE_SIGILL is not set
|
||||
# CONFIG_PCIEPORTBUS is not set
|
||||
|
|
|
@ -83,7 +83,6 @@ CONFIG_TN3270_FS=m
|
|||
#
|
||||
CONFIG_S390_TAPE_34XX=m
|
||||
|
||||
# CONFIG_PPP is not set
|
||||
# CONFIG_SLIP is not set
|
||||
|
||||
#
|
||||
|
@ -213,7 +212,6 @@ CONFIG_SCHED_BOOK=y
|
|||
|
||||
CONFIG_CRYPTO_GHASH_S390=m
|
||||
|
||||
CONFIG_BPF_JIT=y
|
||||
# CONFIG_TRANSPARENT_HUGEPAGE is not set
|
||||
CONFIG_SCM_BUS=y
|
||||
CONFIG_EADM_SCH=m
|
||||
|
|
|
@ -78,7 +78,6 @@ CONFIG_X86_SPEEDSTEP_LIB=y
|
|||
CONFIG_X86_LONGRUN=y
|
||||
# CONFIG_X86_LONGHAUL is not set
|
||||
# CONFIG_X86_CPUFREQ_NFORCE2 is not set
|
||||
# CONFIG_GENERIC_CPUFREQ_CPU0 is not set
|
||||
# e_powersaver is dangerous
|
||||
# CONFIG_X86_E_POWERSAVER is not set
|
||||
|
||||
|
@ -168,6 +167,7 @@ CONFIG_XO1_RFKILL=m
|
|||
CONFIG_X86_32_IRIS=m
|
||||
|
||||
CONFIG_POWER_RESET_GPIO=y
|
||||
# CONFIG_POWER_RESET_GPIO_RESTART is not set
|
||||
|
||||
|
||||
|
||||
|
@ -206,14 +206,10 @@ CONFIG_BACKLIGHT_PWM=m
|
|||
# CONFIG_MDIO_BUS_MUX_GPIO is not set
|
||||
# CONFIG_MDIO_BUS_MUX_MMIOREG is not set
|
||||
# CONFIG_GPIO_SODAVILLE is not set
|
||||
# CONFIG_GPIO_ADNP is not set
|
||||
# CONFIG_BACKLIGHT_OT200 is not set
|
||||
# CONFIG_RTC_DRV_SNVS is not set
|
||||
# CONFIG_RTC_DRV_HYM8563 is not set
|
||||
|
||||
# CONFIG_MLX5_INFINIBAND is not set
|
||||
# CONFIG_PINCTRL_SINGLE is not set
|
||||
# CONFIG_PINCTRL_MSM8X74 is not set
|
||||
# CONFIG_PINCTRL_BCM281XX is not set
|
||||
# CONFIG_PINCTRL_APQ8064 is not set
|
||||
# CONFIG_PINCTRL_IPQ8064 is not set
|
||||
|
|
|
@ -240,6 +240,7 @@ CONFIG_INTEL_SMARTCONNECT=y
|
|||
CONFIG_PVPANIC=m
|
||||
|
||||
# CONFIG_TOUCHSCREEN_INTEL_MID is not set
|
||||
CONFIG_TOUCHSCREEN_GOODIX=m
|
||||
|
||||
# CONFIG_SMSC37B787_WDT is not set
|
||||
CONFIG_VIA_WDT=m
|
||||
|
@ -293,6 +294,8 @@ CONFIG_INPUT_XEN_KBDDEV_FRONTEND=m
|
|||
CONFIG_XEN_SELFBALLOONING=y
|
||||
CONFIG_XEN_PCIDEV_BACKEND=m
|
||||
CONFIG_XEN_ACPI_PROCESSOR=m
|
||||
# CONFIG_XEN_SCSI_FRONTEND is not set
|
||||
# CONFIG_XEN_SCSI_BACKEND is not set
|
||||
|
||||
CONFIG_MTD_ESB2ROM=m
|
||||
CONFIG_MTD_CK804XROM=m
|
||||
|
@ -376,7 +379,6 @@ CONFIG_LPC_ICH=m
|
|||
|
||||
CONFIG_GPIO_ICH=m
|
||||
# CONFIG_GPIO_LYNXPOINT is not set
|
||||
# CONFIG_GPIO_MCP23S08 is not set
|
||||
# CONFIG_GPIO_F7188X is not set
|
||||
|
||||
# These should all go away with IC2_ACPI is fixed
|
||||
|
@ -406,7 +408,6 @@ CONFIG_GPIO_ICH=m
|
|||
# CONFIG_TWL4030_CORE is not set
|
||||
# CONFIG_TWL6040_CORE is not set
|
||||
|
||||
|
||||
CONFIG_PCI_CNB20LE_QUIRK=y
|
||||
|
||||
CONFIG_ACPI_EC_DEBUGFS=m
|
||||
|
@ -480,15 +481,19 @@ CONFIG_NFC_MICROREAD_MEI=m
|
|||
# CONFIG_X86_GOLDFISH is not set
|
||||
|
||||
CONFIG_X86_INTEL_LPSS=y
|
||||
CONFIG_IOSF_MBI=m
|
||||
# CONFIG_IOSF_MBI_DEBUG is not set
|
||||
CONFIG_PWM_LPSS=m
|
||||
CONFIG_PWM_LPSS_PCI=m
|
||||
CONFIG_PWM_LPSS_PLATFORM=m
|
||||
CONFIG_PINCTRL=y
|
||||
CONFIG_PINCTRL_BAYTRAIL=y
|
||||
|
||||
# CONFIG_INTEL_POWERCLAMP is not set
|
||||
CONFIG_X86_PKG_TEMP_THERMAL=m
|
||||
CONFIG_ACPI_INT3403_THERMAL=m
|
||||
CONFIG_INTEL_SOC_DTS_THERMAL=m
|
||||
CONFIG_INTEL_RAPL=m
|
||||
CONFIG_INT340X_THERMAL=m
|
||||
|
||||
CONFIG_VMWARE_VMCI=m
|
||||
CONFIG_VMWARE_VMCI_VSOCKETS=m
|
||||
|
|
|
@ -57,6 +57,7 @@ CONFIG_INTEL_MIC_X100_DMA=m
|
|||
# SHPC has half-arsed PCI probing, which makes it load on too many systems
|
||||
CONFIG_HOTPLUG_PCI_SHPC=m
|
||||
|
||||
# CONFIG_CRYPTO_SHA1_MB is not set
|
||||
CONFIG_CRYPTO_AES_X86_64=y
|
||||
CONFIG_CRYPTO_SERPENT_SSE2_X86_64=m
|
||||
CONFIG_CRYPTO_TWOFISH_X86_64=m
|
||||
|
@ -152,8 +153,6 @@ CONFIG_FUNCTION_GRAPH_TRACER=y
|
|||
|
||||
CONFIG_I7300_IDLE=m
|
||||
|
||||
CONFIG_BPF_JIT=y
|
||||
|
||||
# https://fedoraproject.org/wiki/Features/Checkpoint_Restore
|
||||
CONFIG_CHECKPOINT_RESTORE=y
|
||||
|
||||
|
|
|
@ -269,7 +269,7 @@ index 000000000000..fd4736ec99f5
|
|||
+
|
||||
+#endif /* _X86_CRASH_H */
|
||||
diff --git a/drivers/char/Kconfig b/drivers/char/Kconfig
|
||||
index 6e9f74a5c095..ee6bae16b04c 100644
|
||||
index efefd12a0f7b..6a318132b7ee 100644
|
||||
--- a/drivers/char/Kconfig
|
||||
+++ b/drivers/char/Kconfig
|
||||
@@ -4,6 +4,9 @@
|
||||
|
@ -283,13 +283,13 @@ index 6e9f74a5c095..ee6bae16b04c 100644
|
|||
|
||||
config DEVKMEM
|
||||
diff --git a/drivers/char/Makefile b/drivers/char/Makefile
|
||||
index a324f9303e36..33ce2fb1d0a3 100644
|
||||
index d06cde26031b..0832636fd9bc 100644
|
||||
--- a/drivers/char/Makefile
|
||||
+++ b/drivers/char/Makefile
|
||||
@@ -61,3 +61,5 @@ obj-$(CONFIG_JS_RTC) += js-rtc.o
|
||||
js-rtc-y = rtc.o
|
||||
@@ -62,3 +62,5 @@ js-rtc-y = rtc.o
|
||||
|
||||
obj-$(CONFIG_TILE_SROM) += tile-srom.o
|
||||
obj-$(CONFIG_XILLYBUS) += xillybus/
|
||||
+
|
||||
+obj-$(CONFIG_CRASH) += crash.o
|
||||
diff --git a/drivers/char/crash.c b/drivers/char/crash.c
|
||||
|
@ -505,5 +505,5 @@ index 000000000000..25ab9869d566
|
|||
+
|
||||
+#endif /* __CRASH_H__ */
|
||||
--
|
||||
1.9.3
|
||||
2.1.0
|
||||
|
||||
|
|
|
@ -1,86 +0,0 @@
|
|||
From: Al Viro <viro@zeniv.linux.org.uk>
|
||||
Date: Sun, 26 Oct 2014 19:31:10 -0400
|
||||
Subject: [PATCH] deal with deadlock in d_walk()
|
||||
|
||||
... by not hitting rename_retry for reasons other than rename having
|
||||
happened. In other words, do _not_ restart when finding that
|
||||
between unlocking the child and locking the parent the former got
|
||||
into __dentry_kill(). Skip the killed siblings instead...
|
||||
|
||||
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
|
||||
---
|
||||
fs/dcache.c | 31 ++++++++++++++++---------------
|
||||
1 file changed, 16 insertions(+), 15 deletions(-)
|
||||
|
||||
diff --git a/fs/dcache.c b/fs/dcache.c
|
||||
index 8d7c2b34cb3f..e6c207134a14 100644
|
||||
--- a/fs/dcache.c
|
||||
+++ b/fs/dcache.c
|
||||
@@ -465,7 +465,7 @@ static void __dentry_kill(struct dentry *dentry)
|
||||
}
|
||||
/* if it was on the hash then remove it */
|
||||
__d_drop(dentry);
|
||||
- list_del(&dentry->d_child);
|
||||
+ __list_del_entry(&dentry->d_child);
|
||||
/*
|
||||
* Inform d_walk() that we are no longer attached to the
|
||||
* dentry tree
|
||||
@@ -1113,33 +1113,31 @@ resume:
|
||||
/*
|
||||
* All done at this level ... ascend and resume the search.
|
||||
*/
|
||||
+ rcu_read_lock();
|
||||
+ascend:
|
||||
if (this_parent != parent) {
|
||||
struct dentry *child = this_parent;
|
||||
this_parent = child->d_parent;
|
||||
|
||||
- rcu_read_lock();
|
||||
spin_unlock(&child->d_lock);
|
||||
spin_lock(&this_parent->d_lock);
|
||||
|
||||
- /*
|
||||
- * might go back up the wrong parent if we have had a rename
|
||||
- * or deletion
|
||||
- */
|
||||
- if (this_parent != child->d_parent ||
|
||||
- (child->d_flags & DCACHE_DENTRY_KILLED) ||
|
||||
- need_seqretry(&rename_lock, seq)) {
|
||||
- spin_unlock(&this_parent->d_lock);
|
||||
- rcu_read_unlock();
|
||||
+ /* might go back up the wrong parent if we have had a rename. */
|
||||
+ if (need_seqretry(&rename_lock, seq))
|
||||
goto rename_retry;
|
||||
+ next = child->d_child.next;
|
||||
+ while (unlikely(child->d_flags & DCACHE_DENTRY_KILLED)) {
|
||||
+ if (next == &this_parent->d_subdirs)
|
||||
+ goto ascend;
|
||||
+ child = list_entry(next, struct dentry, d_child);
|
||||
+ next = next->next;
|
||||
}
|
||||
rcu_read_unlock();
|
||||
- next = child->d_child.next;
|
||||
goto resume;
|
||||
}
|
||||
- if (need_seqretry(&rename_lock, seq)) {
|
||||
- spin_unlock(&this_parent->d_lock);
|
||||
+ if (need_seqretry(&rename_lock, seq))
|
||||
goto rename_retry;
|
||||
- }
|
||||
+ rcu_read_unlock();
|
||||
if (finish)
|
||||
finish(data);
|
||||
|
||||
@@ -1149,6 +1147,9 @@ out_unlock:
|
||||
return;
|
||||
|
||||
rename_retry:
|
||||
+ spin_unlock(&this_parent->d_lock);
|
||||
+ rcu_read_unlock();
|
||||
+ BUG_ON(seq & 1);
|
||||
if (!retry)
|
||||
return;
|
||||
seq = 1;
|
||||
--
|
||||
2.1.0
|
||||
|
|
@ -1,15 +0,0 @@
|
|||
diff --git a/tools/perf/config/Makefile b/tools/perf/config/Makefile
|
||||
index ee21fa9..19ee413 100644
|
||||
--- a/tools/perf/config/Makefile
|
||||
+++ b/tools/perf/config/Makefile
|
||||
@@ -34,6 +34,10 @@ ifeq ($(ARCH),arm)
|
||||
LIBUNWIND_LIBS = -lunwind -lunwind-arm
|
||||
endif
|
||||
|
||||
+ifneq ($(ARCH),x86)
|
||||
+ NO_LIBDW_DWARF_UNWIND := 1
|
||||
+endif
|
||||
+
|
||||
ifeq ($(LIBUNWIND_LIBS),)
|
||||
NO_LIBUNWIND := 1
|
||||
else
|
99
kernel.spec
99
kernel.spec
|
@ -62,19 +62,19 @@ Summary: The Linux kernel
|
|||
# For non-released -rc kernels, this will be appended after the rcX and
|
||||
# gitX tags, so a 3 here would become part of release "0.rcX.gitX.3"
|
||||
#
|
||||
%global baserelease 201
|
||||
%global baserelease 100
|
||||
%global fedora_build %{baserelease}
|
||||
|
||||
# base_sublevel is the kernel version we're starting with and patching
|
||||
# on top of -- for example, 3.1-rc7-git1 starts with a 3.0 base,
|
||||
# which yields a base_sublevel of 0.
|
||||
%define base_sublevel 17
|
||||
%define base_sublevel 18
|
||||
|
||||
## If this is a released kernel ##
|
||||
%if 0%{?released_kernel}
|
||||
|
||||
# Do we have a -stable update to apply?
|
||||
%define stable_update 8
|
||||
%define stable_update 4
|
||||
# Is it a -stable RC?
|
||||
%define stable_rc 0
|
||||
# Set rpm version accordingly
|
||||
|
@ -689,7 +689,7 @@ Patch14010: lis3-improve-handling-of-null-rate.patch
|
|||
Patch15000: watchdog-Disable-watchdog-on-virtual-machines.patch
|
||||
|
||||
# PPC
|
||||
Patch18000: ppc64-fixtools.patch
|
||||
|
||||
# ARM64
|
||||
|
||||
# ARMv7
|
||||
|
@ -717,57 +717,24 @@ Patch21247: ath9k-rx-dma-stop-check.patch
|
|||
|
||||
Patch22000: weird-root-dentry-name-debug.patch
|
||||
|
||||
#rhbz 1025603
|
||||
Patch25063: disable-libdw-unwind-on-non-x86.patch
|
||||
|
||||
Patch26000: perf-install-trace-event-plugins.patch
|
||||
|
||||
# Patch series from Hans for various backlight and platform driver fixes
|
||||
Patch26002: samsung-laptop-Add-broken-acpi-video-quirk-for-NC210.patch
|
||||
|
||||
#rhbz 1134969
|
||||
Patch26016: HID-wacom-Add-support-for-the-Cintiq-Companion.patch
|
||||
|
||||
#rhbz 1110011
|
||||
Patch26019: psmouse-Add-psmouse_matches_pnp_id-helper-function.patch
|
||||
Patch26020: psmouse-Add-support-for-detecting-FocalTech-PS-2-tou.patch
|
||||
|
||||
#rhbz 1089731
|
||||
Patch26058: asus-nb-wmi-Add-wapf4-quirk-for-the-X550VB.patch
|
||||
|
||||
#rhbz 1135338
|
||||
Patch26090: HID-add-support-for-MS-Surface-Pro-3-Type-Cover.patch
|
||||
|
||||
#rhbz 1164945
|
||||
Patch26092: xhci-Add-broken-streams-quirk-for-Fresco-Logic-FL100.patch
|
||||
Patch26093: uas-Add-US_FL_NO_ATA_1X-for-Seagate-devices-with-usb.patch
|
||||
Patch26094: uas-Add-US_FL_NO_REPORT_OPCODES-for-JMicron-JMS566-w.patch
|
||||
|
||||
#rhbz 1172543
|
||||
Patch26096: cfg80211-don-t-WARN-about-two-consecutive-Country-IE.patch
|
||||
|
||||
#rhbz 1173806
|
||||
Patch26101: powerpc-powernv-force-all-CPUs-to-be-bootable.patch
|
||||
|
||||
#CVE-2014-8559 rhbz 1159313 1173814
|
||||
Patch26098: move-d_rcu-from-overlapping-d_child-to-overlapping-d.patch
|
||||
Patch26099: deal-with-deadlock-in-d_walk.patch
|
||||
|
||||
#rhbz 1175261
|
||||
Patch26103: blk-mq-Fix-uninitialized-kobject-at-CPU-hotplugging.patch
|
||||
|
||||
#rhbz 1163927
|
||||
Patch26121: Set-UID-in-sess_auth_rawntlmssp_authenticate-too.patch
|
||||
|
||||
#CVE-2014-9428 rhbz 1178826,1178833
|
||||
Patch26122: batman-adv-Calculate-extra-tail-size-based-on-queued.patch
|
||||
|
||||
#CVE-2014-9529 rhbz 1179813 1179853
|
||||
Patch26124: KEYS-close-race-between-key-lookup-and-freeing.patch
|
||||
|
||||
#rhbz 1178975
|
||||
Patch26125: x86-vdso-Use-asm-volatile-in-__getcpu.patch
|
||||
|
||||
#rhbz 1124119
|
||||
Patch26126: uas-Do-not-blacklist-ASM1153-disk-enclosures.patch
|
||||
Patch26127: uas-Add-US_FL_NO_ATA_1X-for-2-more-Seagate-disk-encl.patch
|
||||
|
@ -780,15 +747,16 @@ Patch26130: acpi-video-Add-disable_native_backlight-quirk-for-De.patch
|
|||
#rhbz 1094948
|
||||
Patch26131: acpi-video-Add-disable_native_backlight-quirk-for-Sa.patch
|
||||
|
||||
#CVE-2014-9585 rhbz 1181054 1181056
|
||||
Patch26132: x86_64-vdso-Fix-the-vdso-address-randomization-algor.patch
|
||||
|
||||
#CVE-2014-8160 rhbz 1182059 1182063
|
||||
Patch26133: netfilter-conntrack-disable-generic-tracking-for-kno.patch
|
||||
|
||||
# git clone ssh://git.fedorahosted.org/git/kernel-arm64.git, git diff master...devel
|
||||
Patch30000: kernel-arm64.patch
|
||||
|
||||
# Fix for big-endian arches, already upstream
|
||||
Patch30001: mpssd-x86-only.patch
|
||||
|
||||
#CVE-2015-0239 rhbz 1186448 1186453
|
||||
Patch30004: KVM-x86-SYSENTER-emulation-is-broken.patch
|
||||
|
||||
|
||||
# END OF PATCH DEFINITIONS
|
||||
|
||||
%endif
|
||||
|
@ -1334,7 +1302,6 @@ ApplyOptionalPatch upstream-reverts.patch -R
|
|||
ApplyPatch lib-cpumask-Make-CPUMASK_OFFSTACK-usable-without-deb.patch
|
||||
|
||||
# PPC
|
||||
ApplyPatch ppc64-fixtools.patch
|
||||
|
||||
# ARM64
|
||||
|
||||
|
@ -1473,57 +1440,24 @@ ApplyPatch criu-no-expert.patch
|
|||
#rhbz 892811
|
||||
ApplyPatch ath9k-rx-dma-stop-check.patch
|
||||
|
||||
#rhbz 1025603
|
||||
ApplyPatch disable-libdw-unwind-on-non-x86.patch
|
||||
|
||||
ApplyPatch perf-install-trace-event-plugins.patch
|
||||
|
||||
# Patch series from Hans for various backlight and platform driver fixes
|
||||
ApplyPatch samsung-laptop-Add-broken-acpi-video-quirk-for-NC210.patch
|
||||
|
||||
#rhbz 1134969
|
||||
ApplyPatch HID-wacom-Add-support-for-the-Cintiq-Companion.patch
|
||||
|
||||
#rhbz 1110011
|
||||
ApplyPatch psmouse-Add-psmouse_matches_pnp_id-helper-function.patch
|
||||
ApplyPatch psmouse-Add-support-for-detecting-FocalTech-PS-2-tou.patch
|
||||
|
||||
#rhbz 1089731
|
||||
ApplyPatch asus-nb-wmi-Add-wapf4-quirk-for-the-X550VB.patch
|
||||
|
||||
#rhbz 1135338
|
||||
ApplyPatch HID-add-support-for-MS-Surface-Pro-3-Type-Cover.patch
|
||||
|
||||
#rhbz 1164945
|
||||
ApplyPatch xhci-Add-broken-streams-quirk-for-Fresco-Logic-FL100.patch
|
||||
ApplyPatch uas-Add-US_FL_NO_ATA_1X-for-Seagate-devices-with-usb.patch
|
||||
ApplyPatch uas-Add-US_FL_NO_REPORT_OPCODES-for-JMicron-JMS566-w.patch
|
||||
|
||||
#rhbz 1172543
|
||||
ApplyPatch cfg80211-don-t-WARN-about-two-consecutive-Country-IE.patch
|
||||
|
||||
#rhbz 1173806
|
||||
ApplyPatch powerpc-powernv-force-all-CPUs-to-be-bootable.patch
|
||||
|
||||
#CVE-2014-8559 rhbz 1159313 1173814
|
||||
ApplyPatch move-d_rcu-from-overlapping-d_child-to-overlapping-d.patch
|
||||
ApplyPatch deal-with-deadlock-in-d_walk.patch
|
||||
|
||||
#rhbz 1175261
|
||||
ApplyPatch blk-mq-Fix-uninitialized-kobject-at-CPU-hotplugging.patch
|
||||
|
||||
#rhbz 1163927
|
||||
ApplyPatch Set-UID-in-sess_auth_rawntlmssp_authenticate-too.patch
|
||||
|
||||
#CVE-2014-9428 rhbz 1178826,1178833
|
||||
ApplyPatch batman-adv-Calculate-extra-tail-size-based-on-queued.patch
|
||||
|
||||
#CVE-2014-9529 rhbz 1179813 1179853
|
||||
ApplyPatch KEYS-close-race-between-key-lookup-and-freeing.patch
|
||||
|
||||
#rhbz 1178975
|
||||
ApplyPatch x86-vdso-Use-asm-volatile-in-__getcpu.patch
|
||||
|
||||
#rhbz 1124119
|
||||
ApplyPatch uas-Do-not-blacklist-ASM1153-disk-enclosures.patch
|
||||
ApplyPatch uas-Add-US_FL_NO_ATA_1X-for-2-more-Seagate-disk-encl.patch
|
||||
|
@ -1536,11 +1470,11 @@ ApplyPatch acpi-video-Add-disable_native_backlight-quirk-for-De.patch
|
|||
#rhbz 1094948
|
||||
ApplyPatch acpi-video-Add-disable_native_backlight-quirk-for-Sa.patch
|
||||
|
||||
#CVE-2014-9585 rhbz 1181054 1181056
|
||||
ApplyPatch x86_64-vdso-Fix-the-vdso-address-randomization-algor.patch
|
||||
# Fix for big-endian arches, already upstream
|
||||
ApplyPatch mpssd-x86-only.patch
|
||||
|
||||
#CVE-2014-8160 rhbz 1182059 1182063
|
||||
ApplyPatch netfilter-conntrack-disable-generic-tracking-for-kno.patch
|
||||
#CVE-2015-0239 rhbz 1186448 1186453
|
||||
ApplyPatch KVM-x86-SYSENTER-emulation-is-broken.patch
|
||||
|
||||
%if 0%{?aarch64patches}
|
||||
ApplyPatch kernel-arm64.patch
|
||||
|
@ -2360,6 +2294,9 @@ fi
|
|||
# ||----w |
|
||||
# || ||
|
||||
%changelog
|
||||
* Wed Jan 28 2015 Justin M. Forbes <jforbes@fedoraproject.org> - 3.18.4-100
|
||||
- Linux v3.18.4
|
||||
|
||||
* Thu Jan 15 2015 Josh Boyer <jwboyer@fedoraproject.org> - 3.17.8-201
|
||||
- CVE-2014-8160 iptables restriction bypass (rhbz 1182059 1182063)
|
||||
|
||||
|
|
|
@ -1,736 +0,0 @@
|
|||
From: Al Viro <viro@zeniv.linux.org.uk>
|
||||
Date: Sun, 26 Oct 2014 19:19:16 -0400
|
||||
Subject: [PATCH] move d_rcu from overlapping d_child to overlapping d_alias
|
||||
|
||||
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
|
||||
---
|
||||
arch/powerpc/platforms/cell/spufs/inode.c | 2 +-
|
||||
drivers/staging/lustre/lustre/llite/dcache.c | 2 +-
|
||||
drivers/staging/lustre/lustre/llite/llite_lib.c | 2 +-
|
||||
drivers/staging/lustre/lustre/llite/namei.c | 8 ++--
|
||||
fs/affs/amigaffs.c | 2 +-
|
||||
fs/autofs4/expire.c | 12 +++---
|
||||
fs/autofs4/root.c | 2 +-
|
||||
fs/ceph/dir.c | 8 ++--
|
||||
fs/ceph/inode.c | 2 +-
|
||||
fs/cifs/inode.c | 2 +-
|
||||
fs/coda/cache.c | 2 +-
|
||||
fs/dcache.c | 52 ++++++++++++-------------
|
||||
fs/debugfs/inode.c | 2 +-
|
||||
fs/exportfs/expfs.c | 2 +-
|
||||
fs/libfs.c | 12 +++---
|
||||
fs/ncpfs/dir.c | 2 +-
|
||||
fs/ncpfs/ncplib_kernel.h | 4 +-
|
||||
fs/nfs/getroot.c | 2 +-
|
||||
fs/notify/fsnotify.c | 4 +-
|
||||
fs/ocfs2/dcache.c | 2 +-
|
||||
include/linux/dcache.h | 8 ++--
|
||||
kernel/trace/trace.c | 4 +-
|
||||
kernel/trace/trace_events.c | 2 +-
|
||||
security/selinux/selinuxfs.c | 6 +--
|
||||
24 files changed, 73 insertions(+), 73 deletions(-)
|
||||
|
||||
diff --git a/arch/powerpc/platforms/cell/spufs/inode.c b/arch/powerpc/platforms/cell/spufs/inode.c
|
||||
index 87ba7cf99cd7..65d633f20d37 100644
|
||||
--- a/arch/powerpc/platforms/cell/spufs/inode.c
|
||||
+++ b/arch/powerpc/platforms/cell/spufs/inode.c
|
||||
@@ -164,7 +164,7 @@ static void spufs_prune_dir(struct dentry *dir)
|
||||
struct dentry *dentry, *tmp;
|
||||
|
||||
mutex_lock(&dir->d_inode->i_mutex);
|
||||
- list_for_each_entry_safe(dentry, tmp, &dir->d_subdirs, d_u.d_child) {
|
||||
+ list_for_each_entry_safe(dentry, tmp, &dir->d_subdirs, d_child) {
|
||||
spin_lock(&dentry->d_lock);
|
||||
if (!(d_unhashed(dentry)) && dentry->d_inode) {
|
||||
dget_dlock(dentry);
|
||||
diff --git a/drivers/staging/lustre/lustre/llite/dcache.c b/drivers/staging/lustre/lustre/llite/dcache.c
|
||||
index 49ae207ad425..e2add5fde0fe 100644
|
||||
--- a/drivers/staging/lustre/lustre/llite/dcache.c
|
||||
+++ b/drivers/staging/lustre/lustre/llite/dcache.c
|
||||
@@ -258,7 +258,7 @@ void ll_invalidate_aliases(struct inode *inode)
|
||||
inode->i_ino, inode->i_generation, inode);
|
||||
|
||||
ll_lock_dcache(inode);
|
||||
- ll_d_hlist_for_each_entry(dentry, p, &inode->i_dentry, d_alias) {
|
||||
+ ll_d_hlist_for_each_entry(dentry, p, &inode->i_dentry, d_u.d_alias) {
|
||||
CDEBUG(D_DENTRY, "dentry in drop %.*s (%p) parent %p "
|
||||
"inode %p flags %d\n", dentry->d_name.len,
|
||||
dentry->d_name.name, dentry, dentry->d_parent,
|
||||
diff --git a/drivers/staging/lustre/lustre/llite/llite_lib.c b/drivers/staging/lustre/lustre/llite/llite_lib.c
|
||||
index 0c59e26c0805..36e62524a37b 100644
|
||||
--- a/drivers/staging/lustre/lustre/llite/llite_lib.c
|
||||
+++ b/drivers/staging/lustre/lustre/llite/llite_lib.c
|
||||
@@ -704,7 +704,7 @@ void lustre_dump_dentry(struct dentry *dentry, int recur)
|
||||
return;
|
||||
|
||||
list_for_each(tmp, &dentry->d_subdirs) {
|
||||
- struct dentry *d = list_entry(tmp, struct dentry, d_u.d_child);
|
||||
+ struct dentry *d = list_entry(tmp, struct dentry, d_child);
|
||||
lustre_dump_dentry(d, recur - 1);
|
||||
}
|
||||
}
|
||||
diff --git a/drivers/staging/lustre/lustre/llite/namei.c b/drivers/staging/lustre/lustre/llite/namei.c
|
||||
index 0dc7173bbd41..9de0d51e33a2 100644
|
||||
--- a/drivers/staging/lustre/lustre/llite/namei.c
|
||||
+++ b/drivers/staging/lustre/lustre/llite/namei.c
|
||||
@@ -167,14 +167,14 @@ static void ll_invalidate_negative_children(struct inode *dir)
|
||||
struct ll_d_hlist_node *p;
|
||||
|
||||
ll_lock_dcache(dir);
|
||||
- ll_d_hlist_for_each_entry(dentry, p, &dir->i_dentry, d_alias) {
|
||||
+ ll_d_hlist_for_each_entry(dentry, p, &dir->i_dentry, d_u.d_alias) {
|
||||
spin_lock(&dentry->d_lock);
|
||||
if (!list_empty(&dentry->d_subdirs)) {
|
||||
struct dentry *child;
|
||||
|
||||
list_for_each_entry_safe(child, tmp_subdir,
|
||||
&dentry->d_subdirs,
|
||||
- d_u.d_child) {
|
||||
+ d_child) {
|
||||
if (child->d_inode == NULL)
|
||||
d_lustre_invalidate(child, 1);
|
||||
}
|
||||
@@ -362,7 +362,7 @@ static struct dentry *ll_find_alias(struct inode *inode, struct dentry *dentry)
|
||||
discon_alias = invalid_alias = NULL;
|
||||
|
||||
ll_lock_dcache(inode);
|
||||
- ll_d_hlist_for_each_entry(alias, p, &inode->i_dentry, d_alias) {
|
||||
+ ll_d_hlist_for_each_entry(alias, p, &inode->i_dentry, d_u.d_alias) {
|
||||
LASSERT(alias != dentry);
|
||||
|
||||
spin_lock(&alias->d_lock);
|
||||
@@ -943,7 +943,7 @@ static void ll_get_child_fid(struct inode * dir, struct qstr *name,
|
||||
{
|
||||
struct dentry *parent, *child;
|
||||
|
||||
- parent = ll_d_hlist_entry(dir->i_dentry, struct dentry, d_alias);
|
||||
+ parent = ll_d_hlist_entry(dir->i_dentry, struct dentry, d_u.d_alias);
|
||||
child = d_lookup(parent, name);
|
||||
if (child) {
|
||||
if (child->d_inode)
|
||||
diff --git a/fs/affs/amigaffs.c b/fs/affs/amigaffs.c
|
||||
index 406b29836b19..a674c114fd8e 100644
|
||||
--- a/fs/affs/amigaffs.c
|
||||
+++ b/fs/affs/amigaffs.c
|
||||
@@ -127,7 +127,7 @@ affs_fix_dcache(struct inode *inode, u32 entry_ino)
|
||||
{
|
||||
struct dentry *dentry;
|
||||
spin_lock(&inode->i_lock);
|
||||
- hlist_for_each_entry(dentry, &inode->i_dentry, d_alias) {
|
||||
+ hlist_for_each_entry(dentry, &inode->i_dentry, d_u.d_alias) {
|
||||
if (entry_ino == (u32)(long)dentry->d_fsdata) {
|
||||
dentry->d_fsdata = (void *)inode->i_ino;
|
||||
break;
|
||||
diff --git a/fs/autofs4/expire.c b/fs/autofs4/expire.c
|
||||
index a7be57e39be7..11c6cddff1b9 100644
|
||||
--- a/fs/autofs4/expire.c
|
||||
+++ b/fs/autofs4/expire.c
|
||||
@@ -91,7 +91,7 @@ static struct dentry *get_next_positive_subdir(struct dentry *prev,
|
||||
spin_lock(&root->d_lock);
|
||||
|
||||
if (prev)
|
||||
- next = prev->d_u.d_child.next;
|
||||
+ next = prev->d_child.next;
|
||||
else {
|
||||
prev = dget_dlock(root);
|
||||
next = prev->d_subdirs.next;
|
||||
@@ -105,13 +105,13 @@ cont:
|
||||
return NULL;
|
||||
}
|
||||
|
||||
- q = list_entry(next, struct dentry, d_u.d_child);
|
||||
+ q = list_entry(next, struct dentry, d_child);
|
||||
|
||||
spin_lock_nested(&q->d_lock, DENTRY_D_LOCK_NESTED);
|
||||
/* Already gone or negative dentry (under construction) - try next */
|
||||
if (!d_count(q) || !simple_positive(q)) {
|
||||
spin_unlock(&q->d_lock);
|
||||
- next = q->d_u.d_child.next;
|
||||
+ next = q->d_child.next;
|
||||
goto cont;
|
||||
}
|
||||
dget_dlock(q);
|
||||
@@ -161,13 +161,13 @@ again:
|
||||
goto relock;
|
||||
}
|
||||
spin_unlock(&p->d_lock);
|
||||
- next = p->d_u.d_child.next;
|
||||
+ next = p->d_child.next;
|
||||
p = parent;
|
||||
if (next != &parent->d_subdirs)
|
||||
break;
|
||||
}
|
||||
}
|
||||
- ret = list_entry(next, struct dentry, d_u.d_child);
|
||||
+ ret = list_entry(next, struct dentry, d_child);
|
||||
|
||||
spin_lock_nested(&ret->d_lock, DENTRY_D_LOCK_NESTED);
|
||||
/* Negative dentry - try next */
|
||||
@@ -460,7 +460,7 @@ found:
|
||||
spin_lock(&sbi->lookup_lock);
|
||||
spin_lock(&expired->d_parent->d_lock);
|
||||
spin_lock_nested(&expired->d_lock, DENTRY_D_LOCK_NESTED);
|
||||
- list_move(&expired->d_parent->d_subdirs, &expired->d_u.d_child);
|
||||
+ list_move(&expired->d_parent->d_subdirs, &expired->d_child);
|
||||
spin_unlock(&expired->d_lock);
|
||||
spin_unlock(&expired->d_parent->d_lock);
|
||||
spin_unlock(&sbi->lookup_lock);
|
||||
diff --git a/fs/autofs4/root.c b/fs/autofs4/root.c
|
||||
index cdb25ebccc4c..38a9e0fa5177 100644
|
||||
--- a/fs/autofs4/root.c
|
||||
+++ b/fs/autofs4/root.c
|
||||
@@ -659,7 +659,7 @@ static void autofs_clear_leaf_automount_flags(struct dentry *dentry)
|
||||
/* only consider parents below dentrys in the root */
|
||||
if (IS_ROOT(parent->d_parent))
|
||||
return;
|
||||
- d_child = &dentry->d_u.d_child;
|
||||
+ d_child = &dentry->d_child;
|
||||
/* Set parent managed if it's becoming empty */
|
||||
if (d_child->next == &parent->d_subdirs &&
|
||||
d_child->prev == &parent->d_subdirs)
|
||||
diff --git a/fs/ceph/dir.c b/fs/ceph/dir.c
|
||||
index c29d6ae68874..51ea03313df9 100644
|
||||
--- a/fs/ceph/dir.c
|
||||
+++ b/fs/ceph/dir.c
|
||||
@@ -111,7 +111,7 @@ static int fpos_cmp(loff_t l, loff_t r)
|
||||
/*
|
||||
* When possible, we try to satisfy a readdir by peeking at the
|
||||
* dcache. We make this work by carefully ordering dentries on
|
||||
- * d_u.d_child when we initially get results back from the MDS, and
|
||||
+ * d_child when we initially get results back from the MDS, and
|
||||
* falling back to a "normal" sync readdir if any dentries in the dir
|
||||
* are dropped.
|
||||
*
|
||||
@@ -147,11 +147,11 @@ static int __dcache_readdir(struct file *file, struct dir_context *ctx,
|
||||
p = parent->d_subdirs.prev;
|
||||
dout(" initial p %p/%p\n", p->prev, p->next);
|
||||
} else {
|
||||
- p = last->d_u.d_child.prev;
|
||||
+ p = last->d_child.prev;
|
||||
}
|
||||
|
||||
more:
|
||||
- dentry = list_entry(p, struct dentry, d_u.d_child);
|
||||
+ dentry = list_entry(p, struct dentry, d_child);
|
||||
di = ceph_dentry(dentry);
|
||||
while (1) {
|
||||
dout(" p %p/%p %s d_subdirs %p/%p\n", p->prev, p->next,
|
||||
@@ -174,7 +174,7 @@ more:
|
||||
!dentry->d_inode ? " null" : "");
|
||||
spin_unlock(&dentry->d_lock);
|
||||
p = p->prev;
|
||||
- dentry = list_entry(p, struct dentry, d_u.d_child);
|
||||
+ dentry = list_entry(p, struct dentry, d_child);
|
||||
di = ceph_dentry(dentry);
|
||||
}
|
||||
|
||||
diff --git a/fs/ceph/inode.c b/fs/ceph/inode.c
|
||||
index 04c89c266cec..c3e103ff18bd 100644
|
||||
--- a/fs/ceph/inode.c
|
||||
+++ b/fs/ceph/inode.c
|
||||
@@ -1399,7 +1399,7 @@ retry_lookup:
|
||||
/* reorder parent's d_subdirs */
|
||||
spin_lock(&parent->d_lock);
|
||||
spin_lock_nested(&dn->d_lock, DENTRY_D_LOCK_NESTED);
|
||||
- list_move(&dn->d_u.d_child, &parent->d_subdirs);
|
||||
+ list_move(&dn->d_child, &parent->d_subdirs);
|
||||
spin_unlock(&dn->d_lock);
|
||||
spin_unlock(&parent->d_lock);
|
||||
}
|
||||
diff --git a/fs/cifs/inode.c b/fs/cifs/inode.c
|
||||
index 7899a40465b3..6d1dd0942937 100644
|
||||
--- a/fs/cifs/inode.c
|
||||
+++ b/fs/cifs/inode.c
|
||||
@@ -887,7 +887,7 @@ inode_has_hashed_dentries(struct inode *inode)
|
||||
struct dentry *dentry;
|
||||
|
||||
spin_lock(&inode->i_lock);
|
||||
- hlist_for_each_entry(dentry, &inode->i_dentry, d_alias) {
|
||||
+ hlist_for_each_entry(dentry, &inode->i_dentry, d_u.d_alias) {
|
||||
if (!d_unhashed(dentry) || IS_ROOT(dentry)) {
|
||||
spin_unlock(&inode->i_lock);
|
||||
return true;
|
||||
diff --git a/fs/coda/cache.c b/fs/coda/cache.c
|
||||
index 278f8fdeb9ef..46ee6f238985 100644
|
||||
--- a/fs/coda/cache.c
|
||||
+++ b/fs/coda/cache.c
|
||||
@@ -92,7 +92,7 @@ static void coda_flag_children(struct dentry *parent, int flag)
|
||||
struct dentry *de;
|
||||
|
||||
spin_lock(&parent->d_lock);
|
||||
- list_for_each_entry(de, &parent->d_subdirs, d_u.d_child) {
|
||||
+ list_for_each_entry(de, &parent->d_subdirs, d_child) {
|
||||
/* don't know what to do with negative dentries */
|
||||
if (de->d_inode )
|
||||
coda_flag_inode(de->d_inode, flag);
|
||||
diff --git a/fs/dcache.c b/fs/dcache.c
|
||||
index 34b40be8af11..8d7c2b34cb3f 100644
|
||||
--- a/fs/dcache.c
|
||||
+++ b/fs/dcache.c
|
||||
@@ -44,7 +44,7 @@
|
||||
/*
|
||||
* Usage:
|
||||
* dcache->d_inode->i_lock protects:
|
||||
- * - i_dentry, d_alias, d_inode of aliases
|
||||
+ * - i_dentry, d_u.d_alias, d_inode of aliases
|
||||
* dcache_hash_bucket lock protects:
|
||||
* - the dcache hash table
|
||||
* s_anon bl list spinlock protects:
|
||||
@@ -59,7 +59,7 @@
|
||||
* - d_unhashed()
|
||||
* - d_parent and d_subdirs
|
||||
* - childrens' d_child and d_parent
|
||||
- * - d_alias, d_inode
|
||||
+ * - d_u.d_alias, d_inode
|
||||
*
|
||||
* Ordering:
|
||||
* dentry->d_inode->i_lock
|
||||
@@ -239,7 +239,6 @@ static void __d_free(struct rcu_head *head)
|
||||
{
|
||||
struct dentry *dentry = container_of(head, struct dentry, d_u.d_rcu);
|
||||
|
||||
- WARN_ON(!hlist_unhashed(&dentry->d_alias));
|
||||
if (dname_external(dentry))
|
||||
kfree(dentry->d_name.name);
|
||||
kmem_cache_free(dentry_cache, dentry);
|
||||
@@ -247,6 +246,7 @@ static void __d_free(struct rcu_head *head)
|
||||
|
||||
static void dentry_free(struct dentry *dentry)
|
||||
{
|
||||
+ WARN_ON(!hlist_unhashed(&dentry->d_u.d_alias));
|
||||
/* if dentry was never visible to RCU, immediate free is OK */
|
||||
if (!(dentry->d_flags & DCACHE_RCUACCESS))
|
||||
__d_free(&dentry->d_u.d_rcu);
|
||||
@@ -280,7 +280,7 @@ static void dentry_iput(struct dentry * dentry)
|
||||
struct inode *inode = dentry->d_inode;
|
||||
if (inode) {
|
||||
dentry->d_inode = NULL;
|
||||
- hlist_del_init(&dentry->d_alias);
|
||||
+ hlist_del_init(&dentry->d_u.d_alias);
|
||||
spin_unlock(&dentry->d_lock);
|
||||
spin_unlock(&inode->i_lock);
|
||||
if (!inode->i_nlink)
|
||||
@@ -305,7 +305,7 @@ static void dentry_unlink_inode(struct dentry * dentry)
|
||||
struct inode *inode = dentry->d_inode;
|
||||
__d_clear_type(dentry);
|
||||
dentry->d_inode = NULL;
|
||||
- hlist_del_init(&dentry->d_alias);
|
||||
+ hlist_del_init(&dentry->d_u.d_alias);
|
||||
dentry_rcuwalk_barrier(dentry);
|
||||
spin_unlock(&dentry->d_lock);
|
||||
spin_unlock(&inode->i_lock);
|
||||
@@ -465,7 +465,7 @@ static void __dentry_kill(struct dentry *dentry)
|
||||
}
|
||||
/* if it was on the hash then remove it */
|
||||
__d_drop(dentry);
|
||||
- list_del(&dentry->d_u.d_child);
|
||||
+ list_del(&dentry->d_child);
|
||||
/*
|
||||
* Inform d_walk() that we are no longer attached to the
|
||||
* dentry tree
|
||||
@@ -746,7 +746,7 @@ static struct dentry *__d_find_alias(struct inode *inode)
|
||||
|
||||
again:
|
||||
discon_alias = NULL;
|
||||
- hlist_for_each_entry(alias, &inode->i_dentry, d_alias) {
|
||||
+ hlist_for_each_entry(alias, &inode->i_dentry, d_u.d_alias) {
|
||||
spin_lock(&alias->d_lock);
|
||||
if (S_ISDIR(inode->i_mode) || !d_unhashed(alias)) {
|
||||
if (IS_ROOT(alias) &&
|
||||
@@ -796,7 +796,7 @@ void d_prune_aliases(struct inode *inode)
|
||||
struct dentry *dentry;
|
||||
restart:
|
||||
spin_lock(&inode->i_lock);
|
||||
- hlist_for_each_entry(dentry, &inode->i_dentry, d_alias) {
|
||||
+ hlist_for_each_entry(dentry, &inode->i_dentry, d_u.d_alias) {
|
||||
spin_lock(&dentry->d_lock);
|
||||
if (!dentry->d_lockref.count) {
|
||||
/*
|
||||
@@ -1081,7 +1081,7 @@ repeat:
|
||||
resume:
|
||||
while (next != &this_parent->d_subdirs) {
|
||||
struct list_head *tmp = next;
|
||||
- struct dentry *dentry = list_entry(tmp, struct dentry, d_u.d_child);
|
||||
+ struct dentry *dentry = list_entry(tmp, struct dentry, d_child);
|
||||
next = tmp->next;
|
||||
|
||||
spin_lock_nested(&dentry->d_lock, DENTRY_D_LOCK_NESTED);
|
||||
@@ -1133,7 +1133,7 @@ resume:
|
||||
goto rename_retry;
|
||||
}
|
||||
rcu_read_unlock();
|
||||
- next = child->d_u.d_child.next;
|
||||
+ next = child->d_child.next;
|
||||
goto resume;
|
||||
}
|
||||
if (need_seqretry(&rename_lock, seq)) {
|
||||
@@ -1468,8 +1468,8 @@ struct dentry *__d_alloc(struct super_block *sb, const struct qstr *name)
|
||||
INIT_HLIST_BL_NODE(&dentry->d_hash);
|
||||
INIT_LIST_HEAD(&dentry->d_lru);
|
||||
INIT_LIST_HEAD(&dentry->d_subdirs);
|
||||
- INIT_HLIST_NODE(&dentry->d_alias);
|
||||
- INIT_LIST_HEAD(&dentry->d_u.d_child);
|
||||
+ INIT_HLIST_NODE(&dentry->d_u.d_alias);
|
||||
+ INIT_LIST_HEAD(&dentry->d_child);
|
||||
d_set_d_op(dentry, dentry->d_sb->s_d_op);
|
||||
|
||||
this_cpu_inc(nr_dentry);
|
||||
@@ -1499,7 +1499,7 @@ struct dentry *d_alloc(struct dentry * parent, const struct qstr *name)
|
||||
*/
|
||||
__dget_dlock(parent);
|
||||
dentry->d_parent = parent;
|
||||
- list_add(&dentry->d_u.d_child, &parent->d_subdirs);
|
||||
+ list_add(&dentry->d_child, &parent->d_subdirs);
|
||||
spin_unlock(&parent->d_lock);
|
||||
|
||||
return dentry;
|
||||
@@ -1592,7 +1592,7 @@ static void __d_instantiate(struct dentry *dentry, struct inode *inode)
|
||||
spin_lock(&dentry->d_lock);
|
||||
__d_set_type(dentry, add_flags);
|
||||
if (inode)
|
||||
- hlist_add_head(&dentry->d_alias, &inode->i_dentry);
|
||||
+ hlist_add_head(&dentry->d_u.d_alias, &inode->i_dentry);
|
||||
dentry->d_inode = inode;
|
||||
dentry_rcuwalk_barrier(dentry);
|
||||
spin_unlock(&dentry->d_lock);
|
||||
@@ -1616,7 +1616,7 @@ static void __d_instantiate(struct dentry *dentry, struct inode *inode)
|
||||
|
||||
void d_instantiate(struct dentry *entry, struct inode * inode)
|
||||
{
|
||||
- BUG_ON(!hlist_unhashed(&entry->d_alias));
|
||||
+ BUG_ON(!hlist_unhashed(&entry->d_u.d_alias));
|
||||
if (inode)
|
||||
spin_lock(&inode->i_lock);
|
||||
__d_instantiate(entry, inode);
|
||||
@@ -1655,7 +1655,7 @@ static struct dentry *__d_instantiate_unique(struct dentry *entry,
|
||||
return NULL;
|
||||
}
|
||||
|
||||
- hlist_for_each_entry(alias, &inode->i_dentry, d_alias) {
|
||||
+ hlist_for_each_entry(alias, &inode->i_dentry, d_u.d_alias) {
|
||||
/*
|
||||
* Don't need alias->d_lock here, because aliases with
|
||||
* d_parent == entry->d_parent are not subject to name or
|
||||
@@ -1681,7 +1681,7 @@ struct dentry *d_instantiate_unique(struct dentry *entry, struct inode *inode)
|
||||
{
|
||||
struct dentry *result;
|
||||
|
||||
- BUG_ON(!hlist_unhashed(&entry->d_alias));
|
||||
+ BUG_ON(!hlist_unhashed(&entry->d_u.d_alias));
|
||||
|
||||
if (inode)
|
||||
spin_lock(&inode->i_lock);
|
||||
@@ -1712,7 +1712,7 @@ EXPORT_SYMBOL(d_instantiate_unique);
|
||||
*/
|
||||
int d_instantiate_no_diralias(struct dentry *entry, struct inode *inode)
|
||||
{
|
||||
- BUG_ON(!hlist_unhashed(&entry->d_alias));
|
||||
+ BUG_ON(!hlist_unhashed(&entry->d_u.d_alias));
|
||||
|
||||
spin_lock(&inode->i_lock);
|
||||
if (S_ISDIR(inode->i_mode) && !hlist_empty(&inode->i_dentry)) {
|
||||
@@ -1751,7 +1751,7 @@ static struct dentry * __d_find_any_alias(struct inode *inode)
|
||||
|
||||
if (hlist_empty(&inode->i_dentry))
|
||||
return NULL;
|
||||
- alias = hlist_entry(inode->i_dentry.first, struct dentry, d_alias);
|
||||
+ alias = hlist_entry(inode->i_dentry.first, struct dentry, d_u.d_alias);
|
||||
__dget(alias);
|
||||
return alias;
|
||||
}
|
||||
@@ -1813,7 +1813,7 @@ static struct dentry *__d_obtain_alias(struct inode *inode, int disconnected)
|
||||
spin_lock(&tmp->d_lock);
|
||||
tmp->d_inode = inode;
|
||||
tmp->d_flags |= add_flags;
|
||||
- hlist_add_head(&tmp->d_alias, &inode->i_dentry);
|
||||
+ hlist_add_head(&tmp->d_u.d_alias, &inode->i_dentry);
|
||||
hlist_bl_lock(&tmp->d_sb->s_anon);
|
||||
hlist_bl_add_head(&tmp->d_hash, &tmp->d_sb->s_anon);
|
||||
hlist_bl_unlock(&tmp->d_sb->s_anon);
|
||||
@@ -2248,7 +2248,7 @@ int d_validate(struct dentry *dentry, struct dentry *dparent)
|
||||
struct dentry *child;
|
||||
|
||||
spin_lock(&dparent->d_lock);
|
||||
- list_for_each_entry(child, &dparent->d_subdirs, d_u.d_child) {
|
||||
+ list_for_each_entry(child, &dparent->d_subdirs, d_child) {
|
||||
if (dentry == child) {
|
||||
spin_lock_nested(&dentry->d_lock, DENTRY_D_LOCK_NESTED);
|
||||
__dget_dlock(dentry);
|
||||
@@ -2525,13 +2525,13 @@ static void __d_move(struct dentry *dentry, struct dentry *target,
|
||||
/* splicing a tree */
|
||||
dentry->d_parent = target->d_parent;
|
||||
target->d_parent = target;
|
||||
- list_del_init(&target->d_u.d_child);
|
||||
- list_move(&dentry->d_u.d_child, &dentry->d_parent->d_subdirs);
|
||||
+ list_del_init(&target->d_child);
|
||||
+ list_move(&dentry->d_child, &dentry->d_parent->d_subdirs);
|
||||
} else {
|
||||
/* swapping two dentries */
|
||||
swap(dentry->d_parent, target->d_parent);
|
||||
- list_move(&target->d_u.d_child, &target->d_parent->d_subdirs);
|
||||
- list_move(&dentry->d_u.d_child, &dentry->d_parent->d_subdirs);
|
||||
+ list_move(&target->d_child, &target->d_parent->d_subdirs);
|
||||
+ list_move(&dentry->d_child, &dentry->d_parent->d_subdirs);
|
||||
if (exchange)
|
||||
fsnotify_d_move(target);
|
||||
fsnotify_d_move(dentry);
|
||||
@@ -3322,7 +3322,7 @@ void d_tmpfile(struct dentry *dentry, struct inode *inode)
|
||||
{
|
||||
inode_dec_link_count(inode);
|
||||
BUG_ON(dentry->d_name.name != dentry->d_iname ||
|
||||
- !hlist_unhashed(&dentry->d_alias) ||
|
||||
+ !hlist_unhashed(&dentry->d_u.d_alias) ||
|
||||
!d_unlinked(dentry));
|
||||
spin_lock(&dentry->d_parent->d_lock);
|
||||
spin_lock_nested(&dentry->d_lock, DENTRY_D_LOCK_NESTED);
|
||||
diff --git a/fs/debugfs/inode.c b/fs/debugfs/inode.c
|
||||
index 1e3b99d3db0d..05f2960ed7c3 100644
|
||||
--- a/fs/debugfs/inode.c
|
||||
+++ b/fs/debugfs/inode.c
|
||||
@@ -553,7 +553,7 @@ void debugfs_remove_recursive(struct dentry *dentry)
|
||||
* use the d_u.d_child as the rcu head and corrupt this list.
|
||||
*/
|
||||
spin_lock(&parent->d_lock);
|
||||
- list_for_each_entry(child, &parent->d_subdirs, d_u.d_child) {
|
||||
+ list_for_each_entry(child, &parent->d_subdirs, d_child) {
|
||||
if (!debugfs_positive(child))
|
||||
continue;
|
||||
|
||||
diff --git a/fs/exportfs/expfs.c b/fs/exportfs/expfs.c
|
||||
index b01fbfb51f43..a3aa6baad1a1 100644
|
||||
--- a/fs/exportfs/expfs.c
|
||||
+++ b/fs/exportfs/expfs.c
|
||||
@@ -50,7 +50,7 @@ find_acceptable_alias(struct dentry *result,
|
||||
|
||||
inode = result->d_inode;
|
||||
spin_lock(&inode->i_lock);
|
||||
- hlist_for_each_entry(dentry, &inode->i_dentry, d_alias) {
|
||||
+ hlist_for_each_entry(dentry, &inode->i_dentry, d_u.d_alias) {
|
||||
dget(dentry);
|
||||
spin_unlock(&inode->i_lock);
|
||||
if (toput)
|
||||
diff --git a/fs/libfs.c b/fs/libfs.c
|
||||
index 88e3e00e2eca..e801b983b46b 100644
|
||||
--- a/fs/libfs.c
|
||||
+++ b/fs/libfs.c
|
||||
@@ -114,18 +114,18 @@ loff_t dcache_dir_lseek(struct file *file, loff_t offset, int whence)
|
||||
|
||||
spin_lock(&dentry->d_lock);
|
||||
/* d_lock not required for cursor */
|
||||
- list_del(&cursor->d_u.d_child);
|
||||
+ list_del(&cursor->d_child);
|
||||
p = dentry->d_subdirs.next;
|
||||
while (n && p != &dentry->d_subdirs) {
|
||||
struct dentry *next;
|
||||
- next = list_entry(p, struct dentry, d_u.d_child);
|
||||
+ next = list_entry(p, struct dentry, d_child);
|
||||
spin_lock_nested(&next->d_lock, DENTRY_D_LOCK_NESTED);
|
||||
if (simple_positive(next))
|
||||
n--;
|
||||
spin_unlock(&next->d_lock);
|
||||
p = p->next;
|
||||
}
|
||||
- list_add_tail(&cursor->d_u.d_child, p);
|
||||
+ list_add_tail(&cursor->d_child, p);
|
||||
spin_unlock(&dentry->d_lock);
|
||||
}
|
||||
}
|
||||
@@ -150,7 +150,7 @@ int dcache_readdir(struct file *file, struct dir_context *ctx)
|
||||
{
|
||||
struct dentry *dentry = file->f_path.dentry;
|
||||
struct dentry *cursor = file->private_data;
|
||||
- struct list_head *p, *q = &cursor->d_u.d_child;
|
||||
+ struct list_head *p, *q = &cursor->d_child;
|
||||
|
||||
if (!dir_emit_dots(file, ctx))
|
||||
return 0;
|
||||
@@ -159,7 +159,7 @@ int dcache_readdir(struct file *file, struct dir_context *ctx)
|
||||
list_move(q, &dentry->d_subdirs);
|
||||
|
||||
for (p = q->next; p != &dentry->d_subdirs; p = p->next) {
|
||||
- struct dentry *next = list_entry(p, struct dentry, d_u.d_child);
|
||||
+ struct dentry *next = list_entry(p, struct dentry, d_child);
|
||||
spin_lock_nested(&next->d_lock, DENTRY_D_LOCK_NESTED);
|
||||
if (!simple_positive(next)) {
|
||||
spin_unlock(&next->d_lock);
|
||||
@@ -287,7 +287,7 @@ int simple_empty(struct dentry *dentry)
|
||||
int ret = 0;
|
||||
|
||||
spin_lock(&dentry->d_lock);
|
||||
- list_for_each_entry(child, &dentry->d_subdirs, d_u.d_child) {
|
||||
+ list_for_each_entry(child, &dentry->d_subdirs, d_child) {
|
||||
spin_lock_nested(&child->d_lock, DENTRY_D_LOCK_NESTED);
|
||||
if (simple_positive(child)) {
|
||||
spin_unlock(&child->d_lock);
|
||||
diff --git a/fs/ncpfs/dir.c b/fs/ncpfs/dir.c
|
||||
index 08b8ea8c353e..3a8ed0fb07be 100644
|
||||
--- a/fs/ncpfs/dir.c
|
||||
+++ b/fs/ncpfs/dir.c
|
||||
@@ -406,7 +406,7 @@ ncp_dget_fpos(struct dentry *dentry, struct dentry *parent, unsigned long fpos)
|
||||
spin_lock(&parent->d_lock);
|
||||
next = parent->d_subdirs.next;
|
||||
while (next != &parent->d_subdirs) {
|
||||
- dent = list_entry(next, struct dentry, d_u.d_child);
|
||||
+ dent = list_entry(next, struct dentry, d_child);
|
||||
if ((unsigned long)dent->d_fsdata == fpos) {
|
||||
if (dent->d_inode)
|
||||
dget(dent);
|
||||
diff --git a/fs/ncpfs/ncplib_kernel.h b/fs/ncpfs/ncplib_kernel.h
|
||||
index 32c06587351a..6d5e7c56c79d 100644
|
||||
--- a/fs/ncpfs/ncplib_kernel.h
|
||||
+++ b/fs/ncpfs/ncplib_kernel.h
|
||||
@@ -194,7 +194,7 @@ ncp_renew_dentries(struct dentry *parent)
|
||||
spin_lock(&parent->d_lock);
|
||||
next = parent->d_subdirs.next;
|
||||
while (next != &parent->d_subdirs) {
|
||||
- dentry = list_entry(next, struct dentry, d_u.d_child);
|
||||
+ dentry = list_entry(next, struct dentry, d_child);
|
||||
|
||||
if (dentry->d_fsdata == NULL)
|
||||
ncp_age_dentry(server, dentry);
|
||||
@@ -216,7 +216,7 @@ ncp_invalidate_dircache_entries(struct dentry *parent)
|
||||
spin_lock(&parent->d_lock);
|
||||
next = parent->d_subdirs.next;
|
||||
while (next != &parent->d_subdirs) {
|
||||
- dentry = list_entry(next, struct dentry, d_u.d_child);
|
||||
+ dentry = list_entry(next, struct dentry, d_child);
|
||||
dentry->d_fsdata = NULL;
|
||||
ncp_age_dentry(server, dentry);
|
||||
next = next->next;
|
||||
diff --git a/fs/nfs/getroot.c b/fs/nfs/getroot.c
|
||||
index 880618a8b048..ebc6a0add5ae 100644
|
||||
--- a/fs/nfs/getroot.c
|
||||
+++ b/fs/nfs/getroot.c
|
||||
@@ -58,7 +58,7 @@ static int nfs_superblock_set_dummy_root(struct super_block *sb, struct inode *i
|
||||
*/
|
||||
spin_lock(&sb->s_root->d_inode->i_lock);
|
||||
spin_lock(&sb->s_root->d_lock);
|
||||
- hlist_del_init(&sb->s_root->d_alias);
|
||||
+ hlist_del_init(&sb->s_root->d_u.d_alias);
|
||||
spin_unlock(&sb->s_root->d_lock);
|
||||
spin_unlock(&sb->s_root->d_inode->i_lock);
|
||||
}
|
||||
diff --git a/fs/notify/fsnotify.c b/fs/notify/fsnotify.c
|
||||
index 9d3e9c50066a..700129940c6e 100644
|
||||
--- a/fs/notify/fsnotify.c
|
||||
+++ b/fs/notify/fsnotify.c
|
||||
@@ -63,14 +63,14 @@ void __fsnotify_update_child_dentry_flags(struct inode *inode)
|
||||
spin_lock(&inode->i_lock);
|
||||
/* run all of the dentries associated with this inode. Since this is a
|
||||
* directory, there damn well better only be one item on this list */
|
||||
- hlist_for_each_entry(alias, &inode->i_dentry, d_alias) {
|
||||
+ hlist_for_each_entry(alias, &inode->i_dentry, d_u.d_alias) {
|
||||
struct dentry *child;
|
||||
|
||||
/* run all of the children of the original inode and fix their
|
||||
* d_flags to indicate parental interest (their parent is the
|
||||
* original inode) */
|
||||
spin_lock(&alias->d_lock);
|
||||
- list_for_each_entry(child, &alias->d_subdirs, d_u.d_child) {
|
||||
+ list_for_each_entry(child, &alias->d_subdirs, d_child) {
|
||||
if (!child->d_inode)
|
||||
continue;
|
||||
|
||||
diff --git a/fs/ocfs2/dcache.c b/fs/ocfs2/dcache.c
|
||||
index e2e05a106beb..92edcfc23c1c 100644
|
||||
--- a/fs/ocfs2/dcache.c
|
||||
+++ b/fs/ocfs2/dcache.c
|
||||
@@ -172,7 +172,7 @@ struct dentry *ocfs2_find_local_alias(struct inode *inode,
|
||||
struct dentry *dentry;
|
||||
|
||||
spin_lock(&inode->i_lock);
|
||||
- hlist_for_each_entry(dentry, &inode->i_dentry, d_alias) {
|
||||
+ hlist_for_each_entry(dentry, &inode->i_dentry, d_u.d_alias) {
|
||||
spin_lock(&dentry->d_lock);
|
||||
if (ocfs2_match_dentry(dentry, parent_blkno, skip_unhashed)) {
|
||||
trace_ocfs2_find_local_alias(dentry->d_name.len,
|
||||
diff --git a/include/linux/dcache.h b/include/linux/dcache.h
|
||||
index 75a227cc7ce2..82b5d1c2b856 100644
|
||||
--- a/include/linux/dcache.h
|
||||
+++ b/include/linux/dcache.h
|
||||
@@ -125,15 +125,15 @@ struct dentry {
|
||||
void *d_fsdata; /* fs-specific data */
|
||||
|
||||
struct list_head d_lru; /* LRU list */
|
||||
+ struct list_head d_child; /* child of parent list */
|
||||
+ struct list_head d_subdirs; /* our children */
|
||||
/*
|
||||
- * d_child and d_rcu can share memory
|
||||
+ * d_alias and d_rcu can share memory
|
||||
*/
|
||||
union {
|
||||
- struct list_head d_child; /* child of parent list */
|
||||
+ struct hlist_node d_alias; /* inode alias list */
|
||||
struct rcu_head d_rcu;
|
||||
} d_u;
|
||||
- struct list_head d_subdirs; /* our children */
|
||||
- struct hlist_node d_alias; /* inode alias list */
|
||||
};
|
||||
|
||||
/*
|
||||
diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
|
||||
index 15209335888d..09acba6e908a 100644
|
||||
--- a/kernel/trace/trace.c
|
||||
+++ b/kernel/trace/trace.c
|
||||
@@ -6411,7 +6411,7 @@ static int instance_mkdir (struct inode *inode, struct dentry *dentry, umode_t m
|
||||
int ret;
|
||||
|
||||
/* Paranoid: Make sure the parent is the "instances" directory */
|
||||
- parent = hlist_entry(inode->i_dentry.first, struct dentry, d_alias);
|
||||
+ parent = hlist_entry(inode->i_dentry.first, struct dentry, d_u.d_alias);
|
||||
if (WARN_ON_ONCE(parent != trace_instance_dir))
|
||||
return -ENOENT;
|
||||
|
||||
@@ -6438,7 +6438,7 @@ static int instance_rmdir(struct inode *inode, struct dentry *dentry)
|
||||
int ret;
|
||||
|
||||
/* Paranoid: Make sure the parent is the "instances" directory */
|
||||
- parent = hlist_entry(inode->i_dentry.first, struct dentry, d_alias);
|
||||
+ parent = hlist_entry(inode->i_dentry.first, struct dentry, d_u.d_alias);
|
||||
if (WARN_ON_ONCE(parent != trace_instance_dir))
|
||||
return -ENOENT;
|
||||
|
||||
diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c
|
||||
index ef06ce7e9cf8..85f9d33b4ad8 100644
|
||||
--- a/kernel/trace/trace_events.c
|
||||
+++ b/kernel/trace/trace_events.c
|
||||
@@ -461,7 +461,7 @@ static void remove_event_file_dir(struct ftrace_event_file *file)
|
||||
|
||||
if (dir) {
|
||||
spin_lock(&dir->d_lock); /* probably unneeded */
|
||||
- list_for_each_entry(child, &dir->d_subdirs, d_u.d_child) {
|
||||
+ list_for_each_entry(child, &dir->d_subdirs, d_child) {
|
||||
if (child->d_inode) /* probably unneeded */
|
||||
child->d_inode->i_private = NULL;
|
||||
}
|
||||
diff --git a/security/selinux/selinuxfs.c b/security/selinux/selinuxfs.c
|
||||
index c71737f6d1cc..33db1ad4fd10 100644
|
||||
--- a/security/selinux/selinuxfs.c
|
||||
+++ b/security/selinux/selinuxfs.c
|
||||
@@ -1200,7 +1200,7 @@ static void sel_remove_entries(struct dentry *de)
|
||||
spin_lock(&de->d_lock);
|
||||
node = de->d_subdirs.next;
|
||||
while (node != &de->d_subdirs) {
|
||||
- struct dentry *d = list_entry(node, struct dentry, d_u.d_child);
|
||||
+ struct dentry *d = list_entry(node, struct dentry, d_child);
|
||||
|
||||
spin_lock_nested(&d->d_lock, DENTRY_D_LOCK_NESTED);
|
||||
list_del_init(node);
|
||||
@@ -1674,12 +1674,12 @@ static void sel_remove_classes(void)
|
||||
|
||||
list_for_each(class_node, &class_dir->d_subdirs) {
|
||||
struct dentry *class_subdir = list_entry(class_node,
|
||||
- struct dentry, d_u.d_child);
|
||||
+ struct dentry, d_child);
|
||||
struct list_head *class_subdir_node;
|
||||
|
||||
list_for_each(class_subdir_node, &class_subdir->d_subdirs) {
|
||||
struct dentry *d = list_entry(class_subdir_node,
|
||||
- struct dentry, d_u.d_child);
|
||||
+ struct dentry, d_child);
|
||||
|
||||
if (d->d_inode)
|
||||
if (d->d_inode->i_mode & S_IFDIR)
|
||||
--
|
||||
2.1.0
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
commit d47fb4ec7e101a63754939fa49d75fd7e81e94f8
|
||||
Author: Ashutosh Dixit <ashutosh.dixit@intel.com>
|
||||
Date: Thu Dec 4 13:27:29 2014 -0800
|
||||
|
||||
Documentation: Build mic/mpssd only for x86_64
|
||||
|
||||
mic/mpssd along with MIC drivers are currently only usable on
|
||||
x86_64. So build mic/mpssd only for x86_64 to avoid build breaks on
|
||||
big-endian systems.
|
||||
|
||||
Reported-by: Daniel Borkmann <dborkman@redhat.com>
|
||||
Reported-by: Dan Streetman <ddstreet@gmail.com>
|
||||
Suggested-by: Peter Foley <pefoley2@pefoley.com>
|
||||
Signed-off-by: Ashutosh Dixit <ashutosh.dixit@intel.com>
|
||||
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
|
||||
|
||||
diff --git a/Documentation/mic/mpssd/Makefile b/Documentation/mic/mpssd/Makefile
|
||||
index 0f31568..f47fe6b 100644
|
||||
--- a/Documentation/mic/mpssd/Makefile
|
||||
+++ b/Documentation/mic/mpssd/Makefile
|
||||
@@ -1,5 +1,5 @@
|
||||
# List of programs to build
|
||||
-hostprogs-y := mpssd
|
||||
+hostprogs-$(CONFIG_X86_64) := mpssd
|
||||
|
||||
mpssd-objs := mpssd.o sysfs.o
|
||||
|
|
@ -1,91 +0,0 @@
|
|||
From db29a9508a9246e77087c5531e45b2c88ec6988b Mon Sep 17 00:00:00 2001
|
||||
From: Florian Westphal <fw@strlen.de>
|
||||
Date: Fri, 26 Sep 2014 11:35:42 +0200
|
||||
Subject: [PATCH] netfilter: conntrack: disable generic tracking for known
|
||||
protocols
|
||||
|
||||
Given following iptables ruleset:
|
||||
|
||||
-P FORWARD DROP
|
||||
-A FORWARD -m sctp --dport 9 -j ACCEPT
|
||||
-A FORWARD -p tcp --dport 80 -j ACCEPT
|
||||
-A FORWARD -p tcp -m conntrack -m state ESTABLISHED,RELATED -j ACCEPT
|
||||
|
||||
One would assume that this allows SCTP on port 9 and TCP on port 80.
|
||||
Unfortunately, if the SCTP conntrack module is not loaded, this allows
|
||||
*all* SCTP communication, to pass though, i.e. -p sctp -j ACCEPT,
|
||||
which we think is a security issue.
|
||||
|
||||
This is because on the first SCTP packet on port 9, we create a dummy
|
||||
"generic l4" conntrack entry without any port information (since
|
||||
conntrack doesn't know how to extract this information).
|
||||
|
||||
All subsequent packets that are unknown will then be in established
|
||||
state since they will fallback to proto_generic and will match the
|
||||
'generic' entry.
|
||||
|
||||
Our originally proposed version [1] completely disabled generic protocol
|
||||
tracking, but Jozsef suggests to not track protocols for which a more
|
||||
suitable helper is available, hence we now mitigate the issue for in
|
||||
tree known ct protocol helpers only, so that at least NAT and direction
|
||||
information will still be preserved for others.
|
||||
|
||||
[1] http://www.spinics.net/lists/netfilter-devel/msg33430.html
|
||||
|
||||
Joint work with Daniel Borkmann.
|
||||
|
||||
Signed-off-by: Florian Westphal <fw@strlen.de>
|
||||
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
|
||||
Acked-by: Jozsef Kadlecsik <kadlec@blackhole.kfki.hu>
|
||||
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
|
||||
---
|
||||
net/netfilter/nf_conntrack_proto_generic.c | 26 +++++++++++++++++++++++++-
|
||||
1 file changed, 25 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/net/netfilter/nf_conntrack_proto_generic.c b/net/netfilter/nf_conntrack_proto_generic.c
|
||||
index d25f29377648..957c1db66652 100644
|
||||
--- a/net/netfilter/nf_conntrack_proto_generic.c
|
||||
+++ b/net/netfilter/nf_conntrack_proto_generic.c
|
||||
@@ -14,6 +14,30 @@
|
||||
|
||||
static unsigned int nf_ct_generic_timeout __read_mostly = 600*HZ;
|
||||
|
||||
+static bool nf_generic_should_process(u8 proto)
|
||||
+{
|
||||
+ switch (proto) {
|
||||
+#ifdef CONFIG_NF_CT_PROTO_SCTP_MODULE
|
||||
+ case IPPROTO_SCTP:
|
||||
+ return false;
|
||||
+#endif
|
||||
+#ifdef CONFIG_NF_CT_PROTO_DCCP_MODULE
|
||||
+ case IPPROTO_DCCP:
|
||||
+ return false;
|
||||
+#endif
|
||||
+#ifdef CONFIG_NF_CT_PROTO_GRE_MODULE
|
||||
+ case IPPROTO_GRE:
|
||||
+ return false;
|
||||
+#endif
|
||||
+#ifdef CONFIG_NF_CT_PROTO_UDPLITE_MODULE
|
||||
+ case IPPROTO_UDPLITE:
|
||||
+ return false;
|
||||
+#endif
|
||||
+ default:
|
||||
+ return true;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
static inline struct nf_generic_net *generic_pernet(struct net *net)
|
||||
{
|
||||
return &net->ct.nf_ct_proto.generic;
|
||||
@@ -67,7 +91,7 @@ static int generic_packet(struct nf_conn *ct,
|
||||
static bool generic_new(struct nf_conn *ct, const struct sk_buff *skb,
|
||||
unsigned int dataoff, unsigned int *timeouts)
|
||||
{
|
||||
- return true;
|
||||
+ return nf_generic_should_process(nf_ct_protonum(ct));
|
||||
}
|
||||
|
||||
#if IS_ENABLED(CONFIG_NF_CT_NETLINK_TIMEOUT)
|
||||
--
|
||||
2.1.0
|
||||
|
|
@ -1,30 +0,0 @@
|
|||
From: Kyle McMartin <kmcmarti@redhat.com>
|
||||
Date: Mon, 2 Jun 2014 15:11:01 -0400
|
||||
Subject: [PATCH] perf: install trace-event plugins
|
||||
|
||||
perf hardcodes $libdir to be lib for all but x86_64, so kludge around it
|
||||
until upstream gets their act together.
|
||||
---
|
||||
tools/perf/config/Makefile | 4 ++++
|
||||
1 file changed, 4 insertions(+)
|
||||
|
||||
diff --git a/tools/perf/config/Makefile b/tools/perf/config/Makefile
|
||||
index 86c21a24da46..bf0fe97bd358 100644
|
||||
--- a/tools/perf/config/Makefile
|
||||
+++ b/tools/perf/config/Makefile
|
||||
@@ -642,8 +642,12 @@ endif
|
||||
ifeq ($(IS_X86_64),1)
|
||||
lib = lib64
|
||||
else
|
||||
+ifdef MULTILIBDIR
|
||||
+lib = $(MULTILIBDIR)
|
||||
+else
|
||||
lib = lib
|
||||
endif
|
||||
+endif
|
||||
libdir = $(prefix)/$(lib)
|
||||
|
||||
# Shell quote (do not use $(call) to accommodate ancient setups);
|
||||
--
|
||||
1.9.3
|
||||
|
|
@ -1,24 +0,0 @@
|
|||
From: Peter Robinson <pbrobinson@gmail.com>
|
||||
Date: Mon, 6 Oct 2014 15:15:15 +0100
|
||||
Subject: [PATCH] ppc64-fixtools
|
||||
|
||||
Build tools on ppc64le (rhbz 1138884), Some minor ppc64 cleanups
|
||||
---
|
||||
tools/perf/arch/powerpc/util/skip-callchain-idx.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/tools/perf/arch/powerpc/util/skip-callchain-idx.c b/tools/perf/arch/powerpc/util/skip-callchain-idx.c
|
||||
index a7c23a4b3778..d73ef8bb08c7 100644
|
||||
--- a/tools/perf/arch/powerpc/util/skip-callchain-idx.c
|
||||
+++ b/tools/perf/arch/powerpc/util/skip-callchain-idx.c
|
||||
@@ -15,6 +15,7 @@
|
||||
|
||||
#include "util/thread.h"
|
||||
#include "util/callchain.h"
|
||||
+#include "util/debug.h"
|
||||
|
||||
/*
|
||||
* When saving the callchain on Power, the kernel conservatively saves
|
||||
--
|
||||
1.9.3
|
||||
|
|
@ -1,99 +0,0 @@
|
|||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Fri, 27 Jun 2014 18:46:42 +0200
|
||||
Subject: [PATCH] psmouse: Add psmouse_matches_pnp_id helper function
|
||||
|
||||
The matches_pnp_id function from the synaptics driver is useful for other
|
||||
drivers too. Make it a generic psmouse helper function.
|
||||
|
||||
Bugzilla: 1110011
|
||||
Upstream-status: sent for 3.17/3.18
|
||||
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
---
|
||||
drivers/input/mouse/psmouse-base.c | 14 ++++++++++++++
|
||||
drivers/input/mouse/psmouse.h | 1 +
|
||||
drivers/input/mouse/synaptics.c | 17 +++--------------
|
||||
3 files changed, 18 insertions(+), 14 deletions(-)
|
||||
|
||||
diff --git a/drivers/input/mouse/psmouse-base.c b/drivers/input/mouse/psmouse-base.c
|
||||
index b4e1f014ddc2..02e68c3008a3 100644
|
||||
--- a/drivers/input/mouse/psmouse-base.c
|
||||
+++ b/drivers/input/mouse/psmouse-base.c
|
||||
@@ -462,6 +462,20 @@ static int psmouse_poll(struct psmouse *psmouse)
|
||||
PSMOUSE_CMD_POLL | (psmouse->pktsize << 8));
|
||||
}
|
||||
|
||||
+/*
|
||||
+ * psmouse_matches_pnp_id - check if psmouse matches one of the passed in ids.
|
||||
+ */
|
||||
+bool psmouse_matches_pnp_id(struct psmouse *psmouse, const char * const ids[])
|
||||
+{
|
||||
+ int i;
|
||||
+
|
||||
+ if (!strncmp(psmouse->ps2dev.serio->firmware_id, "PNP:", 4))
|
||||
+ for (i = 0; ids[i]; i++)
|
||||
+ if (strstr(psmouse->ps2dev.serio->firmware_id, ids[i]))
|
||||
+ return true;
|
||||
+
|
||||
+ return false;
|
||||
+}
|
||||
|
||||
/*
|
||||
* Genius NetMouse magic init.
|
||||
diff --git a/drivers/input/mouse/psmouse.h b/drivers/input/mouse/psmouse.h
|
||||
index 2f0b39d59a9b..f4cf664c7db3 100644
|
||||
--- a/drivers/input/mouse/psmouse.h
|
||||
+++ b/drivers/input/mouse/psmouse.h
|
||||
@@ -108,6 +108,7 @@ void psmouse_set_resolution(struct psmouse *psmouse, unsigned int resolution);
|
||||
psmouse_ret_t psmouse_process_byte(struct psmouse *psmouse);
|
||||
int psmouse_activate(struct psmouse *psmouse);
|
||||
int psmouse_deactivate(struct psmouse *psmouse);
|
||||
+bool psmouse_matches_pnp_id(struct psmouse *psmouse, const char * const ids[]);
|
||||
|
||||
struct psmouse_attribute {
|
||||
struct device_attribute dattr;
|
||||
diff --git a/drivers/input/mouse/synaptics.c b/drivers/input/mouse/synaptics.c
|
||||
index fd23181c1fb7..6394d9b5bfd3 100644
|
||||
--- a/drivers/input/mouse/synaptics.c
|
||||
+++ b/drivers/input/mouse/synaptics.c
|
||||
@@ -185,18 +185,6 @@ static const char * const topbuttonpad_pnp_ids[] = {
|
||||
NULL
|
||||
};
|
||||
|
||||
-static bool matches_pnp_id(struct psmouse *psmouse, const char * const ids[])
|
||||
-{
|
||||
- int i;
|
||||
-
|
||||
- if (!strncmp(psmouse->ps2dev.serio->firmware_id, "PNP:", 4))
|
||||
- for (i = 0; ids[i]; i++)
|
||||
- if (strstr(psmouse->ps2dev.serio->firmware_id, ids[i]))
|
||||
- return true;
|
||||
-
|
||||
- return false;
|
||||
-}
|
||||
-
|
||||
/*****************************************************************************
|
||||
* Synaptics communications functions
|
||||
****************************************************************************/
|
||||
@@ -362,7 +350,8 @@ static int synaptics_resolution(struct psmouse *psmouse)
|
||||
}
|
||||
|
||||
for (i = 0; min_max_pnpid_table[i].pnp_ids; i++) {
|
||||
- if (matches_pnp_id(psmouse, min_max_pnpid_table[i].pnp_ids)) {
|
||||
+ if (psmouse_matches_pnp_id(psmouse,
|
||||
+ min_max_pnpid_table[i].pnp_ids)) {
|
||||
priv->x_min = min_max_pnpid_table[i].x_min;
|
||||
priv->x_max = min_max_pnpid_table[i].x_max;
|
||||
priv->y_min = min_max_pnpid_table[i].y_min;
|
||||
@@ -1492,7 +1481,7 @@ static void set_input_params(struct psmouse *psmouse,
|
||||
|
||||
if (SYN_CAP_CLICKPAD(priv->ext_cap_0c)) {
|
||||
__set_bit(INPUT_PROP_BUTTONPAD, dev->propbit);
|
||||
- if (matches_pnp_id(psmouse, topbuttonpad_pnp_ids))
|
||||
+ if (psmouse_matches_pnp_id(psmouse, topbuttonpad_pnp_ids))
|
||||
__set_bit(INPUT_PROP_TOPBUTTONPAD, dev->propbit);
|
||||
/* Clickpads report only left button */
|
||||
__clear_bit(BTN_RIGHT, dev->keybit);
|
||||
--
|
||||
1.9.3
|
||||
|
|
@ -1,157 +0,0 @@
|
|||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Fri, 27 Jun 2014 18:50:33 +0200
|
||||
Subject: [PATCH] psmouse: Add support for detecting FocalTech PS/2 touchpads
|
||||
|
||||
The Asus X450 and X550 laptops use a PS/2 touchpad from a new manufacturer
|
||||
called FocalTech:
|
||||
|
||||
https://bugzilla.kernel.org/show_bug.cgi?id=77391
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=1110011
|
||||
|
||||
The protocol for these devices is not known at this time, but even without
|
||||
knowing the protocol they need some special handling. They get upset by some
|
||||
of our other PS/2 device probing, and once upset generate random mouse events
|
||||
making things unusable even with an external mouse.
|
||||
|
||||
This patch adds detection of these devices based on their pnp ids, and when
|
||||
they are detected, treats them as a bare ps/2 mouse. Doing things this way
|
||||
they at least work in their ps/2 mouse emulation mode.
|
||||
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
---
|
||||
drivers/input/mouse/Makefile | 2 +-
|
||||
drivers/input/mouse/focaltech.c | 44 ++++++++++++++++++++++++++++++++++++++
|
||||
drivers/input/mouse/focaltech.h | 21 ++++++++++++++++++
|
||||
drivers/input/mouse/psmouse-base.c | 10 +++++++++
|
||||
4 files changed, 76 insertions(+), 1 deletion(-)
|
||||
create mode 100644 drivers/input/mouse/focaltech.c
|
||||
create mode 100644 drivers/input/mouse/focaltech.h
|
||||
|
||||
diff --git a/drivers/input/mouse/Makefile b/drivers/input/mouse/Makefile
|
||||
index c25efdb3f288..dda507f8b3a2 100644
|
||||
--- a/drivers/input/mouse/Makefile
|
||||
+++ b/drivers/input/mouse/Makefile
|
||||
@@ -23,7 +23,7 @@ obj-$(CONFIG_MOUSE_SYNAPTICS_I2C) += synaptics_i2c.o
|
||||
obj-$(CONFIG_MOUSE_SYNAPTICS_USB) += synaptics_usb.o
|
||||
obj-$(CONFIG_MOUSE_VSXXXAA) += vsxxxaa.o
|
||||
|
||||
-psmouse-objs := psmouse-base.o synaptics.o
|
||||
+psmouse-objs := psmouse-base.o synaptics.o focaltech.o
|
||||
|
||||
psmouse-$(CONFIG_MOUSE_PS2_ALPS) += alps.o
|
||||
psmouse-$(CONFIG_MOUSE_PS2_ELANTECH) += elantech.o
|
||||
diff --git a/drivers/input/mouse/focaltech.c b/drivers/input/mouse/focaltech.c
|
||||
new file mode 100644
|
||||
index 000000000000..d83a23554d63
|
||||
--- /dev/null
|
||||
+++ b/drivers/input/mouse/focaltech.c
|
||||
@@ -0,0 +1,44 @@
|
||||
+/*
|
||||
+ * Focaltech TouchPad PS/2 mouse driver
|
||||
+ *
|
||||
+ * Copyright (c) 2014 Red Hat Inc.
|
||||
+ *
|
||||
+ * This program is free software; you can redistribute it and/or modify
|
||||
+ * it under the terms of the GNU General Public License as published by
|
||||
+ * the Free Software Foundation; either version 2 of the License, or
|
||||
+ * (at your option) any later version.
|
||||
+ *
|
||||
+ * Red Hat authors:
|
||||
+ *
|
||||
+ * Hans de Goede <hdegoede@redhat.com>
|
||||
+ */
|
||||
+
|
||||
+/*
|
||||
+ * The Focaltech PS/2 touchpad protocol is unknown. This drivers deals with
|
||||
+ * detection only, to avoid further detection attempts confusing the touchpad
|
||||
+ * this way it at least works in PS/2 mouse compatibility mode.
|
||||
+ */
|
||||
+
|
||||
+#include <linux/device.h>
|
||||
+#include <linux/libps2.h>
|
||||
+#include "psmouse.h"
|
||||
+
|
||||
+static const char * const focaltech_pnp_ids[] = {
|
||||
+ "FLT0101",
|
||||
+ "FLT0102",
|
||||
+ "FLT0103",
|
||||
+ NULL
|
||||
+};
|
||||
+
|
||||
+int focaltech_detect(struct psmouse *psmouse, bool set_properties)
|
||||
+{
|
||||
+ if (!psmouse_matches_pnp_id(psmouse, focaltech_pnp_ids))
|
||||
+ return -ENODEV;
|
||||
+
|
||||
+ if (set_properties) {
|
||||
+ psmouse->vendor = "FocalTech";
|
||||
+ psmouse->name = "FocalTech Touchpad in mouse emulation mode";
|
||||
+ }
|
||||
+
|
||||
+ return 0;
|
||||
+}
|
||||
diff --git a/drivers/input/mouse/focaltech.h b/drivers/input/mouse/focaltech.h
|
||||
new file mode 100644
|
||||
index 000000000000..0d0fc49451fe
|
||||
--- /dev/null
|
||||
+++ b/drivers/input/mouse/focaltech.h
|
||||
@@ -0,0 +1,21 @@
|
||||
+/*
|
||||
+ * Focaltech TouchPad PS/2 mouse driver
|
||||
+ *
|
||||
+ * Copyright (c) 2014 Red Hat Inc.
|
||||
+ *
|
||||
+ * This program is free software; you can redistribute it and/or modify
|
||||
+ * it under the terms of the GNU General Public License as published by
|
||||
+ * the Free Software Foundation; either version 2 of the License, or
|
||||
+ * (at your option) any later version.
|
||||
+ *
|
||||
+ * Red Hat authors:
|
||||
+ *
|
||||
+ * Hans de Goede <hdegoede@redhat.com>
|
||||
+ */
|
||||
+
|
||||
+#ifndef _FOCALTECH_H
|
||||
+#define _FOCALTECH_H
|
||||
+
|
||||
+int focaltech_detect(struct psmouse *psmouse, bool set_properties);
|
||||
+
|
||||
+#endif
|
||||
diff --git a/drivers/input/mouse/psmouse-base.c b/drivers/input/mouse/psmouse-base.c
|
||||
index 02e68c3008a3..2c8c8e2172a2 100644
|
||||
--- a/drivers/input/mouse/psmouse-base.c
|
||||
+++ b/drivers/input/mouse/psmouse-base.c
|
||||
@@ -35,6 +35,7 @@
|
||||
#include "elantech.h"
|
||||
#include "sentelic.h"
|
||||
#include "cypress_ps2.h"
|
||||
+#include "focaltech.h"
|
||||
|
||||
#define DRIVER_DESC "PS/2 mouse driver"
|
||||
|
||||
@@ -722,6 +723,13 @@ static int psmouse_extensions(struct psmouse *psmouse,
|
||||
{
|
||||
bool synaptics_hardware = false;
|
||||
|
||||
+/* Always check for focaltech, this is safe as it uses pnp-id matching */
|
||||
+ if (psmouse_do_detect(focaltech_detect, psmouse, set_properties) == 0) {
|
||||
+ /* Not supported yet, use bare protocol */
|
||||
+ psmouse_max_proto = max_proto = PSMOUSE_PS2;
|
||||
+ goto reset_to_defaults;
|
||||
+ }
|
||||
+
|
||||
/*
|
||||
* We always check for lifebook because it does not disturb mouse
|
||||
* (it only checks DMI information).
|
||||
@@ -873,6 +881,8 @@ static int psmouse_extensions(struct psmouse *psmouse,
|
||||
}
|
||||
}
|
||||
|
||||
+reset_to_defaults:
|
||||
+
|
||||
/*
|
||||
* Reset to defaults in case the device got confused by extended
|
||||
* protocol probes. Note that we follow up with full reset because
|
||||
--
|
||||
1.9.3
|
||||
|
6
sources
6
sources
|
@ -1,3 +1,3 @@
|
|||
fb30d0f29214d75cddd2faa94f73d5cf linux-3.17.tar.xz
|
||||
159e969cbc27201d8e2fa0f609dc722f perf-man-3.17.tar.gz
|
||||
4ea1c0e18b18406bcd248bf06b95aec3 patch-3.17.8.xz
|
||||
9e854df51ca3fef8bfe566dbd7b89241 linux-3.18.tar.xz
|
||||
813ccb96f0b379d656e57442c2587ca3 perf-man-3.18.tar.gz
|
||||
e7c510c0df50abb2cbaea2a1a87f35b7 patch-3.18.4.xz
|
||||
|
|
|
@ -1,39 +0,0 @@
|
|||
From 37a72caa7f031da7b3e63252c1f0023b8272203c Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Fri, 5 Dec 2014 11:06:36 +0100
|
||||
Subject: [PATCH 2/3] uas: Add US_FL_NO_ATA_1X for Seagate devices with usb-id
|
||||
0bc2:a013
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
This is yet another Seagate device which needs the US_FL_NO_ATA_1X quirk
|
||||
|
||||
Reported-by: Marcin Zajączkowski <mszpak@wp.pl>
|
||||
Cc: stable@vger.kernel.org # 3.16
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
---
|
||||
drivers/usb/storage/unusual_uas.h | 7 +++++++
|
||||
1 file changed, 7 insertions(+)
|
||||
|
||||
diff --git a/drivers/usb/storage/unusual_uas.h b/drivers/usb/storage/unusual_uas.h
|
||||
index 18a283d6de1c..2918376a1979 100644
|
||||
--- a/drivers/usb/storage/unusual_uas.h
|
||||
+++ b/drivers/usb/storage/unusual_uas.h
|
||||
@@ -68,6 +68,13 @@ UNUSUAL_DEV(0x0bc2, 0xa003, 0x0000, 0x9999,
|
||||
USB_SC_DEVICE, USB_PR_DEVICE, NULL,
|
||||
US_FL_NO_ATA_1X),
|
||||
|
||||
+/* Reported-by: Marcin Zajączkowski <mszpak@wp.pl> */
|
||||
+UNUSUAL_DEV(0x0bc2, 0xa013, 0x0000, 0x9999,
|
||||
+ "Seagate",
|
||||
+ "Backup Plus",
|
||||
+ USB_SC_DEVICE, USB_PR_DEVICE, NULL,
|
||||
+ US_FL_NO_ATA_1X),
|
||||
+
|
||||
/* https://bbs.archlinux.org/viewtopic.php?id=183190 */
|
||||
UNUSUAL_DEV(0x0bc2, 0xab20, 0x0000, 0x9999,
|
||||
"Seagate",
|
||||
--
|
||||
2.1.0
|
||||
|
|
@ -1,37 +0,0 @@
|
|||
From a7ea9a460f28ef9781ba8dad4a6feb5fd01202f2 Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Mon, 8 Dec 2014 09:46:36 +0100
|
||||
Subject: [PATCH 3/3] uas: Add US_FL_NO_REPORT_OPCODES for JMicron JMS566 with
|
||||
usb-id 0bc2:a013
|
||||
|
||||
Like the JMicron JMS567 enclosures with the JMS566 choke on report-opcodes,
|
||||
so avoid it.
|
||||
|
||||
Tested-and-reported-by: Takeo Nakayama <javhera@gmx.com>
|
||||
Cc: stable@vger.kernel.org # 3.16
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
---
|
||||
drivers/usb/storage/unusual_uas.h | 7 +++++++
|
||||
1 file changed, 7 insertions(+)
|
||||
|
||||
diff --git a/drivers/usb/storage/unusual_uas.h b/drivers/usb/storage/unusual_uas.h
|
||||
index 2918376a1979..2f0a3d35269a 100644
|
||||
--- a/drivers/usb/storage/unusual_uas.h
|
||||
+++ b/drivers/usb/storage/unusual_uas.h
|
||||
@@ -111,6 +111,13 @@ UNUSUAL_DEV(0x2109, 0x0711, 0x0000, 0x9999,
|
||||
USB_SC_DEVICE, USB_PR_DEVICE, NULL,
|
||||
US_FL_NO_ATA_1X),
|
||||
|
||||
+/* Reported-by: Takeo Nakayama <javhera@gmx.com> */
|
||||
+UNUSUAL_DEV(0x357d, 0x7788, 0x0000, 0x9999,
|
||||
+ "JMicron",
|
||||
+ "JMS566",
|
||||
+ USB_SC_DEVICE, USB_PR_DEVICE, NULL,
|
||||
+ US_FL_NO_REPORT_OPCODES),
|
||||
+
|
||||
/* Reported-by: Hans de Goede <hdegoede@redhat.com> */
|
||||
UNUSUAL_DEV(0x4971, 0x1012, 0x0000, 0x9999,
|
||||
"Hitachi",
|
||||
--
|
||||
2.1.0
|
||||
|
|
@ -1,53 +0,0 @@
|
|||
From: Andy Lutomirski <luto@amacapital.net>
|
||||
Date: Sun, 21 Dec 2014 08:57:46 -0800
|
||||
Subject: [PATCH] x86, vdso: Use asm volatile in __getcpu
|
||||
|
||||
In Linux 3.18 and below, GCC hoists the lsl instructions in the
|
||||
pvclock code all the way to the beginning of __vdso_clock_gettime,
|
||||
slowing the non-paravirt case significantly. For unknown reasons,
|
||||
presumably related to the removal of a branch, the performance issue
|
||||
is gone as of
|
||||
|
||||
e76b027e6408 x86,vdso: Use LSL unconditionally for vgetcpu
|
||||
|
||||
but I don't trust GCC enough to expect the problem to stay fixed.
|
||||
|
||||
There should be no correctness issue, because the __getcpu calls in
|
||||
__vdso_vlock_gettime were never necessary in the first place.
|
||||
|
||||
Note to stable maintainers: In 3.18 and below, depending on
|
||||
configuration, gcc 4.9.2 generates code like this:
|
||||
|
||||
9c3: 44 0f 03 e8 lsl %ax,%r13d
|
||||
9c7: 45 89 eb mov %r13d,%r11d
|
||||
9ca: 0f 03 d8 lsl %ax,%ebx
|
||||
|
||||
This patch won't apply as is to any released kernel, but I'll send a
|
||||
trivial backported version if needed.
|
||||
|
||||
Fixes: 51c19b4f5927 x86: vdso: pvclock gettime support
|
||||
Cc: stable@vger.kernel.org # 3.8+
|
||||
Cc: Marcelo Tosatti <mtosatti@redhat.com>
|
||||
Acked-by: Paolo Bonzini <pbonzini@redhat.com>
|
||||
Signed-off-by: Andy Lutomirski <luto@amacapital.net>
|
||||
(Backported to 3.17.8 by Josh Boyer <jwboyer@fedoraproject.org>)
|
||||
---
|
||||
arch/x86/include/asm/vsyscall.h | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/arch/x86/include/asm/vsyscall.h b/arch/x86/include/asm/vsyscall.h
|
||||
index 2a46ca720afc..3db1fa5fdceb 100644
|
||||
--- a/arch/x86/include/asm/vsyscall.h
|
||||
+++ b/arch/x86/include/asm/vsyscall.h
|
||||
@@ -34,7 +34,7 @@ static inline unsigned int __getcpu(void)
|
||||
native_read_tscp(&p);
|
||||
} else {
|
||||
/* Load per CPU data from GDT */
|
||||
- asm("lsl %1,%0" : "=r" (p) : "r" (__PER_CPU_SEG));
|
||||
+ asm volatile("lsl %1,%0" : "=r" (p) : "r" (__PER_CPU_SEG));
|
||||
}
|
||||
|
||||
return p;
|
||||
--
|
||||
2.1.0
|
||||
|
|
@ -1,128 +0,0 @@
|
|||
From: Andy Lutomirski <luto@amacapital.net>
|
||||
Date: Fri, 19 Dec 2014 16:04:11 -0800
|
||||
Subject: [PATCH] x86_64, vdso: Fix the vdso address randomization algorithm
|
||||
|
||||
The theory behind vdso randomization is that it's mapped at a random
|
||||
offset above the top of the stack. To avoid wasting a page of
|
||||
memory for an extra page table, the vdso isn't supposed to extend
|
||||
past the lowest PMD into which it can fit. Other than that, the
|
||||
address should be a uniformly distributed address that meets all of
|
||||
the alignment requirements.
|
||||
|
||||
The current algorithm is buggy: the vdso has about a 50% probability
|
||||
of being at the very end of a PMD. The current algorithm also has a
|
||||
decent chance of failing outright due to incorrect handling of the
|
||||
case where the top of the stack is near the top of its PMD.
|
||||
|
||||
This fixes the implementation. The paxtest estimate of vdso
|
||||
"randomisation" improves from 11 bits to 18 bits. (Disclaimer: I
|
||||
don't know what the paxtest code is actually calculating.)
|
||||
|
||||
It's worth noting that this algorithm is inherently biased: the vdso
|
||||
is more likely to end up near the end of its PMD than near the
|
||||
beginning. Ideally we would either nix the PMD sharing requirement
|
||||
or jointly randomize the vdso and the stack to reduce the bias.
|
||||
|
||||
In the mean time, this is a considerable improvement with basically
|
||||
no risk of compatibility issues, since the allowed outputs of the
|
||||
algorithm are unchanged.
|
||||
|
||||
As an easy test, doing this:
|
||||
|
||||
for i in `seq 10000`
|
||||
do grep -P vdso /proc/self/maps |cut -d- -f1
|
||||
done |sort |uniq -d
|
||||
|
||||
used to produce lots of output (1445 lines on my most recent run).
|
||||
A tiny subset looks like this:
|
||||
|
||||
7fffdfffe000
|
||||
7fffe01fe000
|
||||
7fffe05fe000
|
||||
7fffe07fe000
|
||||
7fffe09fe000
|
||||
7fffe0bfe000
|
||||
7fffe0dfe000
|
||||
|
||||
Note the suspicious fe000 endings. With the fix, I get a much more
|
||||
palatable 76 repeated addresses.
|
||||
|
||||
Reviewed-by: Kees Cook <keescook@chromium.org>
|
||||
Cc: stable@vger.kernel.org
|
||||
Signed-off-by: Andy Lutomirski <luto@amacapital.net>
|
||||
---
|
||||
arch/x86/vdso/vma.c | 45 +++++++++++++++++++++++++++++----------------
|
||||
1 file changed, 29 insertions(+), 16 deletions(-)
|
||||
|
||||
diff --git a/arch/x86/vdso/vma.c b/arch/x86/vdso/vma.c
|
||||
index 970463b566cf..208c2206df46 100644
|
||||
--- a/arch/x86/vdso/vma.c
|
||||
+++ b/arch/x86/vdso/vma.c
|
||||
@@ -54,12 +54,17 @@ subsys_initcall(init_vdso);
|
||||
|
||||
struct linux_binprm;
|
||||
|
||||
-/* Put the vdso above the (randomized) stack with another randomized offset.
|
||||
- This way there is no hole in the middle of address space.
|
||||
- To save memory make sure it is still in the same PTE as the stack top.
|
||||
- This doesn't give that many random bits.
|
||||
-
|
||||
- Only used for the 64-bit and x32 vdsos. */
|
||||
+/*
|
||||
+ * Put the vdso above the (randomized) stack with another randomized
|
||||
+ * offset. This way there is no hole in the middle of address space.
|
||||
+ * To save memory make sure it is still in the same PTE as the stack
|
||||
+ * top. This doesn't give that many random bits.
|
||||
+ *
|
||||
+ * Note that this algorithm is imperfect: the distribution of the vdso
|
||||
+ * start address within a PMD is biased toward the end.
|
||||
+ *
|
||||
+ * Only used for the 64-bit and x32 vdsos.
|
||||
+ */
|
||||
static unsigned long vdso_addr(unsigned long start, unsigned len)
|
||||
{
|
||||
#ifdef CONFIG_X86_32
|
||||
@@ -67,22 +72,30 @@ static unsigned long vdso_addr(unsigned long start, unsigned len)
|
||||
#else
|
||||
unsigned long addr, end;
|
||||
unsigned offset;
|
||||
- end = (start + PMD_SIZE - 1) & PMD_MASK;
|
||||
+
|
||||
+ /*
|
||||
+ * Round up the start address. It can start out unaligned as a result
|
||||
+ * of stack start randomization.
|
||||
+ */
|
||||
+ start = PAGE_ALIGN(start);
|
||||
+
|
||||
+ /* Round the lowest possible end address up to a PMD boundary. */
|
||||
+ end = (start + len + PMD_SIZE - 1) & PMD_MASK;
|
||||
if (end >= TASK_SIZE_MAX)
|
||||
end = TASK_SIZE_MAX;
|
||||
end -= len;
|
||||
- /* This loses some more bits than a modulo, but is cheaper */
|
||||
- offset = get_random_int() & (PTRS_PER_PTE - 1);
|
||||
- addr = start + (offset << PAGE_SHIFT);
|
||||
- if (addr >= end)
|
||||
- addr = end;
|
||||
+
|
||||
+ if (end > start) {
|
||||
+ offset = get_random_int() % (((end - start) >> PAGE_SHIFT) + 1);
|
||||
+ addr = start + (offset << PAGE_SHIFT);
|
||||
+ } else {
|
||||
+ addr = start;
|
||||
+ }
|
||||
|
||||
/*
|
||||
- * page-align it here so that get_unmapped_area doesn't
|
||||
- * align it wrongfully again to the next page. addr can come in 4K
|
||||
- * unaligned here as a result of stack start randomization.
|
||||
+ * Forcibly align the final address in case we have a hardware
|
||||
+ * issue that requires alignment for performance reasons.
|
||||
*/
|
||||
- addr = PAGE_ALIGN(addr);
|
||||
addr = align_vdso_addr(addr);
|
||||
|
||||
return addr;
|
||||
--
|
||||
2.1.0
|
||||
|
|
@ -1,45 +0,0 @@
|
|||
From e6a429eb0bfa03e3dca62e3922874d768833395f Mon Sep 17 00:00:00 2001
|
||||
From: Hans de Goede <hdegoede@redhat.com>
|
||||
Date: Fri, 5 Dec 2014 11:01:00 +0100
|
||||
Subject: [PATCH 1/3] xhci: Add broken-streams quirk for Fresco Logic FL1000G
|
||||
xhci controllers
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
Streams do not work reliabe on Fresco Logic FL1000G xhci controllers,
|
||||
trying to use them results in errors like this:
|
||||
|
||||
21:37:33 kernel: xhci_hcd 0000:04:00.0: ERROR Transfer event for disabled endpoint or incorrect stream ring
|
||||
21:37:33 kernel: xhci_hcd 0000:04:00.0: @00000000368b3570 9067b000 00000000 05000000 01078001
|
||||
21:37:33 kernel: xhci_hcd 0000:04:00.0: ERROR Transfer event for disabled endpoint or incorrect stream ring
|
||||
21:37:33 kernel: xhci_hcd 0000:04:00.0: @00000000368b3580 9067b400 00000000 05000000 01038001
|
||||
|
||||
As always I've ordered a pci-e addon card with a Fresco Logic controller for
|
||||
myself to see if I can come up with a better fix then the big hammer, in
|
||||
the mean time this will make uas devices work again (in usb-storage mode)
|
||||
for FL1000G users.
|
||||
|
||||
Reported-by: Marcin Zajączkowski <mszpak@wp.pl>
|
||||
Cc: stable@vger.kernel.org # 3.15
|
||||
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||
---
|
||||
drivers/usb/host/xhci-pci.c | 2 ++
|
||||
1 file changed, 2 insertions(+)
|
||||
|
||||
diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c
|
||||
index d41ce7aaa97d..63f79aa82673 100644
|
||||
--- a/drivers/usb/host/xhci-pci.c
|
||||
+++ b/drivers/usb/host/xhci-pci.c
|
||||
@@ -80,6 +80,8 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci)
|
||||
"must be suspended extra slowly",
|
||||
pdev->revision);
|
||||
}
|
||||
+ if (pdev->device == PCI_DEVICE_ID_FRESCO_LOGIC_PDK)
|
||||
+ xhci->quirks |= XHCI_BROKEN_STREAMS;
|
||||
/* Fresco Logic confirms: all revisions of this chip do not
|
||||
* support MSI, even though some of them claim to in their PCI
|
||||
* capabilities.
|
||||
--
|
||||
2.1.0
|
||||
|
Loading…
Reference in New Issue