07 Mar, 2009

1 commit


26 Feb, 2009

3 commits


20 Feb, 2009

6 commits

  • arch/ia64/xen/xen_pv_ops.c:156: error: xen_init_ops causes a section type conflict
    arch/ia64/xen/xen_pv_ops.c:340: error: xen_iosapic_ops causes a section type conflict

    Signed-off-by: Tony Luck

    Tony Luck
     
  • This patch fixes xen related Kconfigs and add default config
    file for ia64 xen domU.

    Signed-off-by: Isaku Yamahata
    Signed-off-by: Tony Luck

    Isaku Yamahata
     
  • The second call to cpu_clear() is redundant, as we've already removed
    the CPU from cpu_online_map before calling migrate_platform_irqs().

    Signed-off-by: Alex Chiang
    Signed-off-by: Tony Luck

    Alex Chiang
     
  • This reverts commit e7b140365b86aaf94374214c6f4e6decbee2eb0a.

    Commit e7b14036 removes the targetted disabled CPU from the
    cpu_online_map after calls to migrate_platform_irqs and fixup_irqs.

    Paul McKenney states that the reasoning behind the patch was to
    prevent irq handlers from running on CPUs marked offline because:

    RCU happily ignores CPUs that don't have their bits set in
    cpu_online_map, so if there are RCU read-side critical sections
    in the irq handlers being run, RCU will ignore them. If the
    other CPUs were running, they might sequence through the RCU
    state machine, which could result in data structures being
    yanked out from under those irq handlers, which in turn could
    result in oopses or worse.

    Unfortunately, both ia64 functions above look at cpu_online_map to find
    a new CPU to migrate interrupts onto. This means we can potentially
    migrate an interrupt off ourself back to... ourself. Uh oh.

    This causes an oops when we finally try to process pending interrupts on
    the CPU we want to disable. The oops results from calling __do_IRQ with
    a NULL pt_regs:

    Unable to handle kernel NULL pointer dereference (address 0000000000000040)
    Call Trace:
    [] show_stack+0x50/0xa0
    sp=e0000009c922fa00 bsp=e0000009c92214d0
    [] show_regs+0x820/0x860
    sp=e0000009c922fbd0 bsp=e0000009c9221478
    [] die+0x1a0/0x2e0
    sp=e0000009c922fbd0 bsp=e0000009c9221438
    [] ia64_do_page_fault+0x950/0xa80
    sp=e0000009c922fbd0 bsp=e0000009c92213d8
    [] ia64_native_leave_kernel+0x0/0x270
    sp=e0000009c922fc60 bsp=e0000009c92213d8
    [] profile_tick+0xd0/0x1c0
    sp=e0000009c922fe30 bsp=e0000009c9221398
    [] timer_interrupt+0x170/0x3e0
    sp=e0000009c922fe30 bsp=e0000009c9221330
    [] handle_IRQ_event+0x80/0x120
    sp=e0000009c922fe30 bsp=e0000009c92212f8
    [] __do_IRQ+0x160/0x4a0
    sp=e0000009c922fe30 bsp=e0000009c9221290
    [] ia64_process_pending_intr+0x2b0/0x360
    sp=e0000009c922fe30 bsp=e0000009c9221208
    [] fixup_irqs+0xf0/0x2a0
    sp=e0000009c922fe30 bsp=e0000009c92211a8
    [] __cpu_disable+0x140/0x240
    sp=e0000009c922fe30 bsp=e0000009c9221168
    [] take_cpu_down+0x50/0xa0
    sp=e0000009c922fe30 bsp=e0000009c9221148
    [] stop_cpu+0xd0/0x200
    sp=e0000009c922fe30 bsp=e0000009c92210f0
    [] kthread+0xc0/0x140
    sp=e0000009c922fe30 bsp=e0000009c92210c8
    [] kernel_thread_helper+0xd0/0x100
    sp=e0000009c922fe30 bsp=e0000009c92210a0
    [] start_kernel_thread+0x20/0x40
    sp=e0000009c922fe30 bsp=e0000009c92210a0

    I don't like this revert because it is fragile. ia64 is getting lucky
    because we seem to only ever process timer interrupts in this path, but
    if we ever race with an IPI here, we definitely use RCU and have the
    potential of hitting an oops that Paul describes above.

    Patching ia64's timer_interrupt() to check for NULL pt_regs is
    insufficient though, as we still hit the above oops.

    As a short term solution, I do think that this revert is the right
    answer. The revert hold up under repeated testing (24+ hour test runs)
    with this setup:

    - 8-way rx6600
    - randomly toggling CPU online/offline state every 2 seconds
    - running CPU exercisers, memory hog, disk exercisers, and
    network stressors
    - average system load around ~160

    In the long term, we really need to figure out why we set pt_regs = NULL
    in ia64_process_pending_intr(). If it turns out that it is unnecessary
    to do so, then we could safely re-introduce e7b14036 (along with some
    other logic to be smarter about migrating interrupts).

    One final note: x86 also removes the disabled CPU from cpu_online_map
    and then re-enables interrupts for 1ms, presumably to handle any pending
    interrupts:

    arch/x86/kernel/irq_32.c (and irq_64.c):
    cpu_disable_common:
    [remove cpu from cpu_online_map]

    fixup_irqs():
    for_each_irq:
    [break CPU affinities]

    local_irq_enable();
    mdelay(1);
    local_irq_disable();

    So they are doing implicitly what ia64 is doing explicitly.

    Signed-off-by: Alex Chiang
    Signed-off-by: Tony Luck

    Alex Chiang
     
  • BTE_MAX_XFER is wrong. It is one greater than the number of cache
    lines the BTE is actually able to transfer. If you request a transfer
    of exactly BTE_MAX_XFER size, you trip a very cryptic BUG_ON() which
    should certainly be made more clear.

    This patch fixes that constant and also cleans up the BUG_ON()s in
    arch/ia64/sn/kernel/bte.c to test one condition per line.

    Signed-off-by: Robin Holt
    Signed-off-by: Tony Luck

    Robin Holt
     
  • ia64 only defines __early_pfn_to_nid() for SPARSEMEM && NUMA configurations,
    so the recent:

    commit: f2dbcfa738368c8a40d4a5f0b65dc9879577cb21
    mm: clean up for early_pfn_to_nid()

    ends up with some link problems for certain configuration files.

    Fix arch/ia64/Kconfig to only define HAVE_ARCH_EARLY_PFN_TO_NID in the
    cases where we do provide this function.

    Signed-off-by: Tony Luck

    Tony Luck
     

