Skip to content

Commit 5ca1144

Browse files
committed
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
en_rx_am.c was deleted in 'net-next' but had a bug fixed in it in 'net'. The esp{4,6}_offload.c conflicts were overlapping changes. The 'out' label is removed so we just return ERR_PTR(-EINVAL) directly. Signed-off-by: David S. Miller <[email protected]>
2 parents f53d77e + a84a8ab commit 5ca1144

File tree

68 files changed

+729
-162
lines changed

Some content is hidden

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

68 files changed

+729
-162
lines changed

Documentation/virtual/kvm/api.txt

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3403,6 +3403,52 @@ invalid, if invalid pages are written to (e.g. after the end of memory)
34033403
or if no page table is present for the addresses (e.g. when using
34043404
hugepages).
34053405

3406+
4.108 KVM_PPC_GET_CPU_CHAR
3407+
3408+
Capability: KVM_CAP_PPC_GET_CPU_CHAR
3409+
Architectures: powerpc
3410+
Type: vm ioctl
3411+
Parameters: struct kvm_ppc_cpu_char (out)
3412+
Returns: 0 on successful completion
3413+
-EFAULT if struct kvm_ppc_cpu_char cannot be written
3414+
3415+
This ioctl gives userspace information about certain characteristics
3416+
of the CPU relating to speculative execution of instructions and
3417+
possible information leakage resulting from speculative execution (see
3418+
CVE-2017-5715, CVE-2017-5753 and CVE-2017-5754). The information is
3419+
returned in struct kvm_ppc_cpu_char, which looks like this:
3420+
3421+
struct kvm_ppc_cpu_char {
3422+
__u64 character; /* characteristics of the CPU */
3423+
__u64 behaviour; /* recommended software behaviour */
3424+
__u64 character_mask; /* valid bits in character */
3425+
__u64 behaviour_mask; /* valid bits in behaviour */
3426+
};
3427+
3428+
For extensibility, the character_mask and behaviour_mask fields
3429+
indicate which bits of character and behaviour have been filled in by
3430+
the kernel. If the set of defined bits is extended in future then
3431+
userspace will be able to tell whether it is running on a kernel that
3432+
knows about the new bits.
3433+
3434+
The character field describes attributes of the CPU which can help
3435+
with preventing inadvertent information disclosure - specifically,
3436+
whether there is an instruction to flash-invalidate the L1 data cache
3437+
(ori 30,30,0 or mtspr SPRN_TRIG2,rN), whether the L1 data cache is set
3438+
to a mode where entries can only be used by the thread that created
3439+
them, whether the bcctr[l] instruction prevents speculation, and
3440+
whether a speculation barrier instruction (ori 31,31,0) is provided.
3441+
3442+
The behaviour field describes actions that software should take to
3443+
prevent inadvertent information disclosure, and thus describes which
3444+
vulnerabilities the hardware is subject to; specifically whether the
3445+
L1 data cache should be flushed when returning to user mode from the
3446+
kernel, and whether a speculation barrier should be placed between an
3447+
array bounds check and the array access.
3448+
3449+
These fields use the same bit definitions as the new
3450+
H_GET_CPU_CHARACTERISTICS hypercall.
3451+
34063452
5. The kvm_run structure
34073453
------------------------
34083454

Documentation/x86/pti.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ this protection comes at a cost:
7878
non-PTI SYSCALL entry code, so requires mapping fewer
7979
things into the userspace page tables. The downside is
8080
that stacks must be switched at entry time.
81-
d. Global pages are disabled for all kernel structures not
81+
c. Global pages are disabled for all kernel structures not
8282
mapped into both kernel and userspace page tables. This
8383
feature of the MMU allows different processes to share TLB
8484
entries mapping the kernel. Losing the feature means more

MAINTAINERS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9102,6 +9102,7 @@ F: drivers/usb/image/microtek.*
91029102

91039103
MIPS
91049104
M: Ralf Baechle <[email protected]>
9105+
M: James Hogan <[email protected]>
91059106
91069107
W: http://www.linux-mips.org/
91079108
T: git git://git.linux-mips.org/pub/scm/ralf/linux.git

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
VERSION = 4
33
PATCHLEVEL = 15
44
SUBLEVEL = 0
5-
EXTRAVERSION = -rc8
5+
EXTRAVERSION = -rc9
66
NAME = Fearless Coyote
77

88
# *DOCUMENTATION*

arch/alpha/kernel/sys_sio.c

Lines changed: 29 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,15 @@ sio_pci_route(void)
102102
alpha_mv.sys.sio.route_tab);
103103
}
104104

