Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 4486c5f5 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6:
  [IA64] Adjust CMCI mask on CPU hotplug
  [IA64] make flush_tlb_kernel_range() an inline function
  [IA64] Guard elfcorehdr_addr with #if CONFIG_PROC_FS
  [IA64] Fix Altix BTE error return status
  [IA64] Remove assembler warnings on head.S
  [IA64] Remove compiler warinings about uninitialized variable in irq_ia64.c
  [IA64] set_thread_area fails in IA32 chroot
  [IA64] print kernel release in OOPS to make kerneloops.org happy
  [IA64] Two trivial spelling fixes
  [IA64] Avoid unnecessary TLB flushes when allocating memory
  [IA64] ia32 nopage
  [IA64] signal: remove redundant code in setup_sigcontext()
  IA64: Slim down __clear_bit_unlock
parents f941b168 ed5d4026
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -2034,7 +2034,8 @@ sba_init(void)
	if (!ia64_platform_is("hpzx1") && !ia64_platform_is("hpzx1_swiotlb"))
		return 0;

#if defined(CONFIG_IA64_GENERIC) && defined(CONFIG_CRASH_DUMP)
#if defined(CONFIG_IA64_GENERIC) && defined(CONFIG_CRASH_DUMP) && \
        defined(CONFIG_PROC_FS)
	/* If we are booting a kdump kernel, the sba_iommu will
	 * cause devices that were not shutdown properly to MCA
	 * as soon as they are turned back on.  Our only option for
+12 −16
Original line number Diff line number Diff line
@@ -52,33 +52,29 @@ extern struct page *ia32_shared_page[];
extern unsigned long *ia32_gdt;
extern struct page *ia32_gate_page;

struct page *
ia32_install_shared_page (struct vm_area_struct *vma, unsigned long address, int *type)
int
ia32_install_shared_page (struct vm_area_struct *vma, struct vm_fault *vmf)
{
	struct page *pg = ia32_shared_page[smp_processor_id()];
	get_page(pg);
	if (type)
		*type = VM_FAULT_MINOR;
	return pg;
	vmf->page = ia32_shared_page[smp_processor_id()];
	get_page(vmf->page);
	return 0;
}

struct page *
ia32_install_gate_page (struct vm_area_struct *vma, unsigned long address, int *type)
int
ia32_install_gate_page (struct vm_area_struct *vma, struct vm_fault *vmf)
{
	struct page *pg = ia32_gate_page;
	get_page(pg);
	if (type)
		*type = VM_FAULT_MINOR;
	return pg;
	vmf->page = ia32_gate_page;
	get_page(vmf->page);
	return 0;
}


static struct vm_operations_struct ia32_shared_page_vm_ops = {
	.nopage = ia32_install_shared_page
	.fault = ia32_install_shared_page
};

static struct vm_operations_struct ia32_gate_page_vm_ops = {
	.nopage = ia32_install_gate_page
	.fault = ia32_install_gate_page
};

void
+1 −0
Original line number Diff line number Diff line
@@ -1176,6 +1176,7 @@ tlb_purge_done:
	RESTORE_REG(cr.dcr, r25, r17);;
	RESTORE_REG(cr.iva, r25, r17);;
	RESTORE_REG(cr.pta, r25, r17);;
	srlz.d;;	// required not to violate RAW dependency
	RESTORE_REG(cr.itv, r25, r17);;
	RESTORE_REG(cr.pmv, r25, r17);;
	RESTORE_REG(cr.cmcv, r25, r17);;
+2 −2
Original line number Diff line number Diff line
@@ -200,7 +200,7 @@ assign_irq_vector (int irq)
{
	unsigned long flags;
	int vector, cpu;
	cpumask_t domain;
	cpumask_t domain = CPU_MASK_NONE;

	vector = -ENOSPC;

@@ -340,7 +340,7 @@ int create_irq(void)
{
	unsigned long flags;
	int irq, vector, cpu;
	cpumask_t domain;
	cpumask_t domain = CPU_MASK_NONE;

	irq = vector = -ENOSPC;
	spin_lock_irqsave(&vector_lock, flags);
+33 −0
Original line number Diff line number Diff line
@@ -75,6 +75,7 @@
#include <linux/workqueue.h>
#include <linux/cpumask.h>
#include <linux/kdebug.h>
#include <linux/cpu.h>

#include <asm/delay.h>
#include <asm/machvec.h>
@@ -1813,6 +1814,36 @@ ia64_mca_cpu_init(void *cpu_data)
							      PAGE_KERNEL));
}

static void __cpuinit ia64_mca_cmc_vector_adjust(void *dummy)
{
	unsigned long flags;

	local_irq_save(flags);
	if (!cmc_polling_enabled)
		ia64_mca_cmc_vector_enable(NULL);
	local_irq_restore(flags);
}

static int __cpuinit mca_cpu_callback(struct notifier_block *nfb,
				      unsigned long action,
				      void *hcpu)
{
	int hotcpu = (unsigned long) hcpu;

	switch (action) {
	case CPU_ONLINE:
	case CPU_ONLINE_FROZEN:
		smp_call_function_single(hotcpu, ia64_mca_cmc_vector_adjust,
					 NULL, 1, 0);
		break;
	}
	return NOTIFY_OK;
}

static struct notifier_block mca_cpu_notifier __cpuinitdata = {
	.notifier_call = mca_cpu_callback
};

/*
 * ia64_mca_init
 *
@@ -1996,6 +2027,8 @@ ia64_mca_late_init(void)
	if (!mca_init)
		return 0;

	register_hotcpu_notifier(&mca_cpu_notifier);

	/* Setup the CMCI/P vector and handler */
	init_timer(&cmc_poll_timer);
	cmc_poll_timer.function = ia64_mca_cmc_poll;
Loading