Skip to content

Commit 1357c28

Browse files
authored
Merge pull request torvalds#147 from zandrey/5.4-2.2.x-imx
Update 5.4-2.2.x-imx to v5.4.69 from stable
2 parents ca7317b + e0de7af commit 1357c28

File tree

465 files changed

+5158
-2459
lines changed

Some content is hidden

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

465 files changed

+5158
-2459
lines changed

Documentation/devicetree/bindings/sound/wm8994.txt

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,15 @@ Required properties:
1414
- #gpio-cells : Must be 2. The first cell is the pin number and the
1515
second cell is used to specify optional parameters (currently unused).
1616

17-
- AVDD2-supply, DBVDD1-supply, DBVDD2-supply, DBVDD3-supply, CPVDD-supply,
18-
SPKVDD1-supply, SPKVDD2-supply : power supplies for the device, as covered
19-
in Documentation/devicetree/bindings/regulator/regulator.txt
17+
- power supplies for the device, as covered in
18+
Documentation/devicetree/bindings/regulator/regulator.txt, depending
19+
on compatible:
20+
- for wlf,wm1811 and wlf,wm8958:
21+
AVDD1-supply, AVDD2-supply, DBVDD1-supply, DBVDD2-supply, DBVDD3-supply,
22+
DCVDD-supply, CPVDD-supply, SPKVDD1-supply, SPKVDD2-supply
23+
- for wlf,wm8994:
24+
AVDD1-supply, AVDD2-supply, DBVDD-supply, DCVDD-supply, CPVDD-supply,
25+
SPKVDD1-supply, SPKVDD2-supply
2026

2127
Optional properties:
2228

@@ -73,11 +79,11 @@ wm8994: codec@1a {
7379

7480
lineout1-se;
7581

82+
AVDD1-supply = <&regulator>;
7683
AVDD2-supply = <&regulator>;
7784
CPVDD-supply = <&regulator>;
78-
DBVDD1-supply = <&regulator>;
79-
DBVDD2-supply = <&regulator>;
80-
DBVDD3-supply = <&regulator>;
85+
DBVDD-supply = <&regulator>;
86+
DCVDD-supply = <&regulator>;
8187
SPKVDD1-supply = <&regulator>;
8288
SPKVDD2-supply = <&regulator>;
8389
};

Documentation/driver-api/libata.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,7 @@ High-level taskfile hooks
250250

251251
::
252252

253-
void (*qc_prep) (struct ata_queued_cmd *qc);
253+
enum ata_completion_errors (*qc_prep) (struct ata_queued_cmd *qc);
254254
int (*qc_issue) (struct ata_queued_cmd *qc);
255255

256256

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 = 68
4+
SUBLEVEL = 69
55
EXTRAVERSION =
66
NAME = Kleptomaniac Octopus
77

arch/arm/include/asm/kvm_emulate.h

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,7 @@ static inline int kvm_vcpu_dabt_get_rd(struct kvm_vcpu *vcpu)
204204
return (kvm_vcpu_get_hsr(vcpu) & HSR_SRT_MASK) >> HSR_SRT_SHIFT;
205205
}
206206

207-
static inline bool kvm_vcpu_dabt_iss1tw(struct kvm_vcpu *vcpu)
207+
static inline bool kvm_vcpu_abt_iss1tw(const struct kvm_vcpu *vcpu)
208208
{
209209
return kvm_vcpu_get_hsr(vcpu) & HSR_DABT_S1PTW;
210210
}
@@ -236,16 +236,21 @@ static inline bool kvm_vcpu_trap_il_is32bit(struct kvm_vcpu *vcpu)
236236
return kvm_vcpu_get_hsr(vcpu) & HSR_IL;
237237
}
238238

239-
static inline u8 kvm_vcpu_trap_get_class(struct kvm_vcpu *vcpu)
239+
static inline u8 kvm_vcpu_trap_get_class(const struct kvm_vcpu *vcpu)
240240
{
241241
return kvm_vcpu_get_hsr(vcpu) >> HSR_EC_SHIFT;
242242
}
243243

244-
static inline bool kvm_vcpu_trap_is_iabt(struct kvm_vcpu *vcpu)
244+
static inline bool kvm_vcpu_trap_is_iabt(const struct kvm_vcpu *vcpu)
245245
{
246246
return kvm_vcpu_trap_get_class(vcpu) == HSR_EC_IABT;
247247
}
248248

