17 Aug, 2008

3 commits

  • …git/tip/linux-2.6-tip

    * 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (32 commits)
    x86: add MAP_STACK mmap flag
    x86: fix section mismatch warning - spp_getpage()
    x86: change init_gdt to update the gdt via write_gdt, rather than a direct write.
    x86-64: fix overlap of modules and fixmap areas
    x86, geode-mfgpt: check IRQ before using MFGPT as clocksource
    x86, acpi: cleanup, temp_stack is used only when CONFIG_SMP is set
    x86: fix spin_is_contended()
    x86, nmi: clean UP NMI watchdog failure message
    x86, NMI: fix watchdog failure message
    x86: fix /proc/meminfo DirectMap
    x86: fix readb() et al compile error with gcc-3.2.3
    arch/x86/Kconfig: clean up, experimental adjustement
    x86: invalidate caches before going into suspend
    x86, perfctr: don't use CCCR_OVF_PMI1 on Pentium 4Ds
    x86, AMD IOMMU: initialize dma_ops after sysfs registration
    x86m AMD IOMMU: cleanup: replace LOW_U32 macro with generic lower_32_bits
    x86, AMD IOMMU: initialize device table properly
    x86, AMD IOMMU: use status bit instead of memory write-back for completion wait
    x86: silence mmconfig printk
    x86, msr: fix NULL pointer deref due to msr_open on nonexistent CPUs
    ...

    Linus Torvalds
     
  • * master.kernel.org:/home/rmk/linux-2.6-arm: (38 commits)
    [ARM] 5191/1: ARM: remove CVS keywords
    [ARM] pxafb: fix the warning of incorrect lccr when lcd_conn is specified
    [ARM] pxafb: add flag to specify output format on LDD pins when base is RGBT16
    [ARM] pxafb: fix the incorrect configuration of GPIO77 as ACBIAS for TFT LCD
    [ARM] 5198/1: PalmTX: PCMCIA fixes
    [ARM] Fix a pile of broken watchdog drivers
    [ARM] update mach-types
    [ARM] 5196/1: fix inline asm constraints for preload
    [ARM] 5194/1: update .gitignore
    [ARM] add proc-macros.S include to proc-arm940 and proc-arm946
    [ARM] 5192/1: ARM TLB: add v7wbi_{possible,always}_flags to {possible,always}_tlb_flags
    [ARM] 5193/1: Wire up missing syscalls
    [ARM] traps: don't call undef hook functions with spinlock held
    [ARM] 5183/2: Provide Poodle LoCoMo GPIO names
    [ARM] dma-mapping: provide sync_range APIs
    [ARM] dma-mapping: improve type-safeness of DMA translations
    [ARM] Kirkwood: instantiate the orion_spi driver in the platform code
    [ARM] prevent crashing when too much RAM installed
    [ARM] Kirkwood: Instantiate mv_xor driver
    [ARM] Orion: Instantiate mv_xor driver for 5182
    ...

    Linus Torvalds
     
  • This patch removes CVS keywords that weren't updated for a long time.

    Signed-off-by: Adrian Bunk
    Signed-off-by: Russell King

    Adrian Bunk
     

16 Aug, 2008

