Skip to content

Commit edf995d

Browse files
author
Alex Shi
committed
Merge tag 'v4.4.35' into linux-linaro-lsk-v4.4
This is the 4.4.35 stable release
2 parents 5497d2d + 0a5b451 commit edf995d

34 files changed

Lines changed: 309 additions & 102 deletions

File tree

Makefile

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
VERSION = 4
22
PATCHLEVEL = 4
3-
SUBLEVEL = 34
3+
SUBLEVEL = 35
44
EXTRAVERSION =
55
NAME = Blurry Fish Butt
66

@@ -395,11 +395,12 @@ KBUILD_CFLAGS := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \
395395
-fno-strict-aliasing -fno-common \
396396
-Werror-implicit-function-declaration \
397397
-Wno-format-security \
398-
-std=gnu89
398+
-std=gnu89 $(call cc-option,-fno-PIE)
399+
399400

400401
KBUILD_AFLAGS_KERNEL :=
401402
KBUILD_CFLAGS_KERNEL :=
402-
KBUILD_AFLAGS := -D__ASSEMBLY__
403+
KBUILD_AFLAGS := -D__ASSEMBLY__ $(call cc-option,-fno-PIE)
403404
KBUILD_AFLAGS_MODULE := -DMODULE
404405
KBUILD_CFLAGS_MODULE := -DMODULE
405406
KBUILD_LDFLAGS_MODULE := -T $(srctree)/scripts/module-common.lds

arch/x86/kernel/cpu/amd.c

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -352,7 +352,6 @@ static void amd_detect_cmp(struct cpuinfo_x86 *c)
352352
#ifdef CONFIG_SMP
353353
unsigned bits;
354354
int cpu = smp_processor_id();
355-
unsigned int socket_id, core_complex_id;
356355

357356
bits = c->x86_coreid_bits;
358357
/* Low order bits define the core id (index of core in socket) */
@@ -370,10 +369,7 @@ static void amd_detect_cmp(struct cpuinfo_x86 *c)
370369
if (c->x86 != 0x17 || !cpuid_edx(0x80000006))
371370
return;
372371

373-
socket_id = (c->apicid >> bits) - 1;
374-
core_complex_id = (c->apicid & ((1 << bits) - 1)) >> 3;
375-
376-
per_cpu(cpu_llc_id, cpu) = (socket_id << 3) | core_complex_id;
372+
per_cpu(cpu_llc_id, cpu) = c->apicid >> 3;
377373
#endif
378374
}
379375

arch/x86/kvm/x86.c

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -199,16 +199,25 @@ static void kvm_on_user_return(struct user_return_notifier *urn)
199199
struct kvm_shared_msrs *locals
200200
= container_of(urn, struct kvm_shared_msrs, urn);
201201
struct kvm_shared_msr_values *values;
202+
unsigned long flags;
202203

204+
/*
205+
* Disabling irqs at this point since the following code could be
206+
* interrupted and executed through kvm_arch_hardware_disable()
207+
*/
208+
local_irq_save(flags);
209+
if (locals->registered) {
210+
locals->registered = false;
211+
user_return_notifier_unregister(urn);
212+
}
213+
local_irq_restore(flags);
203214
for (slot = 0; slot < shared_msrs_global.nr; ++slot) {
204215
values = &locals->values[slot];
205216
if (values->host != values->curr) {
206217
wrmsrl(shared_msrs_global.msrs[slot], values->host);
207218
values->curr = values->host;
208219
}
209220
}
210-
locals->registered = false;
211-
user_return_notifier_unregister(urn);
212221
}
213222

