Skip to content
This repository has been archived by the owner on Dec 28, 2020. It is now read-only.

Commit

Permalink
Merge 4.9.165 into neutrino-msm-fajita-4.9
Browse files Browse the repository at this point in the history
Changes in 4.9.165: (119 commits)
        media: videobuf2-v4l2: drop WARN_ON in vb2_warn_zero_bytesused()
        9p: use inode->i_lock to protect i_size_write() under 32-bit
        9p/net: fix memory leak in p9_client_create
        ASoC: fsl_esai: fix register setting issue in RIGHT_J mode
        iio: adc: exynos-adc: Fix NULL pointer exception on unbind
        stm class: Fix an endless loop in channel allocation
        crypto: caam - fixed handling of sg list
        crypto: ahash - fix another early termination in hash walk
        gpu: ipu-v3: Fix i.MX51 CSI control registers offset
        gpu: ipu-v3: Fix CSI offsets for imx53
        s390/dasd: fix using offset into zero size array error
        ARM: OMAP2+: Variable "reg" in function omap4_dsi_mux_pads() could be uninitialized
        Input: cap11xx - switch to using set_brightness_blocking()
        Input: matrix_keypad - use flush_delayed_work()
        floppy: check_events callback should not return a negative number
        mm/gup: fix gup_pmd_range() for dax
        mm: page_alloc: fix ref bias in page_frag_alloc() for 1-byte allocs
        net: hns: Fix object reference leaks in hns_dsaf_roce_reset()
        i2c: cadence: Fix the hold bit setting
        Input: st-keyscan - fix potential zalloc NULL dereference
        clk: sunxi: A31: Fix wrong AHB gate number
        ARM: 8824/1: fix a migrating irq bug when hotplug cpu
        assoc_array: Fix shortcut creation
        scsi: libiscsi: Fix race between iscsi_xmit_task and iscsi_complete_task
        net: systemport: Fix reception of BPDUs
        pinctrl: meson: meson8b: fix the sdxc_a data 1..3 pins
        qmi_wwan: apply SET_DTR quirk to Sierra WP7607
        net: mv643xx_eth: disable clk on error path in mv643xx_eth_shared_probe()
        ASoC: topology: free created components in tplg load error
        arm64: Relax GIC version check during early boot
        net: marvell: mvneta: fix DMA debug warning
        tmpfs: fix link accounting when a tmpfile is linked in
        ARCv2: lib: memcpy: fix doing prefetchw outside of buffer
        ARC: uacces: remove lp_start, lp_end from clobber list
        phonet: fix building with clang
        mac80211_hwsim: propagate genlmsg_reply return code
        net: thunderx: make CFG_DONE message to run through generic send-ack sequence
        nfp: bpf: fix code-gen bug on BPF_ALU | BPF_XOR | BPF_K
        nfp: bpf: fix ALU32 high bits clearance bug
        net: set static variable an initial value in atl2_probe()
        tmpfs: fix uninitialized return value in shmem_link
        stm class: Prevent division by zero
        libnvdimm/label: Clear 'updating' flag after label-set update
        libnvdimm/pmem: Honor force_raw for legacy pmem regions
        libnvdimm: Fix altmap reservation size calculation
        crypto: hash - set CRYPTO_TFM_NEED_KEY if ->setkey() fails
        crypto: arm64/aes-ccm - fix logical bug in AAD MAC handling
        CIFS: Do not reset lease state to NONE on lease break
        CIFS: Fix read after write for files with read caching
        tracing: Use strncpy instead of memcpy for string keys in hist triggers
        tracing: Do not free iter->trace in fail path of tracing_open_pipe()
        ACPI / device_sysfs: Avoid OF modalias creation for removed device
        spi: ti-qspi: Fix mmap read when more than one CS in use
        spi: pxa2xx: Setup maximum supported DMA transfer length
        regulator: s2mps11: Fix steps for buck7, buck8 and LDO35
        regulator: s2mpa01: Fix step values for some LDOs
        clocksource/drivers/exynos_mct: Move one-shot check from tick clear to ISR
        clocksource/drivers/exynos_mct: Clear timer interrupt when shutdown
        s390/virtio: handle find on invalid queue gracefully
        scsi: virtio_scsi: don't send sc payload with tmfs
        scsi: sd: Optimal I/O size should be a multiple of physical block size
        scsi: target/iscsi: Avoid iscsit_release_commands_from_conn() deadlock
        fs/devpts: always delete dcache dentry-s in dput()
        splice: don't merge into linked buffers
        m68k: Add -ffreestanding to CFLAGS
        btrfs: ensure that a DUP or RAID1 block group has exactly two stripes
        Btrfs: fix corruption reading shared and compressed extents after hole punching
        crypto: pcbc - remove bogus memcpy()s with src == dest
        libertas_tf: don't set URB_ZERO_PACKET on IN USB transfer
        cpufreq: tegra124: add missing of_node_put()
        cpufreq: pxa2xx: remove incorrect __init annotation
        ext4: fix crash during online resizing
        ext2: Fix underflow in ext2_max_size()
        clk: clk-twl6040: Fix imprecise external abort for pdmclk
        clk: ingenic: Fix round_rate misbehaving with non-integer dividers
        clk: ingenic: Fix doc of ingenic_cgu_div_info
        nfit: acpi_nfit_ctl(): Check out_obj->type in the right place
        mm: hwpoison: fix thp split handing in soft_offline_in_use_page()
        mm/vmalloc: fix size check for remap_vmalloc_range_partial()
        kernel/sysctl.c: add missing range check in do_proc_dointvec_minmax_conv
        device property: Fix the length used in PROPERTY_ENTRY_STRING()
        intel_th: Don't reference unassigned outputs
        parport_pc: fix find_superio io compare code, should use equal test.
        i2c: tegra: fix maximum transfer size
        drm/i915: Relax mmap VMA check
        serial: uartps: Fix stuck ISR if RX disabled with non-empty FIFO
        serial: 8250_of: assume reg-shift of 2 for mrvl,mmp-uart
        8250: FIX Fourth port offset of Pericom PI7C9X7954 boards
        serial: 8250_pci: Fix number of ports for ACCES serial cards
        serial: 8250_pci: Have ACCES cards that use the four port Pericom PI7C9X7954 chip use the pci_pericom_setup()
        jbd2: clear dirty flag when revoking a buffer from an older transaction
        jbd2: fix compile warning when using JBUFFER_TRACE
        powerpc/32: Clear on-stack exception marker upon exception return
        powerpc/wii: properly disable use of BATs when requested.
        powerpc/powernv: Make opal log only readable by root
        powerpc/83xx: Also save/restore SPRG4-7 during suspend
        powerpc: Fix 32-bit KVM-PR lockup and host crash with MacOS guest
        powerpc/ptrace: Simplify vr_get/set() to avoid GCC warning
        ARM: s3c24xx: Fix boolean expressions in osiris_dvs_notify
        dm: fix to_sector() for 32bit
        NFS: Fix I/O request leakages
        NFS: Fix an I/O request leakage in nfs_do_recoalesce
        NFS: Don't recoalesce on error in nfs_pageio_complete_mirror()
        nfsd: fix memory corruption caused by readdir
        nfsd: fix wrong check in write_v4_end_grace()
        PM / wakeup: Rework wakeup source timer cancellation
        bcache: never writeback a discard operation
        perf intel-pt: Fix CYC timestamp calculation after OVF
        perf auxtrace: Define auxtrace record alignment
        perf intel-pt: Fix overlap calculation for padding
        perf intel-pt: Fix divide by zero when TSC is not available
        md: Fix failed allocation of md_register_thread
        rcu: Do RCU GP kthread self-wakeup from softirq and interrupt
        media: uvcvideo: Avoid NULL pointer dereference at the end of streaming
        drm/radeon/evergreen_cs: fix missing break in switch statement
        KVM: nVMX: Sign extend displacements of VMX instr's mem operands
        KVM: nVMX: Ignore limit checks on VMX instructions using flat segments
        KVM: X86: Fix residual mmio emulation request to userspace
        Linux 4.9.165

Signed-off-by: Adam W. Willis <return.of.octobot@gmail.com>

Conflicts:
	arch/arm/kernel/irq.c
	crypto/pcbc.c
	drivers/scsi/sd.c
  • Loading branch information
0ctobot committed Mar 24, 2019
2 parents 48d781a + 1c453af commit c042fed
Show file tree
Hide file tree
Showing 121 changed files with 868 additions and 433 deletions.
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
VERSION = 4
PATCHLEVEL = 9
SUBLEVEL = 164
SUBLEVEL = 165
EXTRAVERSION =
NAME = Roaring Lionus

Expand Down
8 changes: 4 additions & 4 deletions arch/arc/include/asm/uaccess.h
Original file line number Diff line number Diff line change
Expand Up @@ -209,7 +209,7 @@ __arc_copy_from_user(void *to, const void __user *from, unsigned long n)
*/
"=&r" (tmp), "+r" (to), "+r" (from)
:
: "lp_count", "lp_start", "lp_end", "memory");
: "lp_count", "memory");

return n;
}
Expand Down Expand Up @@ -438,7 +438,7 @@ __arc_copy_to_user(void __user *to, const void *from, unsigned long n)
*/
"=&r" (tmp), "+r" (to), "+r" (from)
:
: "lp_count", "lp_start", "lp_end", "memory");
: "lp_count", "memory");

return n;
}
Expand Down Expand Up @@ -658,7 +658,7 @@ static inline unsigned long __arc_clear_user(void __user *to, unsigned long n)
" .previous \n"
: "+r"(d_char), "+r"(res)
: "i"(0)
: "lp_count", "lp_start", "lp_end", "memory");
: "lp_count", "memory");

return res;
}
Expand Down Expand Up @@ -691,7 +691,7 @@ __arc_strncpy_from_user(char *dst, const char __user *src, long count)
" .previous \n"
: "+r"(res), "+r"(dst), "+r"(src), "=r"(val)
: "g"(-EFAULT), "r"(count)
: "lp_count", "lp_start", "lp_end", "memory");
: "lp_count", "memory");

return res;
}
Expand Down
14 changes: 0 additions & 14 deletions arch/arc/lib/memcpy-archs.S
Original file line number Diff line number Diff line change
Expand Up @@ -25,24 +25,18 @@
#endif

#ifdef CONFIG_ARC_HAS_LL64
# define PREFETCH_READ(RX) prefetch [RX, 56]
# define PREFETCH_WRITE(RX) prefetchw [RX, 64]
# define LOADX(DST,RX) ldd.ab DST, [RX, 8]
# define STOREX(SRC,RX) std.ab SRC, [RX, 8]
# define ZOLSHFT 5
# define ZOLAND 0x1F
#else
# define PREFETCH_READ(RX) prefetch [RX, 28]
# define PREFETCH_WRITE(RX) prefetchw [RX, 32]
# define LOADX(DST,RX) ld.ab DST, [RX, 4]
# define STOREX(SRC,RX) st.ab SRC, [RX, 4]
# define ZOLSHFT 4
# define ZOLAND 0xF
#endif

ENTRY_CFI(memcpy)
prefetch [r1] ; Prefetch the read location
prefetchw [r0] ; Prefetch the write location
mov.f 0, r2
;;; if size is zero
jz.d [blink]
Expand Down Expand Up @@ -72,8 +66,6 @@ ENTRY_CFI(memcpy)
lpnz @.Lcopy32_64bytes
;; LOOP START
LOADX (r6, r1)
PREFETCH_READ (r1)
PREFETCH_WRITE (r3)
LOADX (r8, r1)
LOADX (r10, r1)
LOADX (r4, r1)
Expand Down Expand Up @@ -117,9 +109,7 @@ ENTRY_CFI(memcpy)
lpnz @.Lcopy8bytes_1
;; LOOP START
ld.ab r6, [r1, 4]
prefetch [r1, 28] ;Prefetch the next read location
ld.ab r8, [r1,4]
prefetchw [r3, 32] ;Prefetch the next write location

SHIFT_1 (r7, r6, 24)
or r7, r7, r5
Expand Down Expand Up @@ -162,9 +152,7 @@ ENTRY_CFI(memcpy)
lpnz @.Lcopy8bytes_2
;; LOOP START
ld.ab r6, [r1, 4]
prefetch [r1, 28] ;Prefetch the next read location
ld.ab r8, [r1,4]
prefetchw [r3, 32] ;Prefetch the next write location

SHIFT_1 (r7, r6, 16)
or r7, r7, r5
Expand Down Expand Up @@ -204,9 +192,7 @@ ENTRY_CFI(memcpy)
lpnz @.Lcopy8bytes_3
;; LOOP START
ld.ab r6, [r1, 4]
prefetch [r1, 28] ;Prefetch the next read location
ld.ab r8, [r1,4]
prefetchw [r3, 32] ;Prefetch the next write location

SHIFT_1 (r7, r6, 8)
or r7, r7, r5
Expand Down
1 change: 1 addition & 0 deletions arch/arm/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -1502,6 +1502,7 @@ config HOTPLUG_CPU
bool "Support for hot-pluggable CPUs"
select GENERIC_IRQ_MIGRATION
depends on SMP
select GENERIC_IRQ_MIGRATION
help
Say Y here to experiment with turning CPUs off and on. CPUs
can be controlled through /sys/devices/system/cpu.
Expand Down
1 change: 0 additions & 1 deletion arch/arm/include/asm/irq.h
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@
#ifndef __ASSEMBLY__
struct irqaction;
struct pt_regs;
extern void migrate_irqs(void);

extern void asm_do_IRQ(unsigned int, struct pt_regs *);
void handle_IRQ(unsigned int, struct pt_regs *);
Expand Down
76 changes: 0 additions & 76 deletions arch/arm/kernel/irq.c
Original file line number Diff line number Diff line change
Expand Up @@ -31,13 +31,11 @@
#include <linux/smp.h>
#include <linux/init.h>
#include <linux/seq_file.h>
#include <linux/ratelimit.h>
#include <linux/errno.h>
#include <linux/list.h>
#include <linux/kallsyms.h>
#include <linux/proc_fs.h>
#include <linux/export.h>
#include <linux/cpumask.h>

#include <asm/hardware/cache-l2x0.h>
#include <asm/hardware/cache-uniphier.h>
Expand Down Expand Up @@ -120,77 +118,3 @@ int __init arch_probe_nr_irqs(void)
return nr_irqs;
}
#endif

#ifdef CONFIG_HOTPLUG_CPU
static bool migrate_one_irq(struct irq_desc *desc)
{
struct irq_data *d = irq_desc_get_irq_data(desc);
const struct cpumask *affinity = irq_data_get_affinity_mask(d);
struct irq_chip *c;
bool ret = false;
struct cpumask available_cpus;

/*
* If this is a per-CPU interrupt, or the affinity does not
* include this CPU, then we have nothing to do.
*/
if (irqd_is_per_cpu(d) || !cpumask_test_cpu(smp_processor_id(), affinity))
return false;

cpumask_copy(&available_cpus, affinity);
cpumask_andnot(&available_cpus, &available_cpus, cpu_isolated_mask);
affinity = &available_cpus;

if (cpumask_any_and(affinity, cpu_online_mask) >= nr_cpu_ids) {
cpumask_andnot(&available_cpus, cpu_online_mask,
cpu_isolated_mask);
if (cpumask_empty(affinity))
affinity = cpu_online_mask;
ret = true;
}

c = irq_data_get_irq_chip(d);
if (!c->irq_set_affinity) {
pr_debug("IRQ%u: unable to set affinity\n", d->irq);
} else {
int r = irq_set_affinity_locked(d, affinity, false);

if (r)
pr_warn_ratelimited("IRQ%u: set affinity failed(%d).\n",
d->irq, r);
}

return ret;
}

/*
* The current CPU has been marked offline. Migrate IRQs off this CPU.
* If the affinity settings do not allow other CPUs, force them onto any
* available CPU.
*
* Note: we must iterate over all IRQs, whether they have an attached
* action structure or not, as we need to get chained interrupts too.
*/
void migrate_irqs(void)
{
unsigned int i;
struct irq_desc *desc;
unsigned long flags;

local_irq_save(flags);

for_each_irq_desc(i, desc) {
bool affinity_broken;

raw_spin_lock(&desc->lock);
affinity_broken = migrate_one_irq(desc);
raw_spin_unlock(&desc->lock);

if (affinity_broken)
pr_warn_ratelimited("IRQ%u no longer affine to CPU%u\n",
i, smp_processor_id());
}

local_irq_restore(flags);
}
#endif /* CONFIG_HOTPLUG_CPU */
2 changes: 1 addition & 1 deletion arch/arm/kernel/smp.c
Original file line number Diff line number Diff line change
Expand Up @@ -254,7 +254,7 @@ int __cpu_disable(void)
/*
* OK - migrate IRQs away from this CPU
*/
migrate_irqs();
irq_migrate_all_off_this_cpu();

/*
* Flush user cache and TLB mappings, and then remove this CPU
Expand Down
7 changes: 6 additions & 1 deletion arch/arm/mach-omap2/display.c
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,7 @@ static int omap4_dsi_mux_pads(int dsi_id, unsigned lanes)
u32 enable_mask, enable_shift;
u32 pipd_mask, pipd_shift;
u32 reg;
int ret;

if (dsi_id == 0) {
enable_mask = OMAP4_DSI1_LANEENABLE_MASK;
Expand All @@ -130,7 +131,11 @@ static int omap4_dsi_mux_pads(int dsi_id, unsigned lanes)
return -ENODEV;
}

regmap_read(omap4_dsi_mux_syscon, OMAP4_DSIPHY_SYSCON_OFFSET, &reg);
ret = regmap_read(omap4_dsi_mux_syscon,
OMAP4_DSIPHY_SYSCON_OFFSET,
&reg);
if (ret)
return ret;

reg &= ~enable_mask;
reg &= ~pipd_mask;
Expand Down
8 changes: 4 additions & 4 deletions arch/arm/mach-s3c24xx/mach-osiris-dvs.c
Original file line number Diff line number Diff line change
Expand Up @@ -70,16 +70,16 @@ static int osiris_dvs_notify(struct notifier_block *nb,

switch (val) {
case CPUFREQ_PRECHANGE:
if (old_dvs & !new_dvs ||
cur_dvs & !new_dvs) {
if ((old_dvs && !new_dvs) ||
(cur_dvs && !new_dvs)) {
pr_debug("%s: exiting dvs\n", __func__);
cur_dvs = false;
gpio_set_value(OSIRIS_GPIO_DVS, 1);
}
break;
case CPUFREQ_POSTCHANGE:
if (!old_dvs & new_dvs ||
!cur_dvs & new_dvs) {
if ((!old_dvs && new_dvs) ||
(!cur_dvs && new_dvs)) {
pr_debug("entering dvs\n");
cur_dvs = true;
gpio_set_value(OSIRIS_GPIO_DVS, 0);
Expand Down
5 changes: 3 additions & 2 deletions arch/arm64/crypto/aes-ce-ccm-core.S
Original file line number Diff line number Diff line change
Expand Up @@ -74,12 +74,13 @@ ENTRY(ce_aes_ccm_auth_data)
beq 10f
ext v0.16b, v0.16b, v0.16b, #1 /* rotate out the mac bytes */
b 7b
8: mov w7, w8
8: cbz w8, 91f
mov w7, w8
add w8, w8, #16
9: ext v1.16b, v1.16b, v1.16b, #1
adds w7, w7, #1
bne 9b
eor v0.16b, v0.16b, v1.16b
91: eor v0.16b, v0.16b, v1.16b
st1 {v0.16b}, [x0]
10: str w8, [x3]
ret
Expand Down
3 changes: 1 addition & 2 deletions arch/arm64/kernel/head.S
Original file line number Diff line number Diff line change
Expand Up @@ -535,8 +535,7 @@ set_hcr:
/* GICv3 system register access */
mrs x0, id_aa64pfr0_el1
ubfx x0, x0, #24, #4
cmp x0, #1
b.ne 3f
cbz x0, 3f

mrs_s x0, ICC_SRE_EL2
orr x0, x0, #ICC_SRE_EL2_SRE // Set ICC_SRE_EL2.SRE==1
Expand Down
5 changes: 4 additions & 1 deletion arch/m68k/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,10 @@ cpuflags-$(CONFIG_M5206e) := $(call cc-option,-mcpu=5206e,-m5200)
cpuflags-$(CONFIG_M5206) := $(call cc-option,-mcpu=5206,-m5200)

KBUILD_AFLAGS += $(cpuflags-y)
KBUILD_CFLAGS += $(cpuflags-y) -pipe
KBUILD_CFLAGS += $(cpuflags-y)

KBUILD_CFLAGS += -pipe -ffreestanding

ifdef CONFIG_MMU
# without -fno-strength-reduce the 53c7xx.c driver fails ;-(
KBUILD_CFLAGS += -fno-strength-reduce -ffixed-a2
Expand Down
9 changes: 9 additions & 0 deletions arch/powerpc/kernel/entry_32.S
Original file line number Diff line number Diff line change
Expand Up @@ -698,6 +698,9 @@ fast_exception_return:
mtcr r10
lwz r10,_LINK(r11)
mtlr r10
/* Clear the exception_marker on the stack to avoid confusing stacktrace */
li r10, 0
stw r10, 8(r11)
REST_GPR(10, r11)
mtspr SPRN_SRR1,r9
mtspr SPRN_SRR0,r12
Expand Down Expand Up @@ -932,6 +935,9 @@ END_FTR_SECTION_IFSET(CPU_FTR_NEED_PAIRED_STWCX)
mtcrf 0xFF,r10
mtlr r11

/* Clear the exception_marker on the stack to avoid confusing stacktrace */
li r10, 0
stw r10, 8(r1)
/*
* Once we put values in SRR0 and SRR1, we are in a state
* where exceptions are not recoverable, since taking an
Expand Down Expand Up @@ -969,6 +975,9 @@ exc_exit_restart_end:
mtlr r11
lwz r10,_CCR(r1)
mtcrf 0xff,r10
/* Clear the exception_marker on the stack to avoid confusing stacktrace */
li r10, 0
stw r10, 8(r1)
REST_2GPRS(9, r1)
.globl exc_exit_restart
exc_exit_restart:
Expand Down
2 changes: 1 addition & 1 deletion arch/powerpc/kernel/process.c
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,7 @@ void __giveup_fpu(struct task_struct *tsk)

save_fpu(tsk);
msr = tsk->thread.regs->msr;
msr &= ~MSR_FP;
msr &= ~(MSR_FP|MSR_FE0|MSR_FE1);
#ifdef CONFIG_VSX
if (cpu_has_feature(CPU_FTR_VSX))
msr &= ~MSR_VSX;
Expand Down
10 changes: 8 additions & 2 deletions arch/powerpc/kernel/ptrace.c
Original file line number Diff line number Diff line change
Expand Up @@ -547,6 +547,7 @@ static int vr_get(struct task_struct *target, const struct user_regset *regset,
/*
* Copy out only the low-order word of vrsave.
*/
int start, end;
union {
elf_vrreg_t reg;
u32 word;
Expand All @@ -555,8 +556,10 @@ static int vr_get(struct task_struct *target, const struct user_regset *regset,

vrsave.word = target->thread.vrsave;

start = 33 * sizeof(vector128);
end = start + sizeof(vrsave);
ret = user_regset_copyout(&pos, &count, &kbuf, &ubuf, &vrsave,
33 * sizeof(vector128), -1);
start, end);
}

return ret;
Expand Down Expand Up @@ -594,6 +597,7 @@ static int vr_set(struct task_struct *target, const struct user_regset *regset,
/*
* We use only the first word of vrsave.
*/
int start, end;
union {
elf_vrreg_t reg;
u32 word;
Expand All @@ -602,8 +606,10 @@ static int vr_set(struct task_struct *target, const struct user_regset *regset,

vrsave.word = target->thread.vrsave;

start = 33 * sizeof(vector128);
end = start + sizeof(vrsave);
ret = user_regset_copyin(&pos, &count, &kbuf, &ubuf, &vrsave,
33 * sizeof(vector128), -1);
start, end);
if (!ret)
target->thread.vrsave = vrsave.word;
}
Expand Down
Loading

0 comments on commit c042fed

Please sign in to comment.