19 Feb, 2009

2 commits

  • Now, early_pfn_in_nid(PFN, NID) may returns false if PFN is a hole.
    and memmap initialization was not done. This was a trouble for
    sparc boot.

    To fix this, the PFN should be initialized and marked as PG_reserved.
    This patch changes early_pfn_in_nid() return true if PFN is a hole.

    Signed-off-by: KAMEZAWA Hiroyuki
    Reported-by: David Miller
    Tested-by: KOSAKI Motohiro
    Cc: Mel Gorman
    Cc: Heiko Carstens
    Cc: [2.6.25.x, 2.6.26.x, 2.6.27.x, 2.6.28.x]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    KAMEZAWA Hiroyuki
     
  • What's happening is that the assertion in mm/page_alloc.c:move_freepages()
    is triggering:

    BUG_ON(page_zone(start_page) != page_zone(end_page));

    Once I knew this is what was happening, I added some annotations:

    if (unlikely(page_zone(start_page) != page_zone(end_page))) {
    printk(KERN_ERR "move_freepages: Bogus zones: "
    "start_page[%p] end_page[%p] zone[%p]\n",
    start_page, end_page, zone);
    printk(KERN_ERR "move_freepages: "
    "start_zone[%p] end_zone[%p]\n",
    page_zone(start_page), page_zone(end_page));
    printk(KERN_ERR "move_freepages: "
    "start_pfn[0x%lx] end_pfn[0x%lx]\n",
    page_to_pfn(start_page), page_to_pfn(end_page));
    printk(KERN_ERR "move_freepages: "
    "start_nid[%d] end_nid[%d]\n",
    page_to_nid(start_page), page_to_nid(end_page));
    ...

    And here's what I got:

    move_freepages: Bogus zones: start_page[2207d0000] end_page[2207dffc0] zone[fffff8103effcb00]
    move_freepages: start_zone[fffff8103effcb00] end_zone[fffff8003fffeb00]
    move_freepages: start_pfn[0x81f600] end_pfn[0x81f7ff]
    move_freepages: start_nid[1] end_nid[0]

    My memory layout on this box is:

    [ 0.000000] Zone PFN ranges:
    [ 0.000000] Normal 0x00000000 -> 0x0081ff5d
    [ 0.000000] Movable zone start PFN for each node
    [ 0.000000] early_node_map[8] active PFN ranges
    [ 0.000000] 0: 0x00000000 -> 0x00020000
    [ 0.000000] 1: 0x00800000 -> 0x0081f7ff
    [ 0.000000] 1: 0x0081f800 -> 0x0081fe50
    [ 0.000000] 1: 0x0081fed1 -> 0x0081fed8
    [ 0.000000] 1: 0x0081feda -> 0x0081fedb
    [ 0.000000] 1: 0x0081fedd -> 0x0081fee5
    [ 0.000000] 1: 0x0081fee7 -> 0x0081ff51
    [ 0.000000] 1: 0x0081ff59 -> 0x0081ff5d

    So it's a block move in that 0x81f600-->0x81f7ff region which triggers
    the problem.

    This patch:

    Declaration of early_pfn_to_nid() is scattered over per-arch include
    files, and it seems it's complicated to know when the declaration is used.
    I think it makes fix-for-memmap-init not easy.

    This patch moves all declaration to include/linux/mm.h

    After this,
    if !CONFIG_NODES_POPULATES_NODE_MAP && !CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID
    -> Use static definition in include/linux/mm.h
    else if !CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID
    -> Use generic definition in mm/page_alloc.c
    else
    -> per-arch back end function will be called.

    Signed-off-by: KAMEZAWA Hiroyuki
    Tested-by: KOSAKI Motohiro
    Reported-by: David Miller
    Cc: Mel Gorman
    Cc: Heiko Carstens
    Cc: [2.6.25.x, 2.6.26.x, 2.6.27.x, 2.6.28.x]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    KAMEZAWA Hiroyuki
     

15 Feb, 2009

3 commits

  • kvm_arch_sync_events is introduced to quiet down all other events may happen
    contemporary with VM destroy process, like IRQ handler and work struct for
    assigned device.

    For kvm_arch_sync_events is called at the very beginning of kvm_destroy_vm(), so
    the state of KVM here is legal and can provide a environment to quiet down other
    events.

    Signed-off-by: Sheng Yang
    Signed-off-by: Avi Kivity

    Sheng Yang
     
  • Kconfig symbols are not available in userspace, and are not stripped by
    headers-install. Avoid their use by adding #defines in to
    suit each architecture.

    Signed-off-by: Avi Kivity

    Avi Kivity
     
  • The floating-point registers f6-f11 is used by vmm and
    saved in kvm-pt-regs, so should set the correct bit mask
    and the pointer in fp_state, otherwise, fpswa may touch
    vmm's fp registers instead of guests'.

    In addition, for fp trap handling, since the instruction
    which leads to fp trap is completely executed, so can't
    use retry machanism to re-execute it, because it may
    pollute some registers.

    Signed-off-by: Yang Zhang
    Signed-off-by: Avi Kivity

    Yang Zhang
     

05 Feb, 2009

1 commit

  • This patch makes the ROM reading code return an error to user space if
    the size of the ROM read is equal to 0.

    The patch also emits a warnings if the contents of the ROM are invalid,
    and documents the effects of the "enable" file on ROM reading.

    Signed-off-by: Timothy S. Nelson
    Acked-by: Alex Villacis-Lasso
    Signed-off-by: Jesse Barnes

    Timothy S. Nelson
     

30 Jan, 2009

1 commit

  • Move DMA-mapping.txt to Documentation/PCI/.

    DMA-mapping.txt was supposed to be moved from Documentation/ to
    Documentation/PCI/. The 00-INDEX files in those two directories
    were updated, along with a few other text files, but the file
    itself somehow escaped being moved, so move it and update more
    text files and source files with its new location.

    Signed-off-by: Randy Dunlap
    Acked-by: Greg Kroah-Hartman
    cc: Jesse Barnes
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     

27 Jan, 2009

1 commit

  • Now that all EEPROM drivers live in the same place, let's harmonize
    their symbol names.

    Also fix eeprom's dependencies, it definitely needs sysfs, and is no
    longer experimental after many years in the kernel tree.

    Signed-off-by: Jean Delvare
    Acked-by: Wolfram Sang
    Cc: David Brownell

    Jean Delvare
     

17 Jan, 2009

2 commits


16 Jan, 2009

5 commits

  • Create a platform specific version of dma_get_required_mask()
    for ia64 SN Altix. All SN Altix platforms support 64 bit DMA
    addressing regardless of the size of system memory.
    Create an ia64 machvec for dma_get_required_mask, with the
    SN version unconditionally returning DMA_64BIT_MASK.

    Signed-off-by: John Keller
    Signed-off-by: Tony Luck

    John Keller
     
  • CONFIG_SATA_VITESSE=y was not added to generic_defconfig when
    sn2_defconfig was removed. SGI Altix systems that use an IO10
    base IO card to drive the root device are unable to boot without
    the Vitesse controller.

    Signed-off-by: Brent Casavant
    Signed-off-by: Robin Holt
    Signed-off-by: Jes Sorensen
    Signed-off-by: Tony Luck

    Brent Casavant
     
  • Often the cause of kernel unaligned access warnings is not
    obvious from just the ip displayed in the warning. This adds
    the option via proc to dump the stack in addition to the warning.
    The default is off (just display the 1 line warning). To enable
    the stack to be shown: echo 1 > /proc/sys/kernel/unaligned-dump-stack

    Signed-off-by: Doug Chapman
    Signed-off-by: Tony Luck

    Doug Chapman
     
  • sched_clock() on ia64 is based on ar.itc, so is never
    completely synchronized between cpus. On some platforms
    (e.g. certain models of SGI Altix) it may be running at
    radically different frequencies.

    Based on a patch from Dimitri Sivanich which set this
    just for SN2 && GENERIC kernels ... it is needed for
    all ia64 machines.

    Signed-off-by: Tony Luck

    Tony Luck
     
  • This patch fixes the following errors caused by
    79741dd35713ff4f6fd0eafd59fa94e8a4ba922d which changed
    the prototypes of account_steal_time() and account_idle_time().

    > CC arch/ia64/xen/time.o
    > arch/ia64/xen/time.c: In function 'consider_steal_time':
    > arch/ia64/xen/time.c:132: warning: passing argument 1 of 'account_steal_time' makes integer from pointer without a cast
    > arch/ia64/xen/time.c:132: error: too many arguments to function 'account_steal_time'
    > arch/ia64/xen/time.c:133: warning: passing argument 1 of 'account_steal_time' makes integer from pointer without a cast
    > arch/ia64/xen/time.c:133: error: too many arguments to function 'account_steal_time'

    Cc: Martin Schwidefsky
    Signed-off-by: Isaku Yamahata
    Signed-off-by: Tony Luck

    Isaku Yamahata
     

15 Jan, 2009

2 commits

  • * 'syscalls' of git://git390.osdl.marist.edu/pub/scm/linux-2.6: (44 commits)
    [CVE-2009-0029] s390 specific system call wrappers
    [CVE-2009-0029] System call wrappers part 33
    [CVE-2009-0029] System call wrappers part 32
    [CVE-2009-0029] System call wrappers part 31
    [CVE-2009-0029] System call wrappers part 30
    [CVE-2009-0029] System call wrappers part 29
    [CVE-2009-0029] System call wrappers part 28
    [CVE-2009-0029] System call wrappers part 27
    [CVE-2009-0029] System call wrappers part 26
    [CVE-2009-0029] System call wrappers part 25
    [CVE-2009-0029] System call wrappers part 24
    [CVE-2009-0029] System call wrappers part 23
    [CVE-2009-0029] System call wrappers part 22
    [CVE-2009-0029] System call wrappers part 21
    [CVE-2009-0029] System call wrappers part 20
    [CVE-2009-0029] System call wrappers part 19
    [CVE-2009-0029] System call wrappers part 18
    [CVE-2009-0029] System call wrappers part 17
    [CVE-2009-0029] System call wrappers part 16
    [CVE-2009-0029] System call wrappers part 15
    ...

    Linus Torvalds
     
  • Add swab.h to kbuild.asm and remove the individual entries from
    each arch, mark as unifdef as some arches have some kernel-only
    bits inside.

    Signed-off-by: Harvey Harrison
    Signed-off-by: Linus Torvalds

    Harvey Harrison
     

14 Jan, 2009

1 commit


10 Jan, 2009

1 commit

  • * 'cpus4096-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    [IA64] fix typo in cpumask_of_pcibus()
    x86: fix x86_32 builds for summit and es7000 arch's
    cpumask: use work_on_cpu in acpi-cpufreq.c for read_measured_perf_ctrs
    cpumask: use work_on_cpu in acpi-cpufreq.c for drv_read and drv_write
    cpumask: use cpumask_var_t in acpi-cpufreq.c
    cpumask: use work_on_cpu in acpi/cstate.c
    cpumask: convert struct cpufreq_policy to cpumask_var_t
    cpumask: replace CPUMASK_ALLOC etc with cpumask_var_t
    x86: cleanup remaining cpumask_t ops in smpboot code
    cpumask: update pci_bus_show_cpuaffinity to use new cpumask API
    cpumask: update local_cpus_show to use new cpumask API
    ia64: cpumask fix for is_affinity_mask_valid()

    Linus Torvalds
     

09 Jan, 2009

3 commits


08 Jan, 2009

1 commit

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (24 commits)
    trivial: chack -> check typo fix in main Makefile
    trivial: Add a space (and a comma) to a printk in 8250 driver
    trivial: Fix misspelling of "firmware" in docs for ncr53c8xx/sym53c8xx
    trivial: Fix misspelling of "firmware" in powerpc Makefile
    trivial: Fix misspelling of "firmware" in usb.c
    trivial: Fix misspelling of "firmware" in qla1280.c
    trivial: Fix misspelling of "firmware" in a100u2w.c
    trivial: Fix misspelling of "firmware" in megaraid.c
    trivial: Fix misspelling of "firmware" in ql4_mbx.c
    trivial: Fix misspelling of "firmware" in acpi_memhotplug.c
    trivial: Fix misspelling of "firmware" in ipw2100.c
    trivial: Fix misspelling of "firmware" in atmel.c
    trivial: Fix misspelled firmware in Kconfig
    trivial: fix an -> a typos in documentation and comments
    trivial: fix then -> than typos in comments and documentation
    trivial: update Jesper Juhl CREDITS entry with new email
    trivial: fix singal -> signal typo
    trivial: Fix incorrect use of "loose" in event.c
    trivial: printk: fix indentation of new_text_line declaration
    trivial: rtc-stk17ta8: fix sparse warning
    ...

    Linus Torvalds
     

07 Jan, 2009

7 commits

  • Signed-off-by: Harvey Harrison
    Signed-off-by: Linus Torvalds

    Harvey Harrison
     
  • …/git/tip/linux-2.6-tip

    * 'core-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    rcu: fix rcutorture bug
    rcu: eliminate synchronize_rcu_xxx macro
    rcu: make treercu safe for suspend and resume
    rcu: fix rcutree grace-period-latency bug on small systems
    futex: catch certain assymetric (get|put)_futex_key calls
    futex: make futex_(get|put)_key() calls symmetric
    locking, percpu counters: introduce separate lock classes
    swiotlb: clean up EXPORT_SYMBOL usage
    swiotlb: remove unnecessary declaration
    swiotlb: replace architecture-specific swiotlb.h with linux/swiotlb.h
    swiotlb: add support for systems with highmem
    swiotlb: store phys address in io_tlb_orig_addr array
    swiotlb: add hwdev to swiotlb_phys_to_bus() / swiotlb_sg_to_bus()

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6: (60 commits)
    uio: make uio_info's name and version const
    UIO: Documentation for UIO ioport info handling
    UIO: Pass information about ioports to userspace (V2)
    UIO: uio_pdrv_genirq: allow custom irq_flags
    UIO: use pci_ioremap_bar() in drivers/uio
    arm: struct device - replace bus_id with dev_name(), dev_set_name()
    libata: struct device - replace bus_id with dev_name(), dev_set_name()
    avr: struct device - replace bus_id with dev_name(), dev_set_name()
    block: struct device - replace bus_id with dev_name(), dev_set_name()
    chris: struct device - replace bus_id with dev_name(), dev_set_name()
    dmi: struct device - replace bus_id with dev_name(), dev_set_name()
    gadget: struct device - replace bus_id with dev_name(), dev_set_name()
    gpio: struct device - replace bus_id with dev_name(), dev_set_name()
    gpu: struct device - replace bus_id with dev_name(), dev_set_name()
    hwmon: struct device - replace bus_id with dev_name(), dev_set_name()
    i2o: struct device - replace bus_id with dev_name(), dev_set_name()
    IA64: struct device - replace bus_id with dev_name(), dev_set_name()
    i7300_idle: struct device - replace bus_id with dev_name(), dev_set_name()
    infiniband: struct device - replace bus_id with dev_name(), dev_set_name()
    ISDN: struct device - replace bus_id with dev_name(), dev_set_name()
    ...

    Linus Torvalds
     
  • Add kprobe_insn_mutex for protecting kprobe_insn_pages hlist, and remove
    kprobe_mutex from architecture dependent code.

    This allows us to call arch_remove_kprobe() (and free_insn_slot) while
    holding kprobe_mutex.

    Signed-off-by: Masami Hiramatsu
    Acked-by: Ananth N Mavinakayanahalli
    Cc: Anil S Keshavamurthy
    Cc: Russell King
    Cc: "Luck, Tony"
    Cc: Paul Mackerras
    Cc: Benjamin Herrenschmidt
    Cc: Martin Schwidefsky
    Cc: Heiko Carstens
    Cc: Ingo Molnar
    Cc: Thomas Gleixner
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Masami Hiramatsu
     
  • The atomic_t type cannot currently be used in some header files because it
    would create an include loop with asm/atomic.h. Move the type definition
    to linux/types.h to break the loop.

    Signed-off-by: Matthew Wilcox
    Cc: Huang Ying
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Matthew Wilcox
     
  • Show node to memory section relationship with symlinks in sysfs

    Add /sys/devices/system/node/nodeX/memoryY symlinks for all
    the memory sections located on nodeX. For example:
    /sys/devices/system/node/node1/memory135 -> ../../memory/memory135
    indicates that memory section 135 resides on node1.

    Also revises documentation to cover this change as well as updating
    Documentation/ABI/testing/sysfs-devices-memory to include descriptions
    of memory hotremove files 'phys_device', 'phys_index', and 'state'
    that were previously not described there.

    In addition to it always being a good policy to provide users with
    the maximum possible amount of physical location information for
    resources that can be hot-added and/or hot-removed, the following
    are some (but likely not all) of the user benefits provided by
    this change.
    Immediate:
    - Provides information needed to determine the specific node
    on which a defective DIMM is located. This will reduce system
    downtime when the node or defective DIMM is swapped out.
    - Prevents unintended onlining of a memory section that was
    previously offlined due to a defective DIMM. This could happen
    during node hot-add when the user or node hot-add assist script
    onlines _all_ offlined sections due to user or script inability
    to identify the specific memory sections located on the hot-added
    node. The consequences of reintroducing the defective memory
    could be ugly.
    - Provides information needed to vary the amount and distribution
    of memory on specific nodes for testing or debugging purposes.
    Future:
    - Will provide information needed to identify the memory
    sections that need to be offlined prior to physical removal
    of a specific node.

    Symlink creation during boot was tested on 2-node x86_64, 2-node
    ppc64, and 2-node ia64 systems. Symlink creation during physical
    memory hot-add tested on a 2-node x86_64 system.

    Signed-off-by: Gary Hade
    Signed-off-by: Badari Pulavarty
    Acked-by: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Gary Hade
     
  • Cc: Tony Luck
    Signed-off-by: Kay Sievers
    Signed-off-by: Greg Kroah-Hartman

    Kay Sievers