214223
static void shared_msr_update(unsigned slot, u32 msr)
@@ -3317,14 +3326,17 @@ long kvm_arch_vcpu_ioctl(struct file *filp,
33173326
};
33183327
case KVM_SET_VAPIC_ADDR: {
33193328
struct kvm_vapic_addr va;
3329+
int idx;
33203330

33213331
r = -EINVAL;
33223332
if (!lapic_in_kernel(vcpu))
33233333
goto out;
33243334
r = -EFAULT;
33253335
if (copy_from_user(&va, argp, sizeof va))
33263336
goto out;
3337+
idx = srcu_read_lock(&vcpu->kvm->srcu);
33273338
r = kvm_lapic_set_vapic_addr(vcpu, va.vapic_addr);
3339+
srcu_read_unlock(&vcpu->kvm->srcu, idx);
33283340
break;
33293341
}
33303342
case KVM_X86_SETUP_MCE: {

arch/x86/purgatory/Makefile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ targets += purgatory.ro
1212

1313
KBUILD_CFLAGS := -fno-strict-aliasing -Wall -Wstrict-prototypes -fno-zero-initialized-in-bss -fno-builtin -ffreestanding -c -MD -Os -mcmodel=large
1414
KBUILD_CFLAGS += -m$(BITS)
15+
KBUILD_CFLAGS += $(call cc-option,-fno-PIE)
1516

1617
$(obj)/purgatory.ro: $(PURGATORY_OBJS) FORCE
1718
$(call if_changed,ld)

drivers/base/power/main.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1022,6 +1022,8 @@ static int __device_suspend_noirq(struct device *dev, pm_message_t state, bool a
10221022
TRACE_DEVICE(dev);
10231023
TRACE_SUSPEND(0);
10241024

1025+
dpm_wait_for_children(dev, async);
1026+
10251027
if (async_error)
10261028
goto Complete;
10271029

@@ -1033,8 +1035,6 @@ static int __device_suspend_noirq(struct device *dev, pm_message_t state, bool a
10331035
if (dev->power.syscore || dev->power.direct_complete)
10341036
goto Complete;
10351037

1036-
dpm_wait_for_children(dev, async);
1037-
10381038
if (dev->pm_domain) {
10391039
info = "noirq power domain ";
10401040
callback = pm_noirq_op(&dev->pm_domain->ops, state);
@@ -1169,6 +1169,8 @@ static int __device_suspend_late(struct device *dev, pm_message_t state, bool as
11691169

11701170
__pm_runtime_disable(dev, false);
11711171

1172+
dpm_wait_for_children(dev, async);
1173+
11721174
if (async_error)
11731175
goto Complete;
11741176

@@ -1180,8 +1182,6 @@ static int __device_suspend_late(struct device *dev, pm_message_t state, bool as
11801182
if (dev->power.syscore || dev->power.direct_complete)
11811183
goto Complete;
11821184

1183-
dpm_wait_for_children(dev, async);
1184-
11851185
if (dev->pm_domain) {
11861186
info = "late power domain ";
11871187
callback = pm_late_early_op(&dev->pm_domain->ops, state);

drivers/clk/mmp/clk-of-mmp2.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -313,7 +313,7 @@ static void __init mmp2_clk_init(struct device_node *np)
313313
}
314314

315315
pxa_unit->apmu_base = of_iomap(np, 1);
316-
if (!pxa_unit->mpmu_base) {
316+
if (!pxa_unit->apmu_base) {
317317
pr_err("failed to map apmu registers\n");
318318
return;
319319
}

drivers/clk/mmp/clk-of-pxa168.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -262,7 +262,7 @@ static void __init pxa168_clk_init(struct device_node *np)
262262
}
263263

264264
pxa_unit->apmu_base = of_iomap(np, 1);
265-
if (!pxa_unit->mpmu_base) {
265+
if (!pxa_unit->apmu_base) {
266266
pr_err("failed to map apmu registers\n");
267267
return;
268268
}

drivers/clk/mmp/clk-of-pxa910.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -282,7 +282,7 @@ static void __init pxa910_clk_init(struct device_node *np)
282282
}
283283

284284
pxa_unit->apmu_base = of_iomap(np, 1);
285-
if (!pxa_unit->mpmu_base) {
285+
if (!pxa_unit->apmu_base) {
286286
pr_err("failed to map apmu registers\n");
287287
return;
288288
}
@@ -294,7 +294,7 @@ static void __init pxa910_clk_init(struct device_node *np)
294294
}
295295

296296
pxa_unit->apbcp_base = of_iomap(np, 3);
297-
if (!pxa_unit->mpmu_base) {
297+
if (!pxa_unit->apbcp_base) {
298298
pr_err("failed to map apbcp registers\n");
299299
return;
300300
}

drivers/crypto/caam/caamalg.c

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4542,6 +4542,15 @@ static int __init caam_algapi_init(void)
45424542
if (!aes_inst && (alg_sel == OP_ALG_ALGSEL_AES))
45434543
continue;
45444544

4545+
/*
4546+
* Check support for AES modes not available
4547+
* on LP devices.
4548+
*/
4549+
if ((cha_vid & CHA_ID_LS_AES_MASK) == CHA_ID_LS_AES_LP)
4550+
if ((alg->class1_alg_type & OP_ALG_AAI_MASK) ==
4551+
OP_ALG_AAI_XTS)
4552+
continue;
4553+
45454554
t_alg = caam_alg_alloc(alg);
45464555
if (IS_ERR(t_alg)) {
45474556
err = PTR_ERR(t_alg);

drivers/gpu/drm/amd/amdgpu/amdgpu.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -532,6 +532,7 @@ struct amdgpu_bo {
532532
u64 metadata_flags;
533533
void *metadata;
534534
u32 metadata_size;
535+
unsigned prime_shared_count;
535536
/* list of all virtual address to which this bo
536537
* is associated to
537538
*/

0 commit comments

Comments
 (0)