105+
static bool sio_pci_dev_irq_needs_level(const struct pci_dev *dev)
106+
{
107+
if ((dev->class >> 16 == PCI_BASE_CLASS_BRIDGE) &&
108+
(dev->class >> 8 != PCI_CLASS_BRIDGE_PCMCIA))
109+
return false;
110+
111+
return true;
112+
}
113+
105114
static unsigned int __init
106115
sio_collect_irq_levels(void)
107116
{
@@ -110,8 +119,7 @@ sio_collect_irq_levels(void)
110119

111120
/* Iterate through the devices, collecting IRQ levels. */
112121
for_each_pci_dev(dev) {
113-
if ((dev->class >> 16 == PCI_BASE_CLASS_BRIDGE) &&
114-
(dev->class >> 8 != PCI_CLASS_BRIDGE_PCMCIA))
122+
if (!sio_pci_dev_irq_needs_level(dev))
115123
continue;
116124

117125
if (dev->irq)
@@ -120,8 +128,7 @@ sio_collect_irq_levels(void)
120128
return level_bits;
121129
}
122130

123-
static void __init
124-
sio_fixup_irq_levels(unsigned int level_bits)
131+
static void __sio_fixup_irq_levels(unsigned int level_bits, bool reset)
125132
{
126133
unsigned int old_level_bits;
127134

@@ -139,12 +146,21 @@ sio_fixup_irq_levels(unsigned int level_bits)
139146
*/
140147
old_level_bits = inb(0x4d0) | (inb(0x4d1) << 8);
141148

142-
level_bits |= (old_level_bits & 0x71ff);
149+
if (reset)
150+
old_level_bits &= 0x71ff;
151+
152+
level_bits |= old_level_bits;
143153

144154
outb((level_bits >> 0) & 0xff, 0x4d0);
145155
outb((level_bits >> 8) & 0xff, 0x4d1);
146156
}
147157

158+
static inline void
159+
sio_fixup_irq_levels(unsigned int level_bits)
160+
{
161+
__sio_fixup_irq_levels(level_bits, true);
162+
}
163+
148164
static inline int
149165
noname_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
150166
{
@@ -181,7 +197,14 @@ noname_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
181197
const long min_idsel = 6, max_idsel = 14, irqs_per_slot = 5;
182198
int irq = COMMON_TABLE_LOOKUP, tmp;
183199
tmp = __kernel_extbl(alpha_mv.sys.sio.route_tab, irq);
184-
return irq >= 0 ? tmp : -1;
200+
201+
irq = irq >= 0 ? tmp : -1;
202+
203+
/* Fixup IRQ level if an actual IRQ mapping is detected */
204+
if (sio_pci_dev_irq_needs_level(dev) && irq >= 0)
205+
__sio_fixup_irq_levels(1 << irq, false);
206+
207+
return irq;
185208
}
186209

187210
static inline int

arch/alpha/lib/ev6-memset.S

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818
* The algorithm for the leading and trailing quadwords remains the same,
1919
* however the loop has been unrolled to enable better memory throughput,
2020
* and the code has been replicated for each of the entry points: __memset
21-
* and __memsetw to permit better scheduling to eliminate the stalling
21+
* and __memset16 to permit better scheduling to eliminate the stalling
2222
* encountered during the mask replication.
2323
* A future enhancement might be to put in a byte store loop for really
2424
* small (say < 32 bytes) memset()s. Whether or not that change would be
@@ -34,7 +34,7 @@
3434
.globl memset
3535
.globl __memset
3636
.globl ___memset
37-
.globl __memsetw
37+
.globl __memset16
3838
.globl __constant_c_memset
3939

4040
.ent ___memset
@@ -415,9 +415,9 @@ end:
415415
* to mask stalls. Note that entry point names also had to change
416416
*/
417417
.align 5
418-
.ent __memsetw
418+
.ent __memset16
419419

420-
__memsetw:
420+
__memset16:
421421
.frame $30,0,$26,0
422422
.prologue 0
423423

@@ -596,8 +596,8 @@ end_w:
596596
nop
597597
ret $31,($26),1 # L0 :
598598

599-
.end __memsetw
600-
EXPORT_SYMBOL(__memsetw)
599+
.end __memset16
600+
EXPORT_SYMBOL(__memset16)
601601

602602
memset = ___memset
603603
__memset = ___memset

arch/arm64/kvm/handle_exit.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ static int handle_hvc(struct kvm_vcpu *vcpu, struct kvm_run *run)
4545

4646
ret = kvm_psci_call(vcpu);
4747
if (ret < 0) {
48-
kvm_inject_undefined(vcpu);
48+
vcpu_set_reg(vcpu, 0, ~0UL);
4949
return 1;
5050
}
5151

@@ -54,7 +54,7 @@ static int handle_hvc(struct kvm_vcpu *vcpu, struct kvm_run *run)
5454

5555
static int handle_smc(struct kvm_vcpu *vcpu, struct kvm_run *run)
5656
{
57-
kvm_inject_undefined(vcpu);
57+
vcpu_set_reg(vcpu, 0, ~0UL);
5858
return 1;
5959
}
6060

arch/mips/Kconfig

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -259,6 +259,7 @@ config BCM47XX
259259
select LEDS_GPIO_REGISTER
260260
select BCM47XX_NVRAM
261261
select BCM47XX_SPROM
262+
select BCM47XX_SSB if !BCM47XX_BCMA
262263
help
263264
Support for BCM47XX based boards
264265

@@ -389,6 +390,7 @@ config LANTIQ
389390
select SYS_SUPPORTS_32BIT_KERNEL
390391
select SYS_SUPPORTS_MIPS16
391392
select SYS_SUPPORTS_MULTITHREADING
393+
select SYS_SUPPORTS_VPE_LOADER
392394
select SYS_HAS_EARLY_PRINTK
393395
select GPIOLIB
394396
select SWAP_IO_SPACE
@@ -516,6 +518,7 @@ config MIPS_MALTA
516518
select SYS_SUPPORTS_MIPS16
517519
select SYS_SUPPORTS_MULTITHREADING
518520
select SYS_SUPPORTS_SMARTMIPS
521+
select SYS_SUPPORTS_VPE_LOADER
519522
select SYS_SUPPORTS_ZBOOT
520523
select SYS_SUPPORTS_RELOCATABLE
521524
select USE_OF
@@ -2281,9 +2284,16 @@ config MIPSR2_TO_R6_EMULATOR
22812284
The only reason this is a build-time option is to save ~14K from the
22822285
final kernel image.
22832286

2287+
config SYS_SUPPORTS_VPE_LOADER
2288+
bool
2289+
depends on SYS_SUPPORTS_MULTITHREADING
2290+
help
2291+
Indicates that the platform supports the VPE loader, and provides
2292+
physical_memsize.
2293+
22842294
config MIPS_VPE_LOADER
22852295
bool "VPE loader support."
2286-
depends on SYS_SUPPORTS_MULTITHREADING && MODULES
2296+
depends on SYS_SUPPORTS_VPE_LOADER && MODULES
22872297
select CPU_MIPSR2_IRQ_VI
22882298
select CPU_MIPSR2_IRQ_EI
22892299
select MIPS_MT

arch/mips/Kconfig.debug

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -124,30 +124,36 @@ config SCACHE_DEBUGFS
124124

125125
If unsure, say N.
126126

127-
menuconfig MIPS_CPS_NS16550
127+
menuconfig MIPS_CPS_NS16550_BOOL
128128
bool "CPS SMP NS16550 UART output"
129129
depends on MIPS_CPS
130130
help
131131
Output debug information via an ns16550 compatible UART if exceptions
132132
occur early in the boot process of a secondary core.
133133

134-
if MIPS_CPS_NS16550
134+
if MIPS_CPS_NS16550_BOOL
135+
136+
config MIPS_CPS_NS16550
137+
def_bool MIPS_CPS_NS16550_BASE != 0
135138

136139
config MIPS_CPS_NS16550_BASE
137140
hex "UART Base Address"
138141
default 0x1b0003f8 if MIPS_MALTA
142+
default 0
139143
help
140144
The base address of the ns16550 compatible UART on which to output
141145
debug information from the early stages of core startup.
142146

147+
This is only used if non-zero.
148+
143149
config MIPS_CPS_NS16550_SHIFT
144150
int "UART Register Shift"
145-
default 0 if MIPS_MALTA
151+
default 0
146152
help
147153
The number of bits to shift ns16550 register indices by in order to
148154
form their addresses. That is, log base 2 of the span between
149155
adjacent ns16550 registers in the system.
150156

151-
endif # MIPS_CPS_NS16550
157+
endif # MIPS_CPS_NS16550_BOOL
152158

153159
endmenu

arch/mips/ar7/platform.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -575,7 +575,7 @@ static int __init ar7_register_uarts(void)
575575
uart_port.type = PORT_AR7;
576576
uart_port.uartclk = clk_get_rate(bus_clk) / 2;
577577
uart_port.iotype = UPIO_MEM32;
578-
uart_port.flags = UPF_FIXED_TYPE;
578+
uart_port.flags = UPF_FIXED_TYPE | UPF_BOOT_AUTOCONF;
579579
uart_port.regshift = 2;
580580

581581
uart_port.line = 0;

0 commit comments

Comments
 (0)