From 1d791edb4662ff3ff093248a8d8c1bde3326ca2d Mon Sep 17 00:00:00 2001 From: Justin M. Forbes Date: Jan 28 2015 17:31:01 +0000 Subject: Linux v3.18.4 --- diff --git a/ARM-tegra-usb-no-reset.patch b/ARM-tegra-usb-no-reset.patch index 3b6c906..2b1058b 100644 --- a/ARM-tegra-usb-no-reset.patch +++ b/ARM-tegra-usb-no-reset.patch @@ -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 diff --git a/Add-an-EFI-signature-blob-parser-and-key-loader.patch b/Add-an-EFI-signature-blob-parser-and-key-loader.patch index e78b065..7c5c7e7 100644 --- a/Add-an-EFI-signature-blob-parser-and-key-loader.patch +++ b/Add-an-EFI-signature-blob-parser-and-key-loader.patch @@ -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 diff --git a/HID-wacom-Add-support-for-the-Cintiq-Companion.patch b/HID-wacom-Add-support-for-the-Cintiq-Companion.patch deleted file mode 100644 index 276fa10..0000000 --- a/HID-wacom-Add-support-for-the-Cintiq-Companion.patch +++ /dev/null @@ -1,46 +0,0 @@ -From: Benjamin Tissoires -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 ---- - 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 - diff --git a/KVM-x86-SYSENTER-emulation-is-broken.patch b/KVM-x86-SYSENTER-emulation-is-broken.patch new file mode 100644 index 0000000..bda8f9e --- /dev/null +++ b/KVM-x86-SYSENTER-emulation-is-broken.patch @@ -0,0 +1,81 @@ +From: Nadav Amit +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 +Signed-off-by: Paolo Bonzini +--- + 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 + diff --git a/batman-adv-Calculate-extra-tail-size-based-on-queued.patch b/batman-adv-Calculate-extra-tail-size-based-on-queued.patch deleted file mode 100644 index 32ad969..0000000 --- a/batman-adv-Calculate-extra-tail-size-based-on-queued.patch +++ /dev/null @@ -1,61 +0,0 @@ -From: Sven Eckelmann -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 -Signed-off-by: Sven Eckelmann -Acked-by: Martin Hundebøll -Signed-off-by: David S. Miller ---- - 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 - diff --git a/blk-mq-Fix-uninitialized-kobject-at-CPU-hotplugging.patch b/blk-mq-Fix-uninitialized-kobject-at-CPU-hotplugging.patch deleted file mode 100644 index af3ba39..0000000 --- a/blk-mq-Fix-uninitialized-kobject-at-CPU-hotplugging.patch +++ /dev/null @@ -1,79 +0,0 @@ -From: Takashi Iwai -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: - [] dump_trace+0x86/0x330 - [] show_stack_log_lvl+0x94/0x170 - [] show_stack+0x21/0x50 - [] dump_stack+0x41/0x51 - [] kobject_add+0xa0/0xb0 - [] blk_mq_register_hctx+0x91/0xb0 - [] blk_mq_sysfs_register+0x3e/0x60 - [] blk_mq_queue_reinit_notify+0xf8/0x190 - [] notifier_call_chain+0x4c/0x70 - [] cpu_notify+0x23/0x50 - [] _cpu_up+0x157/0x170 - [] cpu_up+0x89/0xb0 - [] cpu_subsys_online+0x35/0x80 - [] device_online+0x5d/0xa0 - [] online_store+0x75/0x80 - [] kernfs_fop_write+0xda/0x150 - [] vfs_write+0xb2/0x1f0 - [] SyS_write+0x42/0xb0 - [] 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: -Signed-off-by: Takashi Iwai -Signed-off-by: Jens Axboe ---- - 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 - diff --git a/cfg80211-don-t-WARN-about-two-consecutive-Country-IE.patch b/cfg80211-don-t-WARN-about-two-consecutive-Country-IE.patch deleted file mode 100644 index 539f21c..0000000 --- a/cfg80211-don-t-WARN-about-two-consecutive-Country-IE.patch +++ /dev/null @@ -1,42 +0,0 @@ -From e95a7085483366d52dd93b9fe8258ea77b99b89a Mon Sep 17 00:00:00 2001 -From: Emmanuel Grumbach -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: -Fixes: 2f1c6c572d7b ("cfg80211: process non country IE conflicting first") -Signed-off-by: Emmanuel Grumbach -Acked-by: Luis R. Rodriguez ---- - 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 - diff --git a/config-arm-generic b/config-arm-generic index 1f07efa..c0fa94d 100644 --- a/config-arm-generic +++ b/config-arm-generic @@ -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 diff --git a/config-arm64 b/config-arm64 index dcc1015..9fd40b9 100644 --- a/config-arm64 +++ b/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 diff --git a/config-armv7 b/config-armv7 index 133a310..652d224 100644 --- a/config-armv7 +++ b/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 diff --git a/config-armv7-generic b/config-armv7-generic index 4a96a54..cd5f89b 100644 --- a/config-armv7-generic +++ b/config-armv7-generic @@ -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 diff --git a/config-armv7-lpae b/config-armv7-lpae index 661ce36..b08f4da 100644 --- a/config-armv7-lpae +++ b/config-armv7-lpae @@ -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 diff --git a/config-generic b/config-generic index 56cd80c..f3706ab 100644 --- a/config-generic +++ b/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 diff --git a/config-powerpc-generic b/config-powerpc-generic index bc0f943..ce4da57 100644 --- a/config-powerpc-generic +++ b/config-powerpc-generic @@ -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 diff --git a/config-powerpc64 b/config-powerpc64 index e24be4f..49b4f2e 100644 --- a/config-powerpc64 +++ b/config-powerpc64 @@ -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 diff --git a/config-powerpc64le b/config-powerpc64le new file mode 100644 index 0000000..ee43fdb --- /dev/null +++ b/config-powerpc64le @@ -0,0 +1 @@ +CONFIG_CPU_LITTLE_ENDIAN=y diff --git a/config-powerpc64p7 b/config-powerpc64p7 index 60baede..6a5e1c6 100644 --- a/config-powerpc64p7 +++ b/config-powerpc64p7 @@ -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 diff --git a/config-s390x b/config-s390x index 78ba8e9..9534f51 100644 --- a/config-s390x +++ b/config-s390x @@ -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 diff --git a/config-x86-32-generic b/config-x86-32-generic index 13e1bac..5daa9b8 100644 --- a/config-x86-32-generic +++ b/config-x86-32-generic @@ -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 diff --git a/config-x86-generic b/config-x86-generic index 93f78f2..1af8775 100644 --- a/config-x86-generic +++ b/config-x86-generic @@ -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 diff --git a/config-x86_64-generic b/config-x86_64-generic index de46713..89b7070 100644 --- a/config-x86_64-generic +++ b/config-x86_64-generic @@ -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 diff --git a/crash-driver.patch b/crash-driver.patch index 9ec016d..5a8fa87 100644 --- a/crash-driver.patch +++ b/crash-driver.patch @@ -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 diff --git a/deal-with-deadlock-in-d_walk.patch b/deal-with-deadlock-in-d_walk.patch deleted file mode 100644 index 5f9087b..0000000 --- a/deal-with-deadlock-in-d_walk.patch +++ /dev/null @@ -1,86 +0,0 @@ -From: Al Viro -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 ---- - 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 - diff --git a/disable-libdw-unwind-on-non-x86.patch b/disable-libdw-unwind-on-non-x86.patch deleted file mode 100644 index 445fc19..0000000 --- a/disable-libdw-unwind-on-non-x86.patch +++ /dev/null @@ -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 diff --git a/kernel.spec b/kernel.spec index 8c0d62f..0f7916b 100644 --- a/kernel.spec +++ b/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 - 3.18.4-100 +- Linux v3.18.4 + * Thu Jan 15 2015 Josh Boyer - 3.17.8-201 - CVE-2014-8160 iptables restriction bypass (rhbz 1182059 1182063) diff --git a/move-d_rcu-from-overlapping-d_child-to-overlapping-d.patch b/move-d_rcu-from-overlapping-d_child-to-overlapping-d.patch deleted file mode 100644 index 62f7a68..0000000 --- a/move-d_rcu-from-overlapping-d_child-to-overlapping-d.patch +++ /dev/null @@ -1,736 +0,0 @@ -From: Al Viro -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 ---- - 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 - diff --git a/mpssd-x86-only.patch b/mpssd-x86-only.patch new file mode 100644 index 0000000..862603d --- /dev/null +++ b/mpssd-x86-only.patch @@ -0,0 +1,27 @@ +commit d47fb4ec7e101a63754939fa49d75fd7e81e94f8 +Author: Ashutosh Dixit +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 + Reported-by: Dan Streetman + Suggested-by: Peter Foley + Signed-off-by: Ashutosh Dixit + Signed-off-by: Jonathan Corbet + +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 + diff --git a/netfilter-conntrack-disable-generic-tracking-for-kno.patch b/netfilter-conntrack-disable-generic-tracking-for-kno.patch deleted file mode 100644 index a56f9e7..0000000 --- a/netfilter-conntrack-disable-generic-tracking-for-kno.patch +++ /dev/null @@ -1,91 +0,0 @@ -From db29a9508a9246e77087c5531e45b2c88ec6988b Mon Sep 17 00:00:00 2001 -From: Florian Westphal -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 -Signed-off-by: Daniel Borkmann -Acked-by: Jozsef Kadlecsik -Signed-off-by: Pablo Neira Ayuso ---- - 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 - diff --git a/perf-install-trace-event-plugins.patch b/perf-install-trace-event-plugins.patch deleted file mode 100644 index 9a7ad3a..0000000 --- a/perf-install-trace-event-plugins.patch +++ /dev/null @@ -1,30 +0,0 @@ -From: Kyle McMartin -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 - diff --git a/ppc64-fixtools.patch b/ppc64-fixtools.patch deleted file mode 100644 index f8c934b..0000000 --- a/ppc64-fixtools.patch +++ /dev/null @@ -1,24 +0,0 @@ -From: Peter Robinson -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 - diff --git a/psmouse-Add-psmouse_matches_pnp_id-helper-function.patch b/psmouse-Add-psmouse_matches_pnp_id-helper-function.patch deleted file mode 100644 index 59adced..0000000 --- a/psmouse-Add-psmouse_matches_pnp_id-helper-function.patch +++ /dev/null @@ -1,99 +0,0 @@ -From: Hans de Goede -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 ---- - 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 - diff --git a/psmouse-Add-support-for-detecting-FocalTech-PS-2-tou.patch b/psmouse-Add-support-for-detecting-FocalTech-PS-2-tou.patch deleted file mode 100644 index 0d0583d..0000000 --- a/psmouse-Add-support-for-detecting-FocalTech-PS-2-tou.patch +++ /dev/null @@ -1,157 +0,0 @@ -From: Hans de Goede -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 ---- - 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 -+ */ -+ -+/* -+ * 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 -+#include -+#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 -+ */ -+ -+#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 - diff --git a/sources b/sources index 35129af..9b63a7f 100644 --- a/sources +++ b/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 diff --git a/uas-Add-US_FL_NO_ATA_1X-for-Seagate-devices-with-usb.patch b/uas-Add-US_FL_NO_ATA_1X-for-Seagate-devices-with-usb.patch deleted file mode 100644 index 1e12a64..0000000 --- a/uas-Add-US_FL_NO_ATA_1X-for-Seagate-devices-with-usb.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 37a72caa7f031da7b3e63252c1f0023b8272203c Mon Sep 17 00:00:00 2001 -From: Hans de Goede -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 -Cc: stable@vger.kernel.org # 3.16 -Signed-off-by: Hans de Goede ---- - 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 */ -+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 - diff --git a/uas-Add-US_FL_NO_REPORT_OPCODES-for-JMicron-JMS566-w.patch b/uas-Add-US_FL_NO_REPORT_OPCODES-for-JMicron-JMS566-w.patch deleted file mode 100644 index 11725df..0000000 --- a/uas-Add-US_FL_NO_REPORT_OPCODES-for-JMicron-JMS566-w.patch +++ /dev/null @@ -1,37 +0,0 @@ -From a7ea9a460f28ef9781ba8dad4a6feb5fd01202f2 Mon Sep 17 00:00:00 2001 -From: Hans de Goede -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 -Cc: stable@vger.kernel.org # 3.16 -Signed-off-by: Hans de Goede ---- - 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 */ -+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 */ - UNUSUAL_DEV(0x4971, 0x1012, 0x0000, 0x9999, - "Hitachi", --- -2.1.0 - diff --git a/x86-vdso-Use-asm-volatile-in-__getcpu.patch b/x86-vdso-Use-asm-volatile-in-__getcpu.patch deleted file mode 100644 index 033b423..0000000 --- a/x86-vdso-Use-asm-volatile-in-__getcpu.patch +++ /dev/null @@ -1,53 +0,0 @@ -From: Andy Lutomirski -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 -Acked-by: Paolo Bonzini -Signed-off-by: Andy Lutomirski -(Backported to 3.17.8 by Josh Boyer ) ---- - 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 - diff --git a/x86_64-vdso-Fix-the-vdso-address-randomization-algor.patch b/x86_64-vdso-Fix-the-vdso-address-randomization-algor.patch deleted file mode 100644 index 8d7f5f1..0000000 --- a/x86_64-vdso-Fix-the-vdso-address-randomization-algor.patch +++ /dev/null @@ -1,128 +0,0 @@ -From: Andy Lutomirski -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 -Cc: stable@vger.kernel.org -Signed-off-by: Andy Lutomirski ---- - 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 - diff --git a/xhci-Add-broken-streams-quirk-for-Fresco-Logic-FL100.patch b/xhci-Add-broken-streams-quirk-for-Fresco-Logic-FL100.patch deleted file mode 100644 index 43181ff..0000000 --- a/xhci-Add-broken-streams-quirk-for-Fresco-Logic-FL100.patch +++ /dev/null @@ -1,45 +0,0 @@ -From e6a429eb0bfa03e3dca62e3922874d768833395f Mon Sep 17 00:00:00 2001 -From: Hans de Goede -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 -Cc: stable@vger.kernel.org # 3.15 -Signed-off-by: Hans de Goede ---- - 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 -