Skip to content

Commit ad8f96c

Browse files
committed
Merge tag 'v5.4.133' of git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable into odroid-5.4.y
This is the 5.4.133 stable release Change-Id: Ie0e6f9c928edf9acc9a6176d83eca8b6da68c190
2 parents 4b82acb + 795e847 commit ad8f96c

File tree

143 files changed

+895
-438
lines changed

Some content is hidden

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

143 files changed

+895
-438
lines changed

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 = 5
33
PATCHLEVEL = 4
4-
SUBLEVEL = 132
4+
SUBLEVEL = 133
55
EXTRAVERSION =
66
NAME = Kleptomaniac Octopus
77

arch/mips/boot/compressed/string.c

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
* Very small subset of simple string routines
66
*/
77

8+
#include <linux/compiler_attributes.h>
89
#include <linux/types.h>
910

1011
void *memcpy(void *dest, const void *src, size_t n)
@@ -27,3 +28,19 @@ void *memset(void *s, int c, size_t n)
2728
ss[i] = c;
2829
return s;
2930
}
31+
32+
void * __weak memmove(void *dest, const void *src, size_t n)
33+
{
34+
unsigned int i;
35+
const char *s = src;
36+
char *d = dest;
37+
38+
if ((uintptr_t)dest < (uintptr_t)src) {
39+
for (i = 0; i < n; i++)
40+
d[i] = s[i];
41+
} else {
42+
for (i = n; i > 0; i--)
43+
d[i - 1] = s[i - 1];
44+
}
45+
return dest;
46+
}

