]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
Merge branch 'irq-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip...
authorLinus Torvalds <torvalds@linux-foundation.org>
Wed, 10 Jun 2009 22:25:41 +0000 (15:25 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 10 Jun 2009 22:25:41 +0000 (15:25 -0700)
* 'irq-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (76 commits)
  x86, apic: Fix dummy apic read operation together with broken MP handling
  x86, apic: Restore irqs on fail paths
  x86: Print real IOAPIC version for x86-64
  x86: enable_update_mptable should be a macro
  sparseirq: Allow early irq_desc allocation
  x86, io-apic: Don't mark pin_programmed early
  x86, irq: don't call mp_config_acpi_gsi() if update_mptable is not enabled
  x86, irq: update_mptable needs pci_routeirq
  x86: don't call read_apic_id if !cpu_has_apic
  x86, apic: introduce io_apic_irq_attr
  x86/pci: add 4 more return parameters to IO_APIC_get_PCI_irq_vector(), fix
  x86: read apic ID in the !acpi_lapic case
  x86: apic: Fixmap apic address even if apic disabled
  x86: display extended apic registers with print_local_APIC and cpu_debug code
  x86: read apic ID in the !acpi_lapic case
  x86: clean up and fix setup_clear/force_cpu_cap handling
  x86: apic: Check rev 3 fadt correctly for physical_apic bit
  x86/pci: update pirq_enable_irq() to setup io apic routing
  x86/acpi: move setup io apic routing out of CONFIG_ACPI scope
  x86/pci: add 4 more return parameters to IO_APIC_get_PCI_irq_vector()
  ...

1  2 
arch/x86/lguest/boot.c

diff --combined arch/x86/lguest/boot.c
index 33a93b41739612cafe1fe3d918c39a3915f86a78,45acbcf2568332ca80d64551dac3fbb30134c490..ef4205c1a7a540c99d33c593e7dd37f9bf4add40
@@@ -67,7 -67,6 +67,7 @@@
  #include <asm/mce.h>
  #include <asm/io.h>
  #include <asm/i387.h>
 +#include <asm/stackprotector.h>
  #include <asm/reboot.h>               /* for struct machine_ops */
  
  /*G:010 Welcome to the Guest!
@@@ -637,7 -636,7 +637,7 @@@ static void __init lguest_init_IRQ(void
  
  void lguest_setup_irq(unsigned int irq)
  {
-       irq_to_desc_alloc_cpu(irq, 0);
+       irq_to_desc_alloc_node(irq, 0);
        set_irq_chip_and_handler_name(irq, &lguest_irq_controller,
                                      handle_level_irq, "level");
  }
@@@ -1089,21 -1088,13 +1089,21 @@@ __init void lguest_init(void
         * lguest_init() where the rest of the fairly chaotic boot setup
         * occurs. */
  
 +      /* The stack protector is a weird thing where gcc places a canary
 +       * value on the stack and then checks it on return.  This file is
 +       * compiled with -fno-stack-protector it, so we got this far without
 +       * problems.  The value of the canary is kept at offset 20 from the
 +       * %gs register, so we need to set that up before calling C functions
 +       * in other files. */
 +      setup_stack_canary_segment(0);
 +      /* We could just call load_stack_canary_segment(), but we might as
 +       * call switch_to_new_gdt() which loads the whole table and sets up
 +       * the per-cpu segment descriptor register %fs as well. */
 +      switch_to_new_gdt(0);
 +
        /* As described in head_32.S, we map the first 128M of memory. */
        max_pfn_mapped = (128*1024*1024) >> PAGE_SHIFT;
  
 -      /* Load the %fs segment register (the per-cpu segment register) with
 -       * the normal data segment to get through booting. */
 -      asm volatile ("mov %0, %%fs" : : "r" (__KERNEL_DS) : "memory");
 -
        /* The Host<->Guest Switcher lives at the top of our address space, and
         * the Host told us how big it is when we made LGUEST_INIT hypercall:
         * it put the answer in lguest_data.reserve_mem  */