Skip to content

Commit

Permalink
Upgrade to Linux 3.4.86
Browse files Browse the repository at this point in the history
  • Loading branch information
adrian-bl committed May 5, 2014
1 parent c1e0f28 commit 65dcddd
Show file tree
Hide file tree
Showing 204 changed files with 2,102 additions and 995 deletions.
2 changes: 1 addition & 1 deletion Makefile
@@ -1,6 +1,6 @@
VERSION = 3
PATCHLEVEL = 4
SUBLEVEL = 82
SUBLEVEL = 86
EXTRAVERSION =
NAME = Saber-toothed Squirrel

Expand Down
1 change: 1 addition & 0 deletions arch/arm/include/asm/cacheflush.h
Expand Up @@ -224,6 +224,7 @@ extern void copy_to_user_page(struct vm_area_struct *, struct page *,
static inline void __flush_icache_all(void)
{
__flush_icache_preferred();
dsb();
}

#define flush_cache_all() __cpuc_flush_kern_all()
Expand Down
4 changes: 2 additions & 2 deletions arch/arm/include/asm/outercache.h
Expand Up @@ -37,10 +37,10 @@ struct outer_cache_fns {
void (*resume)(void);
};

#ifdef CONFIG_OUTER_CACHE

extern struct outer_cache_fns outer_cache;

#ifdef CONFIG_OUTER_CACHE

static inline void outer_inv_range(phys_addr_t start, phys_addr_t end)
{
if (outer_cache.inv_range)
Expand Down
2 changes: 2 additions & 0 deletions arch/arm/mach-sa1100/include/mach/collie.h
Expand Up @@ -13,6 +13,8 @@
#ifndef __ASM_ARCH_COLLIE_H
#define __ASM_ARCH_COLLIE_H

#include "hardware.h" /* Gives GPIO_MAX */

extern void locomolcd_power(int on);

#define COLLIE_SCOOP_GPIO_BASE (GPIO_MAX + 1)
Expand Down
3 changes: 2 additions & 1 deletion arch/arm/mm/proc-v6.S
Expand Up @@ -208,7 +208,6 @@ __v6_setup:
mcr p15, 0, r0, c7, c14, 0 @ clean+invalidate D cache
mcr p15, 0, r0, c7, c5, 0 @ invalidate I cache
mcr p15, 0, r0, c7, c15, 0 @ clean+invalidate cache
mcr p15, 0, r0, c7, c10, 4 @ drain write buffer
#ifdef CONFIG_MMU
mcr p15, 0, r0, c8, c7, 0 @ invalidate I + D TLBs
mcr p15, 0, r0, c2, c0, 2 @ TTB control register
Expand All @@ -218,6 +217,8 @@ __v6_setup:
ALT_UP(orr r8, r8, #TTB_FLAGS_UP)
mcr p15, 0, r8, c2, c0, 1 @ load TTB1
#endif /* CONFIG_MMU */
mcr p15, 0, r0, c7, c10, 4 @ drain write buffer and
@ complete invalidations
adr r5, v6_crval
ldmia r5, {r5, r6}
#ifdef CONFIG_CPU_ENDIAN_BE8
Expand Down
3 changes: 1 addition & 2 deletions arch/arm/mm/proc-v7.S
Expand Up @@ -249,7 +249,6 @@ __v7_setup:

3: mov r10, #0
mcr p15, 0, r10, c7, c5, 0 @ I+BTB cache invalidate
dsb
#ifdef CONFIG_MMU
mcr p15, 0, r10, c8, c7, 0 @ invalidate I + D TLBs
v7_ttb_setup r10, r4, r8, r5 @ TTBCR, TTBRx setup
Expand Down Expand Up @@ -282,7 +281,7 @@ __v7_setup:
orr r0, r0, #0x1 << 21
mcr p15, 3, r0, c15, c0, 2
#endif

dsb @ Complete invalidations
#ifndef CONFIG_ARM_THUMBEE
mrc p15, 0, r0, c0, c1, 0 @ read ID_PFR0 for ThumbEE
and r0, r0, #(0xf << 12) @ ThumbEE enabled field
Expand Down
2 changes: 1 addition & 1 deletion arch/avr32/Makefile
Expand Up @@ -11,7 +11,7 @@ all: uImage vmlinux.elf

KBUILD_DEFCONFIG := atstk1002_defconfig

KBUILD_CFLAGS += -pipe -fno-builtin -mno-pic
KBUILD_CFLAGS += -pipe -fno-builtin -mno-pic -D__linux__
KBUILD_AFLAGS += -mrelax -mno-pic
KBUILD_CFLAGS_MODULE += -mno-relax
LDFLAGS_vmlinux += --relax
Expand Down
1 change: 1 addition & 0 deletions arch/avr32/boards/mimc200/fram.c
Expand Up @@ -11,6 +11,7 @@
#define FRAM_VERSION "1.0"

#include <linux/miscdevice.h>
#include <linux/module.h>
#include <linux/proc_fs.h>
#include <linux/mm.h>
#include <linux/io.h>
Expand Down
8 changes: 5 additions & 3 deletions arch/powerpc/kernel/crash_dump.c
Expand Up @@ -108,17 +108,19 @@ ssize_t copy_oldmem_page(unsigned long pfn, char *buf,
size_t csize, unsigned long offset, int userbuf)
{
void *vaddr;
phys_addr_t paddr;

if (!csize)
return 0;

csize = min_t(size_t, csize, PAGE_SIZE);
paddr = pfn << PAGE_SHIFT;

if ((min_low_pfn < pfn) && (pfn < max_pfn)) {
vaddr = __va(pfn << PAGE_SHIFT);
if (memblock_is_region_memory(paddr, csize)) {
vaddr = __va(paddr);
csize = copy_oldmem_vaddr(vaddr, buf, csize, offset, userbuf);
} else {
vaddr = __ioremap(pfn << PAGE_SHIFT, PAGE_SIZE, 0);
vaddr = __ioremap(paddr, PAGE_SIZE, 0);
csize = copy_oldmem_vaddr(vaddr, buf, csize, offset, userbuf);
iounmap(vaddr);
}
Expand Down
1 change: 1 addition & 0 deletions arch/powerpc/kernel/reloc_64.S
Expand Up @@ -81,6 +81,7 @@ _GLOBAL(relocate)

6: blr

.balign 8
p_dyn: .llong __dynamic_start - 0b
p_rela: .llong __rela_dyn_start - 0b
p_st: .llong _stext - 0b
Expand Down
2 changes: 2 additions & 0 deletions arch/powerpc/kvm/emulate.c
Expand Up @@ -36,6 +36,7 @@
#define OP_TRAP_64 2

#define OP_31_XOP_LWZX 23
#define OP_31_XOP_DCBF 86
#define OP_31_XOP_LBZX 87
#define OP_31_XOP_STWX 151
#define OP_31_XOP_STBX 215
Expand Down Expand Up @@ -373,6 +374,7 @@ int kvmppc_emulate_instruction(struct kvm_run *run, struct kvm_vcpu *vcpu)
kvmppc_set_exit_type(vcpu, EMULATED_MTSPR_EXITS);
break;

case OP_31_XOP_DCBF:
case OP_31_XOP_DCBI:
/* Do nothing. The guest is performing dcbi because
* hardware DMA is not snooped by the dcache, but
Expand Down
14 changes: 8 additions & 6 deletions arch/s390/kvm/kvm-s390.c
Expand Up @@ -525,13 +525,18 @@ static int __vcpu_run(struct kvm_vcpu *vcpu)
if (!kvm_is_ucontrol(vcpu->kvm))
kvm_s390_deliver_pending_interrupts(vcpu);

VCPU_EVENT(vcpu, 6, "entering sie flags %x",
atomic_read(&vcpu->arch.sie_block->cpuflags));

vcpu->arch.sie_block->icptcode = 0;
local_irq_disable();
kvm_guest_enter();
local_irq_enable();
VCPU_EVENT(vcpu, 6, "entering sie flags %x",
atomic_read(&vcpu->arch.sie_block->cpuflags));
rc = sie64a(vcpu->arch.sie_block, vcpu->run->s.regs.gprs);
local_irq_disable();
kvm_guest_exit();
local_irq_enable();

if (rc) {
if (kvm_is_ucontrol(vcpu->kvm)) {
rc = SIE_INTERCEPT_UCONTROL;
Expand All @@ -543,9 +548,6 @@ static int __vcpu_run(struct kvm_vcpu *vcpu)
}
VCPU_EVENT(vcpu, 6, "exit sie icptcode %d",
vcpu->arch.sie_block->icptcode);
local_irq_disable();
kvm_guest_exit();
local_irq_enable();

memcpy(&vcpu->run->s.regs.gprs[14], &vcpu->arch.sie_block->gg14, 16);
return rc;
Expand Down Expand Up @@ -902,7 +904,7 @@ static int __init kvm_s390_init(void)
}
memcpy(facilities, S390_lowcore.stfle_fac_list, 16);
facilities[0] &= 0xff00fff3f47c0000ULL;
facilities[1] &= 0x201c000000000000ULL;
facilities[1] &= 0x001c000000000000ULL;
return 0;
}

Expand Down
3 changes: 2 additions & 1 deletion arch/x86/include/asm/topology.h
Expand Up @@ -157,9 +157,10 @@ static inline void setup_node_to_cpumask_map(void) { }

extern const struct cpumask *cpu_coregroup_mask(int cpu);

#ifdef ENABLE_TOPO_DEFINES
#define topology_physical_package_id(cpu) (cpu_data(cpu).phys_proc_id)
#define topology_core_id(cpu) (cpu_data(cpu).cpu_core_id)

#ifdef ENABLE_TOPO_DEFINES
#define topology_core_cpumask(cpu) (per_cpu(cpu_core_map, cpu))
#define topology_thread_cpumask(cpu) (per_cpu(cpu_sibling_map, cpu))

Expand Down
3 changes: 3 additions & 0 deletions arch/x86/kernel/cpu/perf_event.c
Expand Up @@ -1165,6 +1165,9 @@ static void x86_pmu_del(struct perf_event *event, int flags)
for (i = 0; i < cpuc->n_events; i++) {
if (event == cpuc->event_list[i]) {

if (i >= cpuc->n_events - cpuc->n_added)
--cpuc->n_added;

if (x86_pmu.put_event_constraints)
x86_pmu.put_event_constraints(cpuc, event);

Expand Down
2 changes: 1 addition & 1 deletion arch/x86/kernel/quirks.c
Expand Up @@ -525,7 +525,7 @@ static void __init quirk_amd_nb_node(struct pci_dev *dev)
return;

pci_read_config_dword(nb_ht, 0x60, &val);
node = val & 7;
node = pcibus_to_node(dev->bus) | (val & 7);
/*
* Some hardware may return an invalid node ID,
* so check it first:
Expand Down
3 changes: 3 additions & 0 deletions arch/x86/kvm/mmu.c
Expand Up @@ -2451,6 +2451,9 @@ static int __direct_map(struct kvm_vcpu *vcpu, gpa_t v, int write,
int emulate = 0;
gfn_t pseudo_gfn;

if (!VALID_PAGE(vcpu->arch.mmu.root_hpa))
return 0;

for_each_shadow_entry(vcpu, (u64)gfn << PAGE_SHIFT, iterator) {
if (iterator.level == level) {
unsigned pte_access = ACC_ALL;
Expand Down
6 changes: 3 additions & 3 deletions arch/x86/kvm/svm.c
Expand Up @@ -3007,10 +3007,8 @@ static int cr8_write_interception(struct vcpu_svm *svm)
u8 cr8_prev = kvm_get_cr8(&svm->vcpu);
/* instruction emulation calls kvm_set_cr8() */
r = cr_interception(svm);
if (irqchip_in_kernel(svm->vcpu.kvm)) {
clr_cr_intercept(svm, INTERCEPT_CR8_WRITE);
if (irqchip_in_kernel(svm->vcpu.kvm))
return r;
}
if (cr8_prev <= kvm_get_cr8(&svm->vcpu))
return r;
kvm_run->exit_reason = KVM_EXIT_SET_TPR;
Expand Down Expand Up @@ -3566,6 +3564,8 @@ static void update_cr8_intercept(struct kvm_vcpu *vcpu, int tpr, int irr)
if (is_guest_mode(vcpu) && (vcpu->arch.hflags & HF_VINTR_MASK))
return;

clr_cr_intercept(svm, INTERCEPT_CR8_WRITE);

if (irr == -1)
return;

Expand Down
2 changes: 1 addition & 1 deletion arch/x86/kvm/vmx.c
Expand Up @@ -6281,8 +6281,8 @@ static void vmx_free_vcpu(struct kvm_vcpu *vcpu)
struct vcpu_vmx *vmx = to_vmx(vcpu);

free_vpid(vmx);
free_nested(vmx);
free_loaded_vmcs(vmx->loaded_vmcs);
free_nested(vmx);
kfree(vmx->guest_msrs);
kvm_vcpu_uninit(vcpu);
kmem_cache_free(kvm_vcpu_cache, vmx);
Expand Down
2 changes: 1 addition & 1 deletion arch/x86/net/bpf_jit.S
Expand Up @@ -140,7 +140,7 @@ bpf_slow_path_byte_msh:
push %r9; \
push SKBDATA; \
/* rsi already has offset */ \
mov $SIZE,%ecx; /* size */ \
mov $SIZE,%edx; /* size */ \
call bpf_internal_load_pointer_neg_helper; \
test %rax,%rax; \
pop SKBDATA; \
Expand Down
4 changes: 4 additions & 0 deletions arch/x86/xen/enlighten.c
Expand Up @@ -1448,6 +1448,10 @@ asmlinkage void __init xen_start_kernel(void)

/* Make sure ACS will be enabled */
pci_request_acs();

/* Avoid searching for BIOS MP tables */
x86_init.mpparse.find_smp_config = x86_init_noop;
x86_init.mpparse.get_smp_config = x86_init_uint_noop;
}
#ifdef CONFIG_PCI
/* PCI BIOS service won't work from a PV guest. */
Expand Down
2 changes: 2 additions & 0 deletions arch/x86/xen/smp.c
Expand Up @@ -576,6 +576,8 @@ static void xen_hvm_cpu_die(unsigned int cpu)
unbind_from_irqhandler(per_cpu(xen_callfunc_irq, cpu), NULL);
unbind_from_irqhandler(per_cpu(xen_debug_irq, cpu), NULL);
unbind_from_irqhandler(per_cpu(xen_callfuncsingle_irq, cpu), NULL);
xen_uninit_lock_cpu(cpu);
xen_teardown_timer(cpu);
native_cpu_die(cpu);
}

Expand Down
12 changes: 11 additions & 1 deletion block/blk-exec.c
Expand Up @@ -49,8 +49,18 @@ void blk_execute_rq_nowait(struct request_queue *q, struct gendisk *bd_disk,
rq_end_io_fn *done)
{
int where = at_head ? ELEVATOR_INSERT_FRONT : ELEVATOR_INSERT_BACK;
bool is_pm_resume;

WARN_ON(irqs_disabled());

rq->rq_disk = bd_disk;
rq->end_io = done;
/*
* need to check this before __blk_run_queue(), because rq can
* be freed before that returns.
*/
is_pm_resume = rq->cmd_type == REQ_TYPE_PM_RESUME;

spin_lock_irq(q->queue_lock);

if (unlikely(blk_queue_dead(q))) {
Expand All @@ -66,7 +76,7 @@ void blk_execute_rq_nowait(struct request_queue *q, struct gendisk *bd_disk,
__elv_add_request(q, rq, where);
__blk_run_queue(q);
/* the queue is stopped so it won't be run */
if (rq->cmd_type == REQ_TYPE_PM_RESUME)
if (is_pm_resume)
q->request_fn(q);
spin_unlock_irq(q->queue_lock);
}
Expand Down

0 comments on commit 65dcddd

Please sign in to comment.