9 commits

  • Another fix of inconsistent shift of the LCD_BIAS_ACTIVE_* and
    LCD_PCLK_EDGE_* is also included.

    Signed-off-by: Eric Miao
    Signed-off-by: Russell King

    Eric Miao
     
  • Signed-off-by: Russell King

    Russell King
     
  • With gcc 4.3 and later, a pointer that has already been dereferenced is
    assumed not to be null since it should have caused a segmentation fault
    otherwise, hence any subsequent test against NULL is optimized away.

    Current inline asm constraint used in the implementation of prefetch()
    makes gcc believe that the pointer is dereferenced even though the PLD
    instruction does not load any data and does not cause a segmentation
    fault on null pointers, which causes all sorts of interesting results
    when reaching the end of a linked lists for example.

    Let's use a better constraint to properly represent the actual usage of
    the pointer value.

    Problem reported by Chris Steel.

    Signed-off-by: Nicolas Pitre
    Signed-off-by: Russell King

    Nicolas Pitre
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/blackfin-2.6: (33 commits)
    Blackfin arch: hook up some missing new system calls
    Blackfin arch: fix missing digit in SCLK range checking
    Blackfin arch: do not muck with the UART during boot -- let the serial driver worry about it
    Blackfin arch: clear EMAC_SYSTAT during IRQ init rather than early head.S as we dont need it setup that early
    Blackfin arch: use %pF when printing out the double fault address so we get symbol names
    Blackfin arch: add support for the BlackStamp board
    Blackfin arch: Allow ins functions to have a low latency version
    Blackfin arch: Print out doublefault addresses, so debug can occur
    Blackfin arch: shuffle related prototypes together -- no functional changes
    Blackfin arch: move fixed code defines into fixed_code.h as very few things actually need to know these details
    Blackfin arch: mark some functions as __init as they are only called from __init functions
    Blackfin arch: delete dead prototypes
    Blackfin arch: cleanup cache lock code
    Blackfin arch: workaround SIC_IWR1 reset bug, by keeping MDMA0/1 always enabled in SIC_IWR1.
    Blackfin arch: Fix bug - when expanding the trace buffer, it does not print out the decoded instruction.
    Blackfin arch: Fix Bug - System with EMAC driver enabled - Core not idling
    Blackfin arch: delete unused cache functions
    Blackfin arch: convert L2 defines to be the same as the L1 defines
    Blackfin arch: unify the duplicated portions of __start and split mach-specific pieces into _mach_early_start where they will be easier to trim over time
    Blackfin arch: add asm/thread_info.h for THREAD_SIZE define
    ...

    Linus Torvalds
     
  • * 'release-2.6.27' of git://git.kernel.org/pub/scm/linux/kernel/git/ak/linux-acpi-2.6:
    cpuidle: Make ladder governor honor latency requirements fully
    cpuidle: Menu governor fix wrong usage of measured_us
    cpuidle: Do not use poll_idle unless user asks for it
    x86: Fix ioremap off by one BUG

    Linus Torvalds
     
  • WARNING: vmlinux.o(.text+0x17a3e): Section mismatch in reference from the function set_pte_vaddr_pud() to the function .init.text:spp_getpage()
    The function set_pte_vaddr_pud() references
    the function __init spp_getpage().
    This is often because set_pte_vaddr_pud lacks a __init
    annotation or the annotation of spp_getpage is wrong.

    spp_getpage is called from __init (__init_extra_mapping) and
    non __init (set_pte_vaddr_pud) functions, so it can't be __init.
    Unfortunately it calls alloc_bootmem_pages which is __init,
    but does it only when bootmem allocator is available (after_bootmem == 0).

    So annotate it accordingly.

    Signed-off-by: Marcin Slusarz
    Signed-off-by: Ingo Molnar
    Cc: H. Peter Anvin

    Marcin Slusarz
     
  • By writing directly, a memory access violation can occur whilst
    hotplugging a CPU if the entry was previously marked read-only.

    Signed-off-by: Alex Nixon
    Cc: Jeremy Fitzhardinge
    Signed-off-by: Ingo Molnar

    Alex Nixon
     
  • Sam Ravnborg did the build-test that the direct header file move works,
    I'm just committing it.

    This is a pure move:

    mkdir arch/alpha/include
    git mv include/asm-alpha arch/alpha/include/asm

    with no other changes.

    Requested-and-tested-by: Sam Ravnborg
    Cc: Richard Henderson
    Cc: Ivan Kokshaysky
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • Jean Delvare's machine triggered this BUG

    acpi_os_map_memory phys ffff0000 size 65535
    ------------[ cut here ]------------
    kernel BUG at arch/x86/mm/pat.c:233!

    with ACPI in the backtrace.

    Adding some debugging output showed that ACPI calls

    acpi_os_map_memory phys ffff0000 size 65535

    And ioremap/PAT does this check in 32bit, so addr+size wraps and the BUG
    in reserve_memtype() triggers incorrectly.

    BUG_ON(start >= end); /* end is exclusive */

    But reserve_memtype already uses u64:

    int reserve_memtype(u64 start, u64 end,

    so the 32bit truncation must happen in the caller. Presumably in ioremap
    when it passes this information to reserve_memtype().

    This patch does this computation in 64bit.

    http://bugzilla.kernel.org/show_bug.cgi?id=11346

    Signed-off-by: Andi Kleen

    Andi Kleen
     

15 Aug, 2008

20 commits

  • Ingo Molnar
     
  • Ftrace depends on some processor state that we destroyed during kexec and
    restored by restore_processor_state(). So save_processor_state() and
    restore_processor_state() are moved into machine_kexec() and ftrace is
    restored after restore_processor_state().

    Signed-off-by: Huang Ying
    Cc: Pavel Machek
    Cc: "Rafael J. Wysocki"
    Cc: "Eric W. Biederman"
    Cc: Vivek Goyal
    Cc: Ingo Molnar
    Cc: Steven Rostedt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Huang Ying
     
  • Kexec/Kexec-jump require code size in control page is less than
    PAGE_SIZE/2. This patch add link-time checking for this.

    ASSERT() of ld link script is used as the link-time checking mechanism.

    [akpm@linux-foundation.org: build fix]
    Signed-off-by: Huang Ying
    Cc: Pavel Machek
    Cc: "Rafael J. Wysocki"
    Cc: "Eric W. Biederman"
    Acked-by: Vivek Goyal
    Cc: Ingo Molnar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Huang Ying
     
  • Rename KEXEC_CONTROL_CODE_SIZE to KEXEC_CONTROL_PAGE_SIZE, because control
    page is used for not only code on some platform. For example in kexec
    jump, it is used for data and stack too.

    [akpm@linux-foundation.org: unbreak powerpc and arm, finish conversion]
    Signed-off-by: Huang Ying
    Cc: Pavel Machek
    Cc: "Rafael J. Wysocki"
    Cc: "Eric W. Biederman"
    Cc: Vivek Goyal
    Cc: Ingo Molnar
    Cc: Russell King
    Cc: Benjamin Herrenschmidt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Huang Ying
     
  • Plus add a build time check so this doesn't go unnoticed again.

    Signed-off-by: Jan Beulich
    Signed-off-by: Ingo Molnar

    Jan Beulich
     
  • Adds a simple IRQ autodetection to the AMD Geode MFGPT driver, and more
    importantly, adds some checks, if IRQs can actually be received on the
    chosen line. This fixes cases where MFGPT is selected as clocksource
    though not producing any ticks, so the kernel simply starves during
    boot.

    Signed-off-by: Jens Rottmann
    Cc: Andres Salomon
    Cc: linux-geode@bombadil.infradead.org
    Cc: Jordan Crouse
    Signed-off-by: Ingo Molnar

    Jens Rottmann
     
  • fix:

    arch/x86/kernel/acpi/sleep.c:24: warning: 'temp_stack' defined but not used

    [ Sven Wegener : fix build bug ]

    Signed-off-by: Marcin Slusarz
    Acked-by: Pavel Machek
    Signed-off-by: Ingo Molnar

    Marcin Slusarz
     
  • clean up the failure message - and redirect people to bugzilla
    instead of lkml.

    Signed-off-by: Ingo Molnar

    Ingo Molnar
     
  • > it just won't work at boot time - the second logic unit will be stuck:
    >
    > Booting processor 1/2 APIC 0x1
    > Initializing CPU#1
    > Calibrating delay using timer specific routine.. 5586.12 BogoMIPS (lpj=2793063)
    > CPU: Trace cache: 12K uops, L1 D cache: 16K
    > CPU: L2 cache: 1024K
    > CPU: Physical Processor ID: 0
    > CPU: Processor Core ID: 1
    > CPU1: Thermal monitoring enabled (TM1)
    > Intel(R) Pentium(R) D CPU 2.80GHz stepping 04
    > Brought up 2 CPUs
    > testing NMI watchdog ... WARNING: CPU#1: NMI appears to be stuck (0->0)!

    while at it... - fix that newline

    Signed-off-by: Aristeu Rozanski
    Cc: jvillalo@redhat.com
    Signed-off-by: Ingo Molnar

    Aristeu Rozanski
     
  • Do we actually want these DirectMap lines in the x86 /proc/meminfo?
    I can see they're interesting to CPA developers and TLB optimizers,
    but they don't fit its usual "where has all my memory gone?" usage.
    If they are to stay, here are some fixes.

    1. On x86_32 without PAE, they're not 2M but 4M pages: no need to
    mess with the internal enum, but show the right name to users.

    2. Many machines can never show anything but 0 for DirectMap1G,
    so suppress that line unless direct_gbpages are really enabled.

    3. The unit in /proc/meminfo is kB not number of pages: HugePages
    messed that up, but they're an example to regret not to follow.

    4. Once we use kB, it's easy to see that 1GB has gone missing (which
    explains why CONFIG_CPA_DEBUG=y soon wraps DirectMap2M negative):
    because head_64.S's level2_ident_pgt entries were not counted.
    My fix is not ideal, but works for more and for less than 1G,
    and avoids interfering with early bootup pagetable contortions.

    Signed-off-by: Hugh Dickins
    Cc: Andi Kleen
    Signed-off-by: Ingo Molnar

    Hugh Dickins
     
  • Adjust experimental tags in Kconfig, update config to notice that
    i386/x86_64 is now single architecture.

    Signed-off-by: Pavel Machek
    Signed-off-by: Ingo Molnar

    Pavel Machek
     
  • When a CPU core is shut down, all of its caches need to be flushed
    to prevent stale data from causing errors if the core is resumed.
    Current Linux suspend code performs an assignment after the flush,
    which can add dirty data back to the cache.  On some AMD platforms,
    additional speculative reads have caused crashes on resume because
    of this dirty data.

    Relocate the cache flush to be the very last thing done before
    halting.  Tie into an assembly line so the compile will not
    reorder it.  Add some documentation explaining what is going
    on and why we're doing this.

    Signed-off-by: Mark Langsdorf
    Acked-by: Mark Borden
    Acked-by: Michael Hohmuth
    Signed-off-by: Ingo Molnar

    Mark Langsdorf
     
  • Currently, setup_p4_watchdog() use CCCR_OVF_PMI1 to enable the counter
    overflow interrupts to the second logical core. But this bit doesn't work
    on Pentium 4 Ds (model 4, stepping 4) and this patch avoids its use on
    these processors. Tested on 4 different machines that have this
    specific model with success.

    Signed-off-by: Aristeu Rozanski
    Cc: jvillalovos@redhat.com
    Signed-off-by: Ingo Molnar

    Aristeu Rozanski
     
  • Ingo Molnar
     
  • If sysfs registration fails all memory used by IOMMU is freed. This
    happens after dma_ops initialization and the functions will access the
    freed memory then.

    Fix this by initializing dma_ops after the sysfs registration.

    Signed-off-by: Joerg Roedel
    Signed-off-by: Ingo Molnar

    Joerg Roedel
     
  • Signed-off-by: Joerg Roedel
    Signed-off-by: Ingo Molnar

    Joerg Roedel
     
  • This patch adds device table initializations which forbids memory accesses
    for devices per default and disables all page faults.

    Signed-off-by: Joerg Roedel
    Signed-off-by: Ingo Molnar

    Joerg Roedel
     
  • Signed-off-by: Joerg Roedel
    Signed-off-by: Ingo Molnar

    Joerg Roedel
     
  • There's so much broken mmconfig hardware/bios'es out there,
    that classing this as an error seems a little extreme.
    Lower its priority to KERN_INFO so that it isn't so noisy
    when booting with 'quiet'

    Signed-off-by: Dave Jones
    Signed-off-by: Ingo Molnar

    Dave Jones
     
  • msr_open tests for someone trying to open a device for a nonexistent CPU.
    However, the function always returns 0, not ret like it should, hence
    userspace can BUG the kernel trivially. This bug was introduced by the
    cdev lock_kernel pushdown patch last May.

    The BUG can be reproduced with these commands:

    # mknod fubar c 202 8
    Signed-off-by: Ingo Molnar

    Darrick J. Wong
     

14 Aug, 2008

8 commits