Skip to content

Commit e3ffe38

Browse files
authored
Merge pull request #98 from zandrey/5.4-1.0.0-imx
Update 5.4-1.0.0-imx to v5.4.56 from stable
2 parents 84b7307 + ddab859 commit e3ffe38

File tree

92 files changed

+572
-285
lines changed

Some content is hidden

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

92 files changed

+572
-285
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 = 55
4+
SUBLEVEL = 56
55
EXTRAVERSION =
66
NAME = Kleptomaniac Octopus
77

arch/arm/boot/dts/armada-38x.dtsi

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -339,7 +339,8 @@
339339

340340
comphy: phy@18300 {
341341
compatible = "marvell,armada-380-comphy";
342-
reg = <0x18300 0x100>;
342+
reg-names = "comphy", "conf";
343+
reg = <0x18300 0x100>, <0x18460 4>;
343344
#address-cells = <1>;
344345
#size-cells = <0>;
345346

arch/arm/boot/dts/imx6qdl-icore.dtsi

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -384,7 +384,7 @@
384384

385385
pinctrl_usbotg: usbotggrp {
386386
fsl,pins = <
387-
MX6QDL_PAD_GPIO_1__USB_OTG_ID 0x17059
387+
MX6QDL_PAD_ENET_RX_ER__USB_OTG_ID 0x17059
388388
>;
389389
};
390390

@@ -396,6 +396,7 @@
396396
MX6QDL_PAD_SD1_DAT1__SD1_DATA1 0x17070
397397
MX6QDL_PAD_SD1_DAT2__SD1_DATA2 0x17070
398398
MX6QDL_PAD_SD1_DAT3__SD1_DATA3 0x17070
399+
MX6QDL_PAD_GPIO_1__GPIO1_IO01 0x1b0b0
399400
>;
400401
};
401402

arch/arm/boot/dts/sun4i-a10.dtsi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@
198198
default-pool {
199199
compatible = "shared-dma-pool";
200200
size = <0x6000000>;
201-
alloc-ranges = <0x4a000000 0x6000000>;
201+
alloc-ranges = <0x40000000 0x10000000>;
202202
reusable;
203203
linux,cma-default;
204204
};

arch/arm/boot/dts/sun5i.dtsi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@
117117
default-pool {
118118
compatible = "shared-dma-pool";
119119
size = <0x6000000>;
120-
alloc-ranges = <0x4a000000 0x6000000>;
120+
alloc-ranges = <0x40000000 0x10000000>;
121121
reusable;
122122
linux,cma-default;
123123
};

arch/arm/boot/dts/sun7i-a20.dtsi

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,7 @@
180180
default-pool {
181181
compatible = "shared-dma-pool";
182182
size = <0x6000000>;
183-
alloc-ranges = <0x4a000000 0x6000000>;
183+
alloc-ranges = <0x40000000 0x10000000>;
184184
reusable;
185185
linux,cma-default;
186186
};

arch/arm/kernel/hw_breakpoint.c

Lines changed: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -680,6 +680,12 @@ static void disable_single_step(struct perf_event *bp)
680680
arch_install_hw_breakpoint(bp);
681681
}
682682

683+
static int watchpoint_fault_on_uaccess(struct pt_regs *regs,
684+
struct arch_hw_breakpoint *info)
685+
{
686+
return !user_mode(regs) && info->ctrl.privilege == ARM_BREAKPOINT_USER;
687+
}
688+
683689
static void watchpoint_handler(unsigned long addr, unsigned int fsr,
684690
struct pt_regs *regs)
685691
{
@@ -739,16 +745,27 @@ static void watchpoint_handler(unsigned long addr, unsigned int fsr,
739745
}
740746

741747
pr_debug("watchpoint fired: address = 0x%x\n", info->trigger);
748+
749+
/*
750+
* If we triggered a user watchpoint from a uaccess routine,
751+
* then handle the stepping ourselves since userspace really
752+
* can't help us with this.
753+
*/
754+
if (watchpoint_fault_on_uaccess(regs, info))
755+
goto step;
756+
742757
perf_bp_event(wp, regs);
743758

744759
/*
745-
* If no overflow handler is present, insert a temporary
746-
* mismatch breakpoint so we can single-step over the
747-
* watchpoint trigger.
760+
* Defer stepping to the overflow handler if one is installed.
761+
* Otherwise, insert a temporary mismatch breakpoint so that
762+
* we can single-step over the watchpoint trigger.
748763
*/
749-
if (is_default_overflow_handler(wp))
750-
enable_single_step(wp, instruction_pointer(regs));
764+
if (!is_default_overflow_handler(wp))
765+
goto unlock;
751766

767+
step:
768+
enable_single_step(wp, instruction_pointer(regs));
752769
unlock:
753770
rcu_read_unlock();
754771
}

arch/arm64/include/asm/alternative.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,9 +77,9 @@ static inline void apply_alternatives_module(void *start, size_t length) { }
7777
"663:\n\t" \
7878
newinstr "\n" \
7979
"664:\n\t" \
80-
".previous\n\t" \
8180
".org . - (664b-663b) + (662b-661b)\n\t" \
82-
".org . - (662b-661b) + (664b-663b)\n" \
81+
".org . - (662b-661b) + (664b-663b)\n\t" \
82+
".previous\n" \
8383
".endif\n"
8484

8585
#define __ALTERNATIVE_CFG_CB(oldinstr, feature, cfg_enabled, cb) \

arch/arm64/include/asm/checksum.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,16 +19,17 @@ static inline __sum16 ip_fast_csum(const void *iph, unsigned int ihl)
1919
{
2020
__uint128_t tmp;
2121
u64 sum;
22+
int n = ihl; /* we want it signed */
2223

2324
tmp = *(const __uint128_t *)iph;
2425
iph += 16;
25-
ihl -= 4;
26+
n -= 4;
2627
tmp += ((tmp >> 64) | (tmp << 64));
2728
sum = tmp >> 64;
2829
do {
2930
sum += *(const u32 *)iph;
3031
iph += 4;
31-
} while (--ihl);
32+
} while (--n > 0);
3233

3334
sum += ((sum >> 32) | (sum << 32));
3435
return csum_fold((__force u32)(sum >> 32));

arch/parisc/include/asm/cmpxchg.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ extern void __cmpxchg_called_with_bad_pointer(void);
6060
extern unsigned long __cmpxchg_u32(volatile unsigned int *m, unsigned int old,
6161
unsigned int new_);
6262
extern u64 __cmpxchg_u64(volatile u64 *ptr, u64 old, u64 new_);
63+
extern u8 __cmpxchg_u8(volatile u8 *ptr, u8 old, u8 new_);
6364

6465
/* don't worry...optimizer will get rid of most of this */
6566
static inline unsigned long
@@ -71,6 +72,7 @@ __cmpxchg(volatile void *ptr, unsigned long old, unsigned long new_, int size)
7172
#endif
7273
case 4: return __cmpxchg_u32((unsigned int *)ptr,
7374
(unsigned int)old, (unsigned int)new_);
75+
case 1: return __cmpxchg_u8((u8 *)ptr, (u8)old, (u8)new_);
7476
}
7577
__cmpxchg_called_with_bad_pointer();
7678
return old;

0 commit comments

Comments
 (0)