This is the 4.9.115 stable release
-----BEGIN PGP SIGNATURE----- iQIzBAABCAAdFiEEZH8oZUiU471FcZm+ONu9yGCSaT4FAltYQbQACgkQONu9yGCS aT6FKw/+IL8lHw7UCoX6FEKfd5GnEG0/g4kP+1dAX/a06wd/dXd2Ztb+YeUSCxyQ H8zt3SmiJU51eR+1n9ClnpBQA4ZPGvLJQSwgDaVITrJ/vg0afQfxEcksmoo+BAVH bsN2d387fwHVihSOAie5hIaYVMhbouY3myP+wMENo8AGRwtnDwtLEUaMnQSDbFAK L0Vu0dOLV5YyHwarUre3SZzHSKc8oP3LawoJ+yPhUK3faQsXK5rEU+uz7/+0C3zf +r0mo5equ4dezD392MX3cs2HknXykaAFEzvsjQiBd0jSAH225VuShKbjrxIdVxyo b+PdPItXw8g2VA1bm2mWKTpTHnnMdW4jowpybm1mk9Un7JEEiynxylZxeEHkL3Ns nPo9fNfzliJb8D1uRddvtYM3gLJc20ijZf9PQ6Dugdf/8+jZbInTQCrU0f9XuUt2 WEECKiYs67/N/5LDMjd7vy9Jj89qKAxaekbuFR5BIjiXf25rAmqRvXMYjiIOndh6 XZHV7eBj4UeVpIFfuAc0d6NRgJN01G/2JUbqm8vJZbnSF1WJDL5gTBd9/JjR4zYH XvIoQwrtoEVz8ZeQMZAWy6yUfslASHPdyKe6ONUMwExLZhGR0qeh6cWDsIk0UE8c EEaN10jpAT4juUmBtIwGHJyCzH6lvwjBlk29XZ2+Xsy7BKAf+Hc= =hytF -----END PGP SIGNATURE----- Merge 4.9.115 into android-4.9 Changes in 4.9.115 KVM/Eventfd: Avoid crash when assign and deassign specific eventfd in parallel. x86/apm: Don't access __preempt_count with zeroed fs x86/MCE: Remove min interval polling limitation fat: fix memory allocation failure handling of match_strdup() ALSA: rawmidi: Change resized buffers atomically ARC: Fix CONFIG_SWAP ARC: mm: allow mprotect to make stack mappings executable ARC: configs: Remove CONFIG_INITRAMFS_SOURCE from defconfigs mm: memcg: fix use after free in mem_cgroup_iter() mm/huge_memory.c: fix data loss when splitting a file pmd vfio/pci: Fix potential Spectre v1 drm/i915: Fix hotplug irq ack on i965/g4x gen_stats: Fix netlink stats dumping in the presence of padding ipv4: Return EINVAL when ping_group_range sysctl doesn't map to user ns ipv6: fix useless rol32 call on hash lib/rhashtable: consider param->min_size when setting initial table size net: diag: Don't double-free TCP_NEW_SYN_RECV sockets in tcp_abort net/ipv4: Set oif in fib_compute_spec_dst net: phy: fix flag masking in __set_phy_supported ptp: fix missing break in switch qmi_wwan: add support for Quectel EG91 tg3: Add higher cpu clock for 5762. net: usb: asix: replace mii_nway_restart in resume path net: Don't copy pfmemalloc flag in __copy_skb_header() skbuff: Unconditionally copy pfmemalloc in __skb_clone() xhci: Fix perceived dead host due to runtime suspend race with event handler xprtrdma: Return -ENOBUFS when no pages are available block: do not use interruptible wait anywhere Linux 4.9.115 Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
This commit is contained in:
commit
e6f9a8a3a5
39 changed files with 175 additions and 72 deletions
2
Makefile
2
Makefile
|
|
@ -1,6 +1,6 @@
|
|||
VERSION = 4
|
||||
PATCHLEVEL = 9
|
||||
SUBLEVEL = 114
|
||||
SUBLEVEL = 115
|
||||
EXTRAVERSION =
|
||||
NAME = Roaring Lionus
|
||||
|
||||
|
|
|
|||
|
|
@ -11,7 +11,6 @@ CONFIG_NAMESPACES=y
|
|||
# CONFIG_UTS_NS is not set
|
||||
# CONFIG_PID_NS is not set
|
||||
CONFIG_BLK_DEV_INITRD=y
|
||||
CONFIG_INITRAMFS_SOURCE="../arc_initramfs/"
|
||||
CONFIG_EMBEDDED=y
|
||||
CONFIG_PERF_EVENTS=y
|
||||
# CONFIG_VM_EVENT_COUNTERS is not set
|
||||
|
|
|
|||
|
|
@ -11,7 +11,6 @@ CONFIG_NAMESPACES=y
|
|||
# CONFIG_UTS_NS is not set
|
||||
# CONFIG_PID_NS is not set
|
||||
CONFIG_BLK_DEV_INITRD=y
|
||||
CONFIG_INITRAMFS_SOURCE="../../arc_initramfs_hs/"
|
||||
CONFIG_EMBEDDED=y
|
||||
CONFIG_PERF_EVENTS=y
|
||||
# CONFIG_VM_EVENT_COUNTERS is not set
|
||||
|
|
|
|||
|
|
@ -11,7 +11,6 @@ CONFIG_NAMESPACES=y
|
|||
# CONFIG_UTS_NS is not set
|
||||
# CONFIG_PID_NS is not set
|
||||
CONFIG_BLK_DEV_INITRD=y
|
||||
CONFIG_INITRAMFS_SOURCE="../../arc_initramfs_hs/"
|
||||
CONFIG_EMBEDDED=y
|
||||
CONFIG_PERF_EVENTS=y
|
||||
# CONFIG_VM_EVENT_COUNTERS is not set
|
||||
|
|
|
|||
|
|
@ -11,7 +11,6 @@ CONFIG_NAMESPACES=y
|
|||
# CONFIG_UTS_NS is not set
|
||||
# CONFIG_PID_NS is not set
|
||||
CONFIG_BLK_DEV_INITRD=y
|
||||
CONFIG_INITRAMFS_SOURCE="../arc_initramfs/"
|
||||
CONFIG_KALLSYMS_ALL=y
|
||||
CONFIG_EMBEDDED=y
|
||||
CONFIG_PERF_EVENTS=y
|
||||
|
|
|
|||
|
|
@ -11,7 +11,6 @@ CONFIG_NAMESPACES=y
|
|||
# CONFIG_UTS_NS is not set
|
||||
# CONFIG_PID_NS is not set
|
||||
CONFIG_BLK_DEV_INITRD=y
|
||||
CONFIG_INITRAMFS_SOURCE="../../arc_initramfs_hs/"
|
||||
CONFIG_KALLSYMS_ALL=y
|
||||
CONFIG_EMBEDDED=y
|
||||
CONFIG_PERF_EVENTS=y
|
||||
|
|
|
|||
|
|
@ -9,7 +9,6 @@ CONFIG_NAMESPACES=y
|
|||
# CONFIG_UTS_NS is not set
|
||||
# CONFIG_PID_NS is not set
|
||||
CONFIG_BLK_DEV_INITRD=y
|
||||
CONFIG_INITRAMFS_SOURCE="../arc_initramfs_hs/"
|
||||
CONFIG_KALLSYMS_ALL=y
|
||||
CONFIG_EMBEDDED=y
|
||||
CONFIG_PERF_EVENTS=y
|
||||
|
|
|
|||
|
|
@ -11,7 +11,6 @@ CONFIG_NAMESPACES=y
|
|||
# CONFIG_UTS_NS is not set
|
||||
# CONFIG_PID_NS is not set
|
||||
CONFIG_BLK_DEV_INITRD=y
|
||||
CONFIG_INITRAMFS_SOURCE="../arc_initramfs/"
|
||||
CONFIG_KALLSYMS_ALL=y
|
||||
CONFIG_EMBEDDED=y
|
||||
CONFIG_PERF_EVENTS=y
|
||||
|
|
|
|||
|
|
@ -11,7 +11,6 @@ CONFIG_NAMESPACES=y
|
|||
# CONFIG_UTS_NS is not set
|
||||
# CONFIG_PID_NS is not set
|
||||
CONFIG_BLK_DEV_INITRD=y
|
||||
CONFIG_INITRAMFS_SOURCE="../arc_initramfs_hs/"
|
||||
CONFIG_KALLSYMS_ALL=y
|
||||
CONFIG_EMBEDDED=y
|
||||
CONFIG_PERF_EVENTS=y
|
||||
|
|
|
|||
|
|
@ -9,7 +9,6 @@ CONFIG_IKCONFIG_PROC=y
|
|||
# CONFIG_UTS_NS is not set
|
||||
# CONFIG_PID_NS is not set
|
||||
CONFIG_BLK_DEV_INITRD=y
|
||||
CONFIG_INITRAMFS_SOURCE="../arc_initramfs_hs/"
|
||||
CONFIG_PERF_EVENTS=y
|
||||
# CONFIG_COMPAT_BRK is not set
|
||||
CONFIG_KPROBES=y
|
||||
|
|
|
|||
|
|
@ -105,7 +105,7 @@ typedef pte_t * pgtable_t;
|
|||
#define virt_addr_valid(kaddr) pfn_valid(virt_to_pfn(kaddr))
|
||||
|
||||
/* Default Permissions for stack/heaps pages (Non Executable) */
|
||||
#define VM_DATA_DEFAULT_FLAGS (VM_READ | VM_WRITE | VM_MAYREAD | VM_MAYWRITE)
|
||||
#define VM_DATA_DEFAULT_FLAGS (VM_READ | VM_WRITE | VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
|
||||
|
||||
#define WANT_PAGE_VIRTUAL 1
|
||||
|
||||
|
|
|
|||
|
|
@ -378,7 +378,7 @@ void update_mmu_cache(struct vm_area_struct *vma, unsigned long address,
|
|||
|
||||
/* Decode a PTE containing swap "identifier "into constituents */
|
||||
#define __swp_type(pte_lookalike) (((pte_lookalike).val) & 0x1f)
|
||||
#define __swp_offset(pte_lookalike) ((pte_lookalike).val << 13)
|
||||
#define __swp_offset(pte_lookalike) ((pte_lookalike).val >> 13)
|
||||
|
||||
/* NOPs, to keep generic kernel happy */
|
||||
#define __pte_to_swp_entry(pte) ((swp_entry_t) { pte_val(pte) })
|
||||
|
|
|
|||
|
|
@ -6,8 +6,6 @@
|
|||
#ifndef _ASM_X86_MACH_DEFAULT_APM_H
|
||||
#define _ASM_X86_MACH_DEFAULT_APM_H
|
||||
|
||||
#include <asm/nospec-branch.h>
|
||||
|
||||
#ifdef APM_ZERO_SEGS
|
||||
# define APM_DO_ZERO_SEGS \
|
||||
"pushl %%ds\n\t" \
|
||||
|
|
@ -33,7 +31,6 @@ static inline void apm_bios_call_asm(u32 func, u32 ebx_in, u32 ecx_in,
|
|||
* N.B. We do NOT need a cld after the BIOS call
|
||||
* because we always save and restore the flags.
|
||||
*/
|
||||
firmware_restrict_branch_speculation_start();
|
||||
__asm__ __volatile__(APM_DO_ZERO_SEGS
|
||||
"pushl %%edi\n\t"
|
||||
"pushl %%ebp\n\t"
|
||||
|
|
@ -46,7 +43,6 @@ static inline void apm_bios_call_asm(u32 func, u32 ebx_in, u32 ecx_in,
|
|||
"=S" (*esi)
|
||||
: "a" (func), "b" (ebx_in), "c" (ecx_in)
|
||||
: "memory", "cc");
|
||||
firmware_restrict_branch_speculation_end();
|
||||
}
|
||||
|
||||
static inline bool apm_bios_call_simple_asm(u32 func, u32 ebx_in,
|
||||
|
|
@ -59,7 +55,6 @@ static inline bool apm_bios_call_simple_asm(u32 func, u32 ebx_in,
|
|||
* N.B. We do NOT need a cld after the BIOS call
|
||||
* because we always save and restore the flags.
|
||||
*/
|
||||
firmware_restrict_branch_speculation_start();
|
||||
__asm__ __volatile__(APM_DO_ZERO_SEGS
|
||||
"pushl %%edi\n\t"
|
||||
"pushl %%ebp\n\t"
|
||||
|
|
@ -72,7 +67,6 @@ static inline bool apm_bios_call_simple_asm(u32 func, u32 ebx_in,
|
|||
"=S" (si)
|
||||
: "a" (func), "b" (ebx_in), "c" (ecx_in)
|
||||
: "memory", "cc");
|
||||
firmware_restrict_branch_speculation_end();
|
||||
return error;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -239,6 +239,7 @@
|
|||
#include <asm/olpc.h>
|
||||
#include <asm/paravirt.h>
|
||||
#include <asm/reboot.h>
|
||||
#include <asm/nospec-branch.h>
|
||||
|
||||
#if defined(CONFIG_APM_DISPLAY_BLANK) && defined(CONFIG_VT)
|
||||
extern int (*console_blank_hook)(int);
|
||||
|
|
@ -613,11 +614,13 @@ static long __apm_bios_call(void *_call)
|
|||
gdt[0x40 / 8] = bad_bios_desc;
|
||||
|
||||
apm_irq_save(flags);
|
||||
firmware_restrict_branch_speculation_start();
|
||||
APM_DO_SAVE_SEGS;
|
||||
apm_bios_call_asm(call->func, call->ebx, call->ecx,
|
||||
&call->eax, &call->ebx, &call->ecx, &call->edx,
|
||||
&call->esi);
|
||||
APM_DO_RESTORE_SEGS;
|
||||
firmware_restrict_branch_speculation_end();
|
||||
apm_irq_restore(flags);
|
||||
gdt[0x40 / 8] = save_desc_40;
|
||||
put_cpu();
|
||||
|
|
@ -689,10 +692,12 @@ static long __apm_bios_call_simple(void *_call)
|
|||
gdt[0x40 / 8] = bad_bios_desc;
|
||||
|
||||
apm_irq_save(flags);
|
||||
firmware_restrict_branch_speculation_start();
|
||||
APM_DO_SAVE_SEGS;
|
||||
error = apm_bios_call_simple_asm(call->func, call->ebx, call->ecx,
|
||||
&call->eax);
|
||||
APM_DO_RESTORE_SEGS;
|
||||
firmware_restrict_branch_speculation_end();
|
||||
apm_irq_restore(flags);
|
||||
gdt[0x40 / 8] = save_desc_40;
|
||||
put_cpu();
|
||||
|
|
|
|||
|
|
@ -2397,9 +2397,6 @@ static ssize_t store_int_with_restart(struct device *s,
|
|||
if (check_interval == old_check_interval)
|
||||
return ret;
|
||||
|
||||
if (check_interval < 1)
|
||||
check_interval = 1;
|
||||
|
||||
mutex_lock(&mce_sysfs_mutex);
|
||||
mce_restart();
|
||||
mutex_unlock(&mce_sysfs_mutex);
|
||||
|
|
|
|||
|
|
@ -654,7 +654,6 @@ EXPORT_SYMBOL(blk_alloc_queue);
|
|||
int blk_queue_enter(struct request_queue *q, bool nowait)
|
||||
{
|
||||
while (true) {
|
||||
int ret;
|
||||
|
||||
if (percpu_ref_tryget_live(&q->q_usage_counter))
|
||||
return 0;
|
||||
|
|
@ -662,13 +661,11 @@ int blk_queue_enter(struct request_queue *q, bool nowait)
|
|||
if (nowait)
|
||||
return -EBUSY;
|
||||
|
||||
ret = wait_event_interruptible(q->mq_freeze_wq,
|
||||
!atomic_read(&q->mq_freeze_depth) ||
|
||||
blk_queue_dying(q));
|
||||
wait_event(q->mq_freeze_wq,
|
||||
!atomic_read(&q->mq_freeze_depth) ||
|
||||
blk_queue_dying(q));
|
||||
if (blk_queue_dying(q))
|
||||
return -ENODEV;
|
||||
if (ret)
|
||||
return ret;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1684,10 +1684,38 @@ static void valleyview_pipestat_irq_handler(struct drm_i915_private *dev_priv,
|
|||
|
||||
static u32 i9xx_hpd_irq_ack(struct drm_i915_private *dev_priv)
|
||||
{
|
||||
u32 hotplug_status = I915_READ(PORT_HOTPLUG_STAT);
|
||||
u32 hotplug_status = 0, hotplug_status_mask;
|
||||
int i;
|
||||
|
||||
if (hotplug_status)
|
||||
if (IS_G4X(dev_priv) ||
|
||||
IS_VALLEYVIEW(dev_priv) || IS_CHERRYVIEW(dev_priv))
|
||||
hotplug_status_mask = HOTPLUG_INT_STATUS_G4X |
|
||||
DP_AUX_CHANNEL_MASK_INT_STATUS_G4X;
|
||||
else
|
||||
hotplug_status_mask = HOTPLUG_INT_STATUS_I915;
|
||||
|
||||
/*
|
||||
* We absolutely have to clear all the pending interrupt
|
||||
* bits in PORT_HOTPLUG_STAT. Otherwise the ISR port
|
||||
* interrupt bit won't have an edge, and the i965/g4x
|
||||
* edge triggered IIR will not notice that an interrupt
|
||||
* is still pending. We can't use PORT_HOTPLUG_EN to
|
||||
* guarantee the edge as the act of toggling the enable
|
||||
* bits can itself generate a new hotplug interrupt :(
|
||||
*/
|
||||
for (i = 0; i < 10; i++) {
|
||||
u32 tmp = I915_READ(PORT_HOTPLUG_STAT) & hotplug_status_mask;
|
||||
|
||||
if (tmp == 0)
|
||||
return hotplug_status;
|
||||
|
||||
hotplug_status |= tmp;
|
||||
I915_WRITE(PORT_HOTPLUG_STAT, hotplug_status);
|
||||
}
|
||||
|
||||
WARN_ONCE(1,
|
||||
"PORT_HOTPLUG_STAT did not clear (0x%08x)\n",
|
||||
I915_READ(PORT_HOTPLUG_STAT));
|
||||
|
||||
return hotplug_status;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9276,6 +9276,15 @@ static int tg3_chip_reset(struct tg3 *tp)
|
|||
|
||||
tg3_restore_clk(tp);
|
||||
|
||||
/* Increase the core clock speed to fix tx timeout issue for 5762
|
||||
* with 100Mbps link speed.
|
||||
*/
|
||||
if (tg3_asic_rev(tp) == ASIC_REV_5762) {
|
||||
val = tr32(TG3_CPMU_CLCK_ORIDE_ENABLE);
|
||||
tw32(TG3_CPMU_CLCK_ORIDE_ENABLE, val |
|
||||
TG3_CPMU_MAC_ORIDE_ENABLE);
|
||||
}
|
||||
|
||||
/* Reprobe ASF enable state. */
|
||||
tg3_flag_clear(tp, ENABLE_ASF);
|
||||
tp->phy_flags &= ~(TG3_PHYFLG_1G_ON_VAUX_OK |
|
||||
|
|
|
|||
|
|
@ -1579,11 +1579,8 @@ static int gen10g_resume(struct phy_device *phydev)
|
|||
|
||||
static int __set_phy_supported(struct phy_device *phydev, u32 max_speed)
|
||||
{
|
||||
/* The default values for phydev->supported are provided by the PHY
|
||||
* driver "features" member, we want to reset to sane defaults first
|
||||
* before supporting higher speeds.
|
||||
*/
|
||||
phydev->supported &= PHY_DEFAULT_FEATURES;
|
||||
phydev->supported &= ~(PHY_1000BT_FEATURES | PHY_100BT_FEATURES |
|
||||
PHY_10BT_FEATURES);
|
||||
|
||||
switch (max_speed) {
|
||||
default:
|
||||
|
|
|
|||
|
|
@ -640,10 +640,12 @@ static void ax88772_restore_phy(struct usbnet *dev)
|
|||
priv->presvd_phy_advertise);
|
||||
|
||||
/* Restore BMCR */
|
||||
if (priv->presvd_phy_bmcr & BMCR_ANENABLE)
|
||||
priv->presvd_phy_bmcr |= BMCR_ANRESTART;
|
||||
|
||||
asix_mdio_write_nopm(dev->net, dev->mii.phy_id, MII_BMCR,
|
||||
priv->presvd_phy_bmcr);
|
||||
|
||||
mii_nway_restart(&dev->mii);
|
||||
priv->presvd_phy_advertise = 0;
|
||||
priv->presvd_phy_bmcr = 0;
|
||||
}
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue