Skip to content

Commit 9ccd8d7

Browse files
committed
Merge 4.11-rc5 into tty-next
We want the serial fixes in here as well to handle merge issues. Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2 parents abf1e0a + a71c9a1 commit 9ccd8d7

File tree

209 files changed

+3824
-1282
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

209 files changed

+3824
-1282
lines changed

Documentation/admin-guide/kernel-parameters.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1725,6 +1725,12 @@
17251725
kernel and module base offset ASLR (Address Space
17261726
Layout Randomization).
17271727

1728+
kasan_multi_shot
1729+
[KNL] Enforce KASAN (Kernel Address Sanitizer) to print
1730+
report on every invalid memory access. Without this
1731+
parameter KASAN will print report only for the first
1732+
invalid access.
1733+
17281734
keepinitrd [HW,ARM]
17291735

17301736
kernelcore= [KNL,X86,IA-64,PPC]

Documentation/devicetree/bindings/rng/omap_rng.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ Required properties:
1212
- reg : Offset and length of the register set for the module
1313
- interrupts : the interrupt number for the RNG module.
1414
Used for "ti,omap4-rng" and "inside-secure,safexcel-eip76"
15-
- clocks: the trng clock source
15+
- clocks: the trng clock source. Only mandatory for the
16+
"inside-secure,safexcel-eip76" compatible.
1617

1718
Example:
1819
/* AM335x */

Documentation/virtual/kvm/api.txt

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3377,6 +3377,69 @@ struct kvm_ppc_resize_hpt {
33773377
__u32 pad;
33783378
};
33793379

3380+
4.104 KVM_X86_GET_MCE_CAP_SUPPORTED
3381+
3382+
Capability: KVM_CAP_MCE
3383+
Architectures: x86
3384+
Type: system ioctl
3385+
Parameters: u64 mce_cap (out)
3386+
Returns: 0 on success, -1 on error
3387+
3388+
Returns supported MCE capabilities. The u64 mce_cap parameter
3389+
has the same format as the MSR_IA32_MCG_CAP register. Supported
3390+
capabilities will have the corresponding bits set.
3391+
3392+
4.105 KVM_X86_SETUP_MCE
3393+
3394+
Capability: KVM_CAP_MCE
3395+
Architectures: x86
3396+
Type: vcpu ioctl
3397+
Parameters: u64 mcg_cap (in)
3398+
Returns: 0 on success,
3399+
-EFAULT if u64 mcg_cap cannot be read,
3400+
-EINVAL if the requested number of banks is invalid,
3401+
-EINVAL if requested MCE capability is not supported.
3402+
3403+
Initializes MCE support for use. The u64 mcg_cap parameter
3404+
has the same format as the MSR_IA32_MCG_CAP register and
3405+
specifies which capabilities should be enabled. The maximum
3406+
supported number of error-reporting banks can be retrieved when
3407+
checking for KVM_CAP_MCE. The supported capabilities can be
3408+
retrieved with KVM_X86_GET_MCE_CAP_SUPPORTED.
3409+
3410+
4.106 KVM_X86_SET_MCE
3411+
3412+
Capability: KVM_CAP_MCE
3413+
Architectures: x86
3414+
Type: vcpu ioctl
3415+
Parameters: struct kvm_x86_mce (in)
3416+
Returns: 0 on success,
3417+
-EFAULT if struct kvm_x86_mce cannot be read,
3418+
-EINVAL if the bank number is invalid,
3419+
-EINVAL if VAL bit is not set in status field.
3420+
3421+
Inject a machine check error (MCE) into the guest. The input
3422+
parameter is:
3423+
3424+
struct kvm_x86_mce {
3425+
__u64 status;
3426+
__u64 addr;
3427+
__u64 misc;
3428+
__u64 mcg_status;
3429+
__u8 bank;
3430+
__u8 pad1[7];
3431+
__u64 pad2[3];
3432+
};
3433+
3434+
If the MCE being reported is an uncorrected error, KVM will
3435+
inject it as an MCE exception into the guest. If the guest
3436+
MCG_STATUS register reports that an MCE is in progress, KVM
3437+
causes an KVM_EXIT_SHUTDOWN vmexit.
3438+
3439+
Otherwise, if the MCE is a corrected error, KVM will just
3440+
store it in the corresponding bank (provided this bank is
3441+
not holding a previously reported uncorrected error).
3442+
33803443
5. The kvm_run structure
33813444
------------------------
33823445

MAINTAINERS

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4775,6 +4775,12 @@ L: linux-edac@vger.kernel.org
47754775
S: Maintained
47764776
F: drivers/edac/mpc85xx_edac.[ch]
47774777

4778+
EDAC-PND2
4779+
M: Tony Luck <tony.luck@intel.com>
4780+
L: linux-edac@vger.kernel.org
4781+
S: Maintained
4782+
F: drivers/edac/pnd2_edac.[ch]
4783+
47784784
EDAC-PASEMI
47794785
M: Egor Martovetsky <egor@pasemi.com>
47804786
L: linux-edac@vger.kernel.org

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
VERSION = 4
22
PATCHLEVEL = 11
33
SUBLEVEL = 0
4-
EXTRAVERSION = -rc4
4+
EXTRAVERSION = -rc5
55
NAME = Fearless Coyote
66

77
# *DOCUMENTATION*

arch/arc/boot/dts/skeleton.dtsi

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
device_type = "cpu";
2727
compatible = "snps,arc770d";
2828
reg = <0>;
29+
clocks = <&core_clk>;
2930
};
3031
};
3132

arch/arc/boot/dts/skeleton_hs.dtsi

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
device_type = "cpu";
2222
compatible = "snps,archs38";
2323
reg = <0>;
24+
clocks = <&core_clk>;
2425
};
2526
};
2627

arch/arc/boot/dts/skeleton_hs_idu.dtsi

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,27 @@
1919

2020
cpu@0 {
2121
device_type = "cpu";
22-
compatible = "snps,archs38xN";
22+
compatible = "snps,archs38";
2323
reg = <0>;
24+
clocks = <&core_clk>;
25+
};
26+
cpu@1 {
27+
device_type = "cpu";
28+
compatible = "snps,archs38";
29+
reg = <1>;
30+
clocks = <&core_clk>;
31+
};
32+
cpu@2 {
33+
device_type = "cpu";
34+
compatible = "snps,archs38";
35+
reg = <2>;
36+
clocks = <&core_clk>;
37+
};
38+
cpu@3 {
39+
device_type = "cpu";
40+
compatible = "snps,archs38";
41+
reg = <3>;
42+
clocks = <&core_clk>;
2443
};
2544
};
2645

arch/arc/boot/dts/vdk_axs10x_mb.dtsi

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -112,13 +112,19 @@
112112
interrupts = <7>;
113113
bus-width = <4>;
114114
};
115+
};
115116

116-
/* Embedded Vision subsystem UIO mappings; only relevant for EV VDK */
117-
uio_ev: uio@0xD0000000 {
118-
compatible = "generic-uio";
119-
reg = <0xD0000000 0x2000 0xD1000000 0x2000 0x90000000 0x10000000 0xC0000000 0x10000000>;
120-
reg-names = "ev_gsa", "ev_ctrl", "ev_shared_mem", "ev_code_mem";
121-
interrupts = <23>;
122-
};
117+
/*
118+
* Embedded Vision subsystem UIO mappings; only relevant for EV VDK
119+
*
120+
* This node is intentionally put outside of MB above becase
121+
* it maps areas outside of MB's 0xEz-0xFz.
122+
*/
123+
uio_ev: uio@0xD0000000 {
124+
compatible = "generic-uio";
125+
reg = <0xD0000000 0x2000 0xD1000000 0x2000 0x90000000 0x10000000 0xC0000000 0x10000000>;
126+
reg-names = "ev_gsa", "ev_ctrl", "ev_shared_mem", "ev_code_mem";
127+
interrupt-parent = <&mb_intc>;
128+
interrupts = <23>;
123129
};
124130
};

arch/arc/include/asm/kprobes.h

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,9 +54,7 @@ int kprobe_fault_handler(struct pt_regs *regs, unsigned long cause);
5454
void kretprobe_trampoline(void);
5555
void trap_is_kprobe(unsigned long address, struct pt_regs *regs);
5656
#else
57-
static void trap_is_kprobe(unsigned long address, struct pt_regs *regs)
58-
{
59-
}
57+
#define trap_is_kprobe(address, regs)
6058
#endif /* CONFIG_KPROBES */
6159