arch/mips/include/asm/hugetlb.h

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,13 @@ static inline pte_t huge_ptep_get_and_clear(struct mm_struct *mm,
5353
static inline void huge_ptep_clear_flush(struct vm_area_struct *vma,
5454
unsigned long addr, pte_t *ptep)
5555
{
56-
flush_tlb_page(vma, addr & huge_page_mask(hstate_vma(vma)));
56+
/*
57+
* clear the huge pte entry firstly, so that the other smp threads will
58+
* not get old pte entry after finishing flush_tlb_page and before
59+
* setting new huge pte entry
60+
*/
61+
huge_ptep_get_and_clear(vma->vm_mm, addr, ptep);
62+
flush_tlb_page(vma, addr);
5763
}
5864

5965
#define __HAVE_ARCH_HUGE_PTE_NONE

arch/mips/include/asm/mipsregs.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2007,7 +2007,7 @@ _ASM_MACRO_0(tlbginvf, _ASM_INSN_IF_MIPS(0x4200000c)
20072007
({ int __res; \
20082008
__asm__ __volatile__( \
20092009
".set\tpush\n\t" \
2010-
".set\tmips32r2\n\t" \
2010+
".set\tmips32r5\n\t" \
20112011
_ASM_SET_VIRT \
20122012
"mfgc0\t%0, " #source ", %1\n\t" \
20132013
".set\tpop" \
@@ -2020,7 +2020,7 @@ _ASM_MACRO_0(tlbginvf, _ASM_INSN_IF_MIPS(0x4200000c)
20202020
({ unsigned long long __res; \
20212021
__asm__ __volatile__( \
20222022
".set\tpush\n\t" \
2023-
".set\tmips64r2\n\t" \
2023+
".set\tmips64r5\n\t" \
20242024
_ASM_SET_VIRT \
20252025
"dmfgc0\t%0, " #source ", %1\n\t" \
20262026
".set\tpop" \
@@ -2033,7 +2033,7 @@ _ASM_MACRO_0(tlbginvf, _ASM_INSN_IF_MIPS(0x4200000c)
20332033
do { \
20342034
__asm__ __volatile__( \
20352035
".set\tpush\n\t" \
2036-
".set\tmips32r2\n\t" \
2036+
".set\tmips32r5\n\t" \
20372037
_ASM_SET_VIRT \
20382038
"mtgc0\t%z0, " #register ", %1\n\t" \
20392039
".set\tpop" \
@@ -2045,7 +2045,7 @@ do { \
20452045
do { \
20462046
__asm__ __volatile__( \
20472047
".set\tpush\n\t" \
2048-
".set\tmips64r2\n\t" \
2048+
".set\tmips64r5\n\t" \
20492049
_ASM_SET_VIRT \
20502050
"dmtgc0\t%z0, " #register ", %1\n\t" \
20512051
".set\tpop" \

arch/mips/include/asm/pgalloc.h

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,11 +62,15 @@ do { \
6262

6363
static inline pmd_t *pmd_alloc_one(struct mm_struct *mm, unsigned long address)
6464
{
65-
pmd_t *pmd;
65+
pmd_t *pmd = NULL;
66+
struct page *pg;
6667

67-
pmd = (pmd_t *) __get_free_pages(GFP_KERNEL, PMD_ORDER);
68-
if (pmd)
68+
pg = alloc_pages(GFP_KERNEL | __GFP_ACCOUNT, PMD_ORDER);
69+
if (pg) {
70+
pgtable_pmd_page_ctor(pg);
71+
pmd = (pmd_t *)page_address(pg);
6972
pmd_init((unsigned long)pmd, (unsigned long)invalid_pte_table);
73+
}
7074
return pmd;
7175
}
7276

arch/mips/loongson64/loongson-3/numa.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,9 @@ static void __init node_mem_init(unsigned int node)
200200
if (node_end_pfn(0) >= (0xffffffff >> PAGE_SHIFT))
201201
memblock_reserve((node_addrspace_offset | 0xfe000000),
202202
32 << 20);
203+
204+
/* Reserve pfn range 0~node[0]->node_start_pfn */
205+
memblock_reserve(0, PAGE_SIZE * start_pfn);
203206
}
204207
}
205208

arch/powerpc/include/asm/barrier.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@
4444
# define SMPWMB eieio
4545
#endif
4646

47+
/* clang defines this macro for a builtin, which will not work with runtime patching */
48+
#undef __lwsync
4749
#define __lwsync() __asm__ __volatile__ (stringify_in_c(LWSYNC) : : :"memory")
4850
#define dma_rmb() __lwsync()
4951
#define dma_wmb() __asm__ __volatile__ (stringify_in_c(SMPWMB) : : :"memory")

arch/powerpc/mm/fault.c

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -204,9 +204,7 @@ static bool bad_kernel_fault(struct pt_regs *regs, unsigned long error_code,
204204
{
205205
int is_exec = TRAP(regs) == 0x400;
206206

207-
/* NX faults set DSISR_PROTFAULT on the 8xx, DSISR_NOEXEC_OR_G on others */
208-
if (is_exec && (error_code & (DSISR_NOEXEC_OR_G | DSISR_KEYFAULT |
209-
DSISR_PROTFAULT))) {
207+
if (is_exec) {
210208
pr_crit_ratelimited("kernel tried to execute %s page (%lx) - exploit attempt? (uid: %d)\n",
211209
address >= TASK_SIZE ? "exec-protected" : "user",
212210
address,

block/blk-rq-qos.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -266,8 +266,8 @@ void rq_qos_wait(struct rq_wait *rqw, void *private_data,
266266
if (!has_sleeper && acquire_inflight_cb(rqw, private_data))
267267
return;
268268

269-
prepare_to_wait_exclusive(&rqw->wait, &data.wq, TASK_UNINTERRUPTIBLE);
270-
has_sleeper = !wq_has_single_sleeper(&rqw->wait);
269+
has_sleeper = !prepare_to_wait_exclusive(&rqw->wait, &data.wq,
270+
TASK_UNINTERRUPTIBLE);
271271
do {
272272
/* The memory barrier in set_task_state saves us here. */
273273
if (data.got_token)

drivers/ata/ahci_sunxi.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,7 @@ static void ahci_sunxi_start_engine(struct ata_port *ap)
200200
}
201201

202202
static const struct ata_port_info ahci_sunxi_port_info = {
203-
.flags = AHCI_FLAG_COMMON | ATA_FLAG_NCQ,
203+
.flags = AHCI_FLAG_COMMON | ATA_FLAG_NCQ | ATA_FLAG_NO_DIPM,
204204
.pio_mask = ATA_PIO4,
205205
.udma_mask = ATA_UDMA6,
206206
.port_ops = &ahci_platform_ops,

0 commit comments

Comments
 (0)