Skip to content

Commit 18ffd8a

Browse files
committed
Merge tag 'v4.14.77' into 4.14-main
This is the 4.14.77 stable release
2 parents e85d907 + 8263087 commit 18ffd8a

File tree

141 files changed

+1488
-427
lines changed

Some content is hidden

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

141 files changed

+1488
-427
lines changed

Documentation/devicetree/bindings/net/macb.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ Required properties:
1010
Use "cdns,pc302-gem" for Picochip picoXcell pc302 and later devices based on
1111
the Cadence GEM, or the generic form: "cdns,gem".
1212
Use "atmel,sama5d2-gem" for the GEM IP (10/100) available on Atmel sama5d2 SoCs.
13+
Use "atmel,sama5d3-macb" for the 10/100Mbit IP available on Atmel sama5d3 SoCs.
1314
Use "atmel,sama5d3-gem" for the Gigabit IP available on Atmel sama5d3 SoCs.
1415
Use "atmel,sama5d4-gem" for the GEM IP (10/100) available on Atmel sama5d4 SoCs.
1516
Use "cdns,zynq-gem" Xilinx Zynq-7xxx SoC.

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# SPDX-License-Identifier: GPL-2.0
22
VERSION = 4
33
PATCHLEVEL = 14
4-
SUBLEVEL = 76
4+
SUBLEVEL = 77
55
EXTRAVERSION =
66
NAME = Petit Gorille
77

arch/arm/boot/dts/sama5d3_emac.dtsi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@
4141
};
4242