6260
#endif /* _ARC_KPROBES_H */

arch/arc/kernel/entry-arcv2.S

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -100,15 +100,21 @@ END(handle_interrupt)
100100
;################### Non TLB Exception Handling #############################
101101

102102
ENTRY(EV_SWI)
103-
flag 1
103+
; TODO: implement this
104+
EXCEPTION_PROLOGUE
105+
b ret_from_exception
104106
END(EV_SWI)
105107

106108
ENTRY(EV_DivZero)
107-
flag 1
109+
; TODO: implement this
110+
EXCEPTION_PROLOGUE
111+
b ret_from_exception
108112
END(EV_DivZero)
109113

110114
ENTRY(EV_DCError)
111-
flag 1
115+
; TODO: implement this
116+
EXCEPTION_PROLOGUE
117+
b ret_from_exception
112118
END(EV_DCError)
113119

114120
; ---------------------------------------------

arch/arc/kernel/setup.c

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
#include <linux/fs.h>
1111
#include <linux/delay.h>
1212
#include <linux/root_dev.h>
13+
#include <linux/clk.h>
1314
#include <linux/clk-provider.h>
1415
#include <linux/clocksource.h>
1516
#include <linux/console.h>
@@ -488,8 +489,9 @@ static int show_cpuinfo(struct seq_file *m, void *v)
488489
{
489490
char *str;
490491
int cpu_id = ptr_to_cpu(v);
491-
struct device_node *core_clk = of_find_node_by_name(NULL, "core_clk");
492-
u32 freq = 0;
492+
struct device *cpu_dev = get_cpu_device(cpu_id);
493+
struct clk *cpu_clk;
494+
unsigned long freq = 0;
493495

494496
if (!cpu_online(cpu_id)) {
495497
seq_printf(m, "processor [%d]\t: Offline\n", cpu_id);
@@ -502,9 +504,15 @@ static int show_cpuinfo(struct seq_file *m, void *v)
502504

503505
seq_printf(m, arc_cpu_mumbojumbo(cpu_id, str, PAGE_SIZE));
504506

505-
of_property_read_u32(core_clk, "clock-frequency", &freq);
507+
cpu_clk = clk_get(cpu_dev, NULL);
508+
if (IS_ERR(cpu_clk)) {
509+
seq_printf(m, "CPU speed \t: Cannot get clock for processor [%d]\n",
510+
cpu_id);
511+
} else {
512+
freq = clk_get_rate(cpu_clk);
513+
}
506514
if (freq)
507-
seq_printf(m, "CPU speed\t: %u.%02u Mhz\n",
515+
seq_printf(m, "CPU speed\t: %lu.%02lu Mhz\n",
508516
freq / 1000000, (freq / 10000) % 100);
509517

510518
seq_printf(m, "Bogo MIPS\t: %lu.%02lu\n",

arch/arc/mm/cache.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -633,6 +633,9 @@ noinline static void slc_entire_op(const int op)
633633

634634
write_aux_reg(ARC_REG_SLC_INVALIDATE, 1);
635635

636+
/* Make sure "busy" bit reports correct stataus, see STAR 9001165532 */
637+
read_aux_reg(r);
638+
636639
/* Important to wait for flush to complete */
637640
while (read_aux_reg(r) & SLC_CTRL_BUSY);
638641
}

arch/arm/boot/dts/sun8i-a33.dtsi

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,8 +113,8 @@
113113
simple-audio-card,mclk-fs = <512>;
114114
simple-audio-card,aux-devs = <&codec_analog>;
115115
simple-audio-card,routing =
116-
"Left DAC", "Digital Left DAC",
117-
"Right DAC", "Digital Right DAC";
116+
"Left DAC", "AIF1 Slot 0 Left",
117+
"Right DAC", "AIF1 Slot 0 Right";
118118
status = "disabled";
119119

120120
simple-audio-card,cpu {

arch/arm64/include/asm/current.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@
33

44
#include <linux/compiler.h>
55

6-
#include <asm/sysreg.h>
7-
86
#ifndef __ASSEMBLY__
97

108
struct task_struct;

arch/arm64/kernel/smp.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -944,7 +944,7 @@ static bool have_cpu_die(void)
944944
#ifdef CONFIG_HOTPLUG_CPU
945945
int any_cpu = raw_smp_processor_id();
946946

947-
if (cpu_ops[any_cpu]->cpu_die)
947+
if (cpu_ops[any_cpu] && cpu_ops[any_cpu]->cpu_die)
948948
return true;
949949
#endif
950950
return false;

arch/arm64/kernel/vdso/.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1 @@
11
vdso.lds
2-
vdso-offsets.h

arch/c6x/kernel/ptrace.c

Lines changed: 0 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -70,46 +70,6 @@ static int gpr_get(struct task_struct *target,
7070
0, sizeof(*regs));
7171
}
7272

73-
static int gpr_set(struct task_struct *target,
74-
const struct user_regset *regset,
75-
unsigned int pos, unsigned int count,
76-
const void *kbuf, const void __user *ubuf)
77-
{
78-
int ret;
79-
struct pt_regs *regs = task_pt_regs(target);
80-
81-
/* Don't copyin TSR or CSR */
82-
ret = user_regset_copyin(&pos, &count, &kbuf, &ubuf,
83-
&regs,
84-
0, PT_TSR * sizeof(long));
85-
if (ret)
86-
return ret;
87-
88-
ret = user_regset_copyin_ignore(&pos, &count, &kbuf, &ubuf,
89-
PT_TSR * sizeof(long),
90-
(PT_TSR + 1) * sizeof(long));
91-
if (ret)
92-
return ret;
93-
94-
ret = user_regset_copyin(&pos, &count, &kbuf, &ubuf,
95-
&regs,
96-
(PT_TSR + 1) * sizeof(long),
97-
PT_CSR * sizeof(long));
98-
if (ret)
99-
return ret;
100-
101-
ret = user_regset_copyin_ignore(&pos, &count, &kbuf, &ubuf,
102-
PT_CSR * sizeof(long),
103-
(PT_CSR + 1) * sizeof(long));
104-
if (ret)
105-
return ret;
106-
107-
ret = user_regset_copyin(&pos, &count, &kbuf, &ubuf,
108-
&regs,
109-
(PT_CSR + 1) * sizeof(long), -1);
110-
return ret;
111-
}
112-
11373
enum c6x_regset {
11474
REGSET_GPR,
11575
};
@@ -121,7 +81,6 @@ static const struct user_regset c6x_regsets[] = {
12181
.size = sizeof(u32),
12282
.align = sizeof(u32),
12383
.get = gpr_get,
124-
.set = gpr_set
12584
},
12685
};
12786

arch/h8300/kernel/ptrace.c

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,8 @@ static int regs_get(struct task_struct *target,
9595
long *reg = (long *)&regs;
9696

9797
/* build user regs in buffer */
98-
for (r = 0; r < ARRAY_SIZE(register_offset); r++)
98+
BUILD_BUG_ON(sizeof(regs) % sizeof(long) != 0);
99+
for (r = 0; r < sizeof(regs) / sizeof(long); r++)
99100
*reg++ = h8300_get_reg(target, r);
100101

101102
return user_regset_copyout(&pos, &count, &kbuf, &ubuf,
@@ -113,7 +114,8 @@ static int regs_set(struct task_struct *target,
113114
long *reg;
114115

115116
/* build user regs in buffer */
116-
for (reg = (long *)&regs, r = 0; r < ARRAY_SIZE(register_offset); r++)
117+
BUILD_BUG_ON(sizeof(regs) % sizeof(long) != 0);
118+
for (reg = (long *)&regs, r = 0; r < sizeof(regs) / sizeof(long); r++)
117119
*reg++ = h8300_get_reg(target, r);
118120

119121
ret = user_regset_copyin(&pos, &count, &kbuf, &ubuf,
@@ -122,7 +124,7 @@ static int regs_set(struct task_struct *target,
122124
return ret;
123125

124126
/* write back to pt_regs */
125-
for (reg = (long *)&regs, r = 0; r < ARRAY_SIZE(register_offset); r++)
127+
for (reg = (long *)&regs, r = 0; r < sizeof(regs) / sizeof(long); r++)
126128
h8300_put_reg(target, r, *reg++);
127129
return 0;
128130
}

0 commit comments

Comments
 (0)