249+
static inline bool kvm_vcpu_trap_is_exec_fault(const struct kvm_vcpu *vcpu)
250+
{
251+
return kvm_vcpu_trap_is_iabt(vcpu) && !kvm_vcpu_abt_iss1tw(vcpu);
252+
}
253+
249254
static inline u8 kvm_vcpu_trap_get_fault(struct kvm_vcpu *vcpu)
250255
{
251256
return kvm_vcpu_get_hsr(vcpu) & HSR_FSC;

arch/arm/kernel/stacktrace.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,8 @@ static int save_trace(struct stackframe *frame, void *d)
116116
return 0;
117117

118118
regs = (struct pt_regs *)frame->sp;
119+
if ((unsigned long)&regs[1] > ALIGN(frame->sp, THREAD_SIZE))
120+
return 0;
119121

120122
trace->entries[trace->nr_entries++] = regs->ARM_pc;
121123

arch/arm/kernel/traps.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,14 +64,16 @@ static void dump_mem(const char *, const char *, unsigned long, unsigned long);
6464

6565
void dump_backtrace_entry(unsigned long where, unsigned long from, unsigned long frame)
6666
{
67+
unsigned long end = frame + 4 + sizeof(struct pt_regs);
68+
6769
#ifdef CONFIG_KALLSYMS
6870
printk("[<%08lx>] (%ps) from [<%08lx>] (%pS)\n", where, (void *)where, from, (void *)from);
6971
#else
7072
printk("Function entered at [<%08lx>] from [<%08lx>]\n", where, from);
7173
#endif
7274

73-
if (in_entry_text(from))
74-
dump_mem("", "Exception stack", frame + 4, frame + 4 + sizeof(struct pt_regs));
75+
if (in_entry_text(from) && end <= ALIGN(frame, THREAD_SIZE))
76+
dump_mem("", "Exception stack", frame + 4, end);
7577
}
7678

7779
void dump_backtrace_stm(u32 *stack, u32 instruction)

arch/arm/mach-omap2/cpuidle34xx.c

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,7 @@ static int omap3_enter_idle(struct cpuidle_device *dev,
109109
int index)
110110
{
111111
struct omap3_idle_statedata *cx = &omap3_idle_data[index];
112+
int error;
112113

113114
if (omap_irq_pending() || need_resched())
114115
goto return_sleep_time;
@@ -125,8 +126,11 @@ static int omap3_enter_idle(struct cpuidle_device *dev,
125126
* Call idle CPU PM enter notifier chain so that
126127
* VFP context is saved.
127128
*/
128-
if (cx->mpu_state == PWRDM_POWER_OFF)
129-
cpu_pm_enter();
129+
if (cx->mpu_state == PWRDM_POWER_OFF) {
130+
error = cpu_pm_enter();
131+
if (error)
132+
goto out_clkdm_set;
133+
}
130134

131135
/* Execute ARM wfi */
132136
omap_sram_idle();
@@ -139,6 +143,7 @@ static int omap3_enter_idle(struct cpuidle_device *dev,
139143
pwrdm_read_prev_pwrst(mpu_pd) == PWRDM_POWER_OFF)
140144
cpu_pm_exit();
141145

146+
out_clkdm_set:
142147
/* Re-allow idle for C1 */
143148
if (cx->flags & OMAP_CPUIDLE_CX_NO_CLKDM_IDLE)
144149
clkdm_allow_idle(mpu_pd->pwrdm_clkdms[0]);

arch/arm/mach-omap2/cpuidle44xx.c

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,7 @@ static int omap_enter_idle_coupled(struct cpuidle_device *dev,
122122
{
123123
struct idle_statedata *cx = state_ptr + index;
124124
u32 mpuss_can_lose_context = 0;
125+
int error;
125126

126127
/*
127128
* CPU0 has to wait and stay ON until CPU1 is OFF state.
@@ -159,7 +160,9 @@ static int omap_enter_idle_coupled(struct cpuidle_device *dev,
159160
* Call idle CPU PM enter notifier chain so that
160161
* VFP and per CPU interrupt context is saved.
161162
*/
162-
cpu_pm_enter();
163+
error = cpu_pm_enter();
164+
if (error)
165+
goto cpu_pm_out;
163166

164167
if (dev->cpu == 0) {
165168
pwrdm_set_logic_retst(mpu_pd, cx->mpu_logic_state);
@@ -169,13 +172,17 @@ static int omap_enter_idle_coupled(struct cpuidle_device *dev,
169172
* Call idle CPU cluster PM enter notifier chain
170173
* to save GIC and wakeupgen context.
171174
*/
172-
if (mpuss_can_lose_context)
173-
cpu_cluster_pm_enter();
175+
if (mpuss_can_lose_context) {
176+
error = cpu_cluster_pm_enter();
177+
if (error)
178+
goto cpu_cluster_pm_out;
179+
}
174180
}
175181

176182
omap4_enter_lowpower(dev->cpu, cx->cpu_state);
177183
cpu_done[dev->cpu] = true;
178184

185+
cpu_cluster_pm_out:
179186
/* Wakeup CPU1 only if it is not offlined */
180187
if (dev->cpu == 0 && cpumask_test_cpu(1, cpu_online_mask)) {
181188

@@ -197,19 +204,20 @@ static int omap_enter_idle_coupled(struct cpuidle_device *dev,
197204
}
198205
}
199206

200-
/*
201-
* Call idle CPU PM exit notifier chain to restore
202-
* VFP and per CPU IRQ context.
203-
*/
204-
cpu_pm_exit();
205-
206207
/*
207208
* Call idle CPU cluster PM exit notifier chain
208209
* to restore GIC and wakeupgen context.
209210
*/
210211
if (dev->cpu == 0 && mpuss_can_lose_context)
211212
cpu_cluster_pm_exit();
212213

214+
/*
215+
* Call idle CPU PM exit notifier chain to restore
216+
* VFP and per CPU IRQ context.
217+
*/
218+
cpu_pm_exit();
219+
220+
cpu_pm_out:
213221
tick_broadcast_exit();
214222

215223
fail:

arch/arm/mach-omap2/pm34xx.c

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,7 @@ void omap_sram_idle(void)
194194
int per_next_state = PWRDM_POWER_ON;
195195
int core_next_state = PWRDM_POWER_ON;
196196
u32 sdrc_pwr = 0;
197+
int error;
197198

198199
mpu_next_state = pwrdm_read_next_pwrst(mpu_pwrdm);
199200
switch (mpu_next_state) {
@@ -222,8 +223,11 @@ void omap_sram_idle(void)
222223
pwrdm_pre_transition(NULL);
223224

224225
/* PER */
225-
if (per_next_state == PWRDM_POWER_OFF)
226-
cpu_cluster_pm_enter();
226+
if (per_next_state == PWRDM_POWER_OFF) {
227+
error = cpu_cluster_pm_enter();
228+
if (error)
229+
return;
230+
}
227231

228232
/* CORE */
229233
if (core_next_state < PWRDM_POWER_ON) {

arch/arm64/include/asm/kvm_emulate.h

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -299,15 +299,15 @@ static inline int kvm_vcpu_dabt_get_rd(const struct kvm_vcpu *vcpu)
299299
return (kvm_vcpu_get_hsr(vcpu) & ESR_ELx_SRT_MASK) >> ESR_ELx_SRT_SHIFT;
300300
}
301301

302-
static inline bool kvm_vcpu_dabt_iss1tw(const struct kvm_vcpu *vcpu)
302+
static __always_inline bool kvm_vcpu_abt_iss1tw(const struct kvm_vcpu *vcpu)
303303
{
304304
return !!(kvm_vcpu_get_hsr(vcpu) & ESR_ELx_S1PTW);
305305
}
306306

307307
static inline bool kvm_vcpu_dabt_iswrite(const struct kvm_vcpu *vcpu)
308308
{
309309
return !!(kvm_vcpu_get_hsr(vcpu) & ESR_ELx_WNR) ||
310-
kvm_vcpu_dabt_iss1tw(vcpu); /* AF/DBM update */
310+
kvm_vcpu_abt_iss1tw(vcpu); /* AF/DBM update */
311311
}
312312

313313
static inline bool kvm_vcpu_dabt_is_cm(const struct kvm_vcpu *vcpu)
@@ -336,6 +336,11 @@ static inline bool kvm_vcpu_trap_is_iabt(const struct kvm_vcpu *vcpu)
336336
return kvm_vcpu_trap_get_class(vcpu) == ESR_ELx_EC_IABT_LOW;
337337
}
338338

339+
static inline bool kvm_vcpu_trap_is_exec_fault(const struct kvm_vcpu *vcpu)
340+
{
341+
return kvm_vcpu_trap_is_iabt(vcpu) && !kvm_vcpu_abt_iss1tw(vcpu);
342+
}
343+
339344
static inline u8 kvm_vcpu_trap_get_fault(const struct kvm_vcpu *vcpu)
340345
{
341346
return kvm_vcpu_get_hsr(vcpu) & ESR_ELx_FSC;
@@ -373,6 +378,9 @@ static inline int kvm_vcpu_sys_get_rt(struct kvm_vcpu *vcpu)
373378

374379
static inline bool kvm_is_write_fault(struct kvm_vcpu *vcpu)
375380
{
381+
if (kvm_vcpu_abt_iss1tw(vcpu))
382+
return true;
383+
376384
if (kvm_vcpu_trap_is_iabt(vcpu))
377385
return false;
378386

0 commit comments

Comments
 (0)