4343
macb1: ethernet@f802c000 {
44-
compatible = "cdns,at91sam9260-macb", "cdns,macb";
44+
compatible = "atmel,sama5d3-macb", "cdns,at91sam9260-macb", "cdns,macb";
4545
reg = <0xf802c000 0x100>;
4646
interrupts = <35 IRQ_TYPE_LEVEL_HIGH 3>;
4747
pinctrl-names = "default";

arch/arm/include/asm/assembler.h

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -447,11 +447,23 @@ THUMB( orr \reg , \reg , #PSR_T_BIT )
447447
.size \name , . - \name
448448
.endm
449449

450+
.macro csdb
451+
#ifdef CONFIG_THUMB2_KERNEL
452+
.inst.w 0xf3af8014
453+
#else
454+
.inst 0xe320f014
455+
#endif
456+
.endm
457+
450458
.macro check_uaccess, addr:req, size:req, limit:req, tmp:req, bad:req
451459
#ifndef CONFIG_CPU_USE_DOMAINS
452460
adds \tmp, \addr, #\size - 1
453461
sbcccs \tmp, \tmp, \limit
454462
bcs \bad
463+
#ifdef CONFIG_CPU_SPECTRE
464+
movcs \addr, #0
465+
csdb
466+
#endif
455467
#endif
456468
.endm
457469

arch/arm/include/asm/barrier.h

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,12 @@
1717
#define isb(option) __asm__ __volatile__ ("isb " #option : : : "memory")
1818
#define dsb(option) __asm__ __volatile__ ("dsb " #option : : : "memory")
1919
#define dmb(option) __asm__ __volatile__ ("dmb " #option : : : "memory")
20+
#ifdef CONFIG_THUMB2_KERNEL
21+
#define CSDB ".inst.w 0xf3af8014"
22+
#else
23+
#define CSDB ".inst 0xe320f014"
24+
#endif
25+
#define csdb() __asm__ __volatile__(CSDB : : : "memory")
2026
#elif defined(CONFIG_CPU_XSC3) || __LINUX_ARM_ARCH__ == 6
2127
#define isb(x) __asm__ __volatile__ ("mcr p15, 0, %0, c7, c5, 4" \
2228
: : "r" (0) : "memory")
@@ -37,6 +43,13 @@
3743
#define dmb(x) __asm__ __volatile__ ("" : : : "memory")
3844
#endif
3945

46+
#ifndef CSDB
47+
#define CSDB
48+
#endif
49+
#ifndef csdb
50+
#define csdb()
51+
#endif
52+
4053
#ifdef CONFIG_ARM_HEAVY_MB
4154
extern void (*soc_mb)(void);
4255
extern void arm_heavy_mb(void);
@@ -63,6 +76,25 @@ extern void arm_heavy_mb(void);
6376
#define __smp_rmb() __smp_mb()
6477
#define __smp_wmb() dmb(ishst)
6578

79+
#ifdef CONFIG_CPU_SPECTRE
80+
static inline unsigned long array_index_mask_nospec(unsigned long idx,
81+
unsigned long sz)
82+
{
83+
unsigned long mask;
84+
85+
asm volatile(
86+
"cmp %1, %2\n"
87+
" sbc %0, %1, %1\n"
88+
CSDB
89+
: "=r" (mask)
90+
: "r" (idx), "Ir" (sz)
91+
: "cc");
92+
93+
return mask;
94+
}
95+
#define array_index_mask_nospec array_index_mask_nospec
96+
#endif
97+
6698
#include <asm-generic/barrier.h>
6799

68100
#endif /* !__ASSEMBLY__ */

arch/arm/include/asm/bugs.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,14 @@
1010
#ifndef __ASM_BUGS_H
1111
#define __ASM_BUGS_H
1212

13-
#ifdef CONFIG_MMU
1413
extern void check_writebuffer_bugs(void);
1514

16-
#define check_bugs() check_writebuffer_bugs()
15+
#ifdef CONFIG_MMU
16+
extern void check_bugs(void);
17+
extern void check_other_bugs(void);
1718
#else
1819
#define check_bugs() do { } while (0)
20+
#define check_other_bugs() do { } while (0)
1921
#endif
2022

2123
#endif

arch/arm/include/asm/cp15.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,9 @@
6565
#define __write_sysreg(v, r, w, c, t) asm volatile(w " " c : : "r" ((t)(v)))
6666
#define write_sysreg(v, ...) __write_sysreg(v, __VA_ARGS__)
6767

68+
#define BPIALL __ACCESS_CP15(c7, 0, c5, 6)
69+
#define ICIALLU __ACCESS_CP15(c7, 0, c5, 0)
70+
6871
extern unsigned long cr_alignment; /* defined in entry-armv.S */
6972

7073
static inline unsigned long get_cr(void)

arch/arm/include/asm/cputype.h

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,8 +77,16 @@
7777
#define ARM_CPU_PART_CORTEX_A12 0x4100c0d0
7878
#define ARM_CPU_PART_CORTEX_A17 0x4100c0e0
7979
#define ARM_CPU_PART_CORTEX_A15 0x4100c0f0
80+
#define ARM_CPU_PART_CORTEX_A53 0x4100d030
81+
#define ARM_CPU_PART_CORTEX_A57 0x4100d070
82+
#define ARM_CPU_PART_CORTEX_A72 0x4100d080
83+
#define ARM_CPU_PART_CORTEX_A73 0x4100d090
84+
#define ARM_CPU_PART_CORTEX_A75 0x4100d0a0
8085
#define ARM_CPU_PART_MASK 0xff00fff0
8186

87+
/* Broadcom cores */
88+
#define ARM_CPU_PART_BRAHMA_B15 0x420000f0
89+
8290
/* DEC implemented cores */
8391
#define ARM_CPU_PART_SA1100 0x4400a110
8492

arch/arm/include/asm/kvm_asm.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,6 @@ struct kvm_vcpu;
6161
extern char __kvm_hyp_init[];
6262
extern char __kvm_hyp_init_end[];
6363

64-
extern char __kvm_hyp_vector[];
65-
6664
extern void __kvm_flush_vm_context(void);
6765
extern void __kvm_tlb_flush_vmid_ipa(struct kvm *kvm, phys_addr_t ipa);
6866
extern void __kvm_tlb_flush_vmid(struct kvm *kvm);

arch/arm/include/asm/kvm_host.h

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121

2222
#include <linux/types.h>
2323
#include <linux/kvm_types.h>
24+
#include <asm/cputype.h>
2425
#include <asm/kvm.h>
2526
#include <asm/kvm_asm.h>
2627
#include <asm/kvm_mmio.h>
@@ -298,8 +299,17 @@ int kvm_arm_vcpu_arch_has_attr(struct kvm_vcpu *vcpu,
298299

299300
static inline bool kvm_arm_harden_branch_predictor(void)
300301
{
301-
/* No way to detect it yet, pretend it is not there. */
302-
return false;
302+
switch(read_cpuid_part()) {
303+
#ifdef CONFIG_HARDEN_BRANCH_PREDICTOR
304+
case ARM_CPU_PART_BRAHMA_B15:
305+
case ARM_CPU_PART_CORTEX_A12:
306+
case ARM_CPU_PART_CORTEX_A15:
307+
case ARM_CPU_PART_CORTEX_A17:
308+
return true;
309+
#endif
310+
default:
311+
return false;
312+
}
303313
}
304314

305315
#define KVM_SSBD_UNKNOWN -1

0 commit comments

Comments
 (0)