01 Dec, 2008

40 commits

  • This reverts commit e669dae6141ff97d3c7566207f5de3b487dcf837, since it
    is incomplete, and clashes with fuller patches and the sparc 32/64
    unification effort.

    Requested-by: David Miller
    Acked-by: Al Viro
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • * 'drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6:
    drm/i915: Fix copy'n'pasteo that broke VT switch if flushing was non-empty.

    Linus Torvalds
     
  • * 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc:
    powerpc: Fix system calls on Cell entered with XER.SO=1
    powerpc/cell: Fix GDB watchpoints, again
    powerpc/mpic: Don't reset affinity for secondary MPIC on boot
    powerpc/cell/axon-msi: Retry on missing interrupt
    powerpc: Fix boot freeze on machine with empty memory node
    powerpc: Fix IRQ assignment for some PCIe devices
    powerpc/spufs: Fix spinning in spufs_ps_fault on signal
    powerpc/mpc832x_rdb: fix swapped ethernet ids
    powerpc: Use generic PHY driver for Marvell 88E1111 PHY on GE Fanuc SBC610
    powerpc/85xx: L2 cache size wrong in 8572DS dts
    powerpc/virtex: Update defconfigs
    powerpc/52xx: update defconfigs
    xsysace: Fix driver to use resource_size_t instead of unsigned long
    powerpc/virtex: fix various format/casting printk mismatches
    powerpc/mpc5200: fix bestcomm Kconfig dependencies
    powerpc/44x: Fix 460EX/460GT machine check handling
    powerpc/40x: Limit allocable DRAM during early mapping

    Linus Torvalds
     
  • * master.kernel.org:/home/rmk/linux-2.6-arm:
    Allow architectures to override copy_user_highpage()
    [ARM] pxa/palmtx: misc fixes to use generic GPIO API
    ARM: OMAP: Fixes for suspend / resume GPIO wake-up handling
    [ARM] pxa/corgi: update default config to exclude tosa from being built
    [ARM] pxa/pcm990: use negative number for an invalid GPIO in camera data
    ARM: OMAP: Typo fix for clock_allow_idle
    ARM: OMAP: Remove broken LCD driver for SX1
    [ARM] 5335/1: pxa25x_udc: Fix is_vbus_present to return 1 or 0
    [ARM] pxa/MioA701: bluetooth resume fix
    [ARM] pxa/MioA701: fix memory corruption.

    Linus Torvalds
     
  • Introduced in the "Avoid BUG_ONs on VT switch" commit.

    Signed-off-by: Eric Anholt
    Signed-off-by: Dave Airlie

    Eric Anholt
     
  • It turns out that on Cell, on a kernel with CONFIG_VIRT_CPU_ACCOUNTING
    = y, if a program sets the SO (summary overflow) bit in the XER and
    then does a system call, the SO bit in CR0 will be set on return
    regardless of whether the system call detected an error. Since CR0.SO
    is used as the error indication from the system call, this means that
    all system calls appear to fail.

    The reason is that the workaround for the timebase bug on Cell uses a
    compare instruction. With CONFIG_VIRT_CPU_ACCOUNTING = y, the
    ACCOUNT_CPU_USER_ENTRY macro reads the timebase, so we end up doing a
    compare instruction, which copies XER.SO to CR0.SO. Since we were
    doing this in the system call entry patch after clearing CR0.SO but
    before saving the CR, this meant that the saved CR image had CR0.SO
    set if XER.SO was set on entry.

    This fixes it by moving the clearing of CR0.SO to after the
    ACCOUNT_CPU_USER_ENTRY call in the system call entry path.

    Signed-off-by: Paul Mackerras
    Acked-by: Arnd Bergmann
    Acked-by: Benjamin Herrenschmidt

    Paul Mackerras
     
  • An earlier patch from Jens Osterkamp attempted to fix GDB
    watchpoints by enabling the DABRX register at boot time.
    Unfortunately, this did not work on SMP setups, where
    secondary CPUs were still using the power-on DABRX value.

    This introduces the same change for secondary CPUs on cell
    as well.

    Reported-by: Ulrich Weigand
    Tested-by: Ulrich Weigand
    Signed-off-by: Arnd Bergmann
    Signed-off-by: Paul Mackerras

    Arnd Bergmann
     
  • Kexec/kdump currently fails on the IBM QS2x blades when the kexec happens
    on a CPU other than the initial boot CPU. It turns out that this is the
    result of mpic_init trying to set affinity of each interrupt vector to the
    current boot CPU.

    As far as I can tell, the same problem is likely to exist on any
    secondary MPIC, because they have to deliver interrupts to the first
    output all the time. There are two potential solutions for this: either
    not set up affinity at all for secondary MPICs, or assume that a single
    CPU output is connected to the upstream interrupt controller and hardcode
    affinity to that per architecture.

    This patch implements the second approach, defaulting to the first output.
    Currently, all known secondary MPICs are routed to their upstream port
    using the first destination, so we hardcode that.

    Signed-off-by: Arnd Bergmann
    Signed-off-by: Paul Mackerras

    Arnd Bergmann
     
  • The MSI capture logic for the axon bridge can sometimes
    lose interrupts in case of high DMA and interrupt load,
    when it signals an MSI interrupt to the MPIC interrupt
    controller while we are already handling another MSI.

    Each MSI vector gets written into a FIFO buffer in main
    memory using DMA, and that DMA access is normally flushed
    by the actual interrupt packet on the IOIF. An MMIO
    register in the MSIC holds the position of the last
    entry in the FIFO buffer that was written. However,
    reading that position does not flush the DMA, so that
    we can observe stale data in the buffer.

    In a stress test, we have observed the DMA to arrive
    up to 14 microseconds after reading the register.

    This patch works around this problem by retrying the
    access to the FIFO buffer.

    We can reliably detect the conditioning by writing
    an invalid MSI vector into the FIFO buffer after
    reading from it, assuming that all MSIs we get
    are valid. After detecting an invalid MSI vector,
    we udelay(1) in the interrupt cascade for up to
    100 times before giving up.

    Signed-off-by: Arnd Bergmann
    Signed-off-by: Paul Mackerras

    Arnd Bergmann
     
  • I got a bug report about a distro kernel not booting on a particular
    machine. It would freeze during boot:

    > ...
    > Could not find start_pfn for node 1
    > [boot]0015 Setup Done
    > Built 2 zonelists in Node order, mobility grouping on. Total pages: 123783
    > Policy zone: DMA
    > Kernel command line:
    > [boot]0020 XICS Init
    > [boot]0021 XICS Done
    > PID hash table entries: 4096 (order: 12, 32768 bytes)
    > clocksource: timebase mult[7d0000] shift[22] registered
    > Console: colour dummy device 80x25
    > console handover: boot [udbg0] -> real [hvc0]
    > Dentry cache hash table entries: 1048576 (order: 7, 8388608 bytes)
    > Inode-cache hash table entries: 524288 (order: 6, 4194304 bytes)
    > freeing bootmem node 0

    I've reproduced this on 2.6.27.7. It is caused by commit
    8f64e1f2d1e09267ac926e15090fd505c1c0cbcb ("powerpc: Reserve in bootmem
    lmb reserved regions that cross NUMA nodes").

    The problem is that Jon took a loop which was (in pseudocode):

    for_each_node(nid)
    NODE_DATA(nid) = careful_alloc(nid);
    setup_bootmem(nid);
    reserve_node_bootmem(nid);

    and broke it up into:

    for_each_node(nid)
    NODE_DATA(nid) = careful_alloc(nid);
    setup_bootmem(nid);
    for_each_node(nid)
    reserve_node_bootmem(nid);

    The issue comes in when the 'careful_alloc()' is called on a node with
    no memory. It falls back to using bootmem from a previously-initialized
    node. But, bootmem has not yet been reserved when Jon's patch is
    applied. It gives back bogus memory (0xc000000000000000) and pukes
    later in boot.

    The following patch collapses the loop back together. It also breaks
    the mark_reserved_regions_for_nid() code out into a function and adds
    some comments. I think a huge part of introducing this bug is because
    for loop was too long and hard to read.

    The actual bug fix here is the:

    + if (end_pfn node_start_pfn ||
    + start_pfn >= node_end_pfn)
    + continue;

    Signed-off-by: Dave Hansen
    Signed-off-by: Paul Mackerras

    Dave Hansen
     
  • Currently, some PCIe devices on POWER6 machines do not get interrupts
    assigned correctly. The problem is that OF doesn't create an
    "interrupt" property for them. The fix is for of_irq_map_pci to fall
    back to using the value in the PCI interrupt-pin register in config
    space, as we do when there is no OF device-tree node for the device.

    I have verified that this works fine with a pair of Squib-E SAS
    adapter on a P6-570.

    Acked-by: Benjamin Herrenschmidt

    Signed-off-by: Paul Mackerras

    Adhemerval Zanella
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/kyle/parisc-2.6:
    parisc: struct device - replace bus_id with dev_name(), dev_set_name()
    parisc: fix kernel crash when unwinding a userspace process
    parisc: __kernel_time_t is always long

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6:
    [CIFS] fix regression in cifs_write_begin/cifs_write_end

    Linus Torvalds
     
  • …l/git/tip/linux-2.6-tip

    * 'sched-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    sched: prevent divide by zero error in cpu_avg_load_per_task, update
    sched, cpusets: fix warning in kernel/cpuset.c
    sched: prevent divide by zero error in cpu_avg_load_per_task

    Linus Torvalds
     
  • …git/tip/linux-2.6-tip

    * 'irq-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    irq.h: fix missing/extra kernel-doc
    genirq: __irq_set_trigger: change pr_warning to pr_debug
    irq: fix typo
    x86: apic honour irq affinity which was set in early boot
    genirq: fix the affinity setting in setup_irq
    genirq: keep affinities set from userspace across free/request_irq()

    Linus Torvalds
     
  • …/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:
    lockdep: consistent alignement for lockdep info

    Linus Torvalds
     
  • …nel/git/tip/linux-2.6-tip

    * 'tracing-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    ftrace: prevent recursion
    tracing, doc: update mmiotrace documentation
    x86, mmiotrace: fix buffer overrun detection
    function tracing: fix wrong position computing of stack_trace

    Linus Torvalds
     
  • …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:
    x86: always define DECLARE_PCI_UNMAP* macros
    x86: fixup config space size of CPU functions for AMD family 11h
    x86, bts: fix wrmsr and spinlock over kmalloc
    x86, pebs: fix PEBS record size configuration
    x86, bts: turn macro into static inline function
    x86, bts: exclude ds.c from build when disabled
    arch/x86/kernel/pci-calgary_64.c: change simple_strtol to simple_strtoul
    x86: use limited register constraint for setnz
    xen: pin correct PGD on suspend
    x86: revert irq number limitation
    x86: fixing __cpuinit/__init tangle, xsave_cntxt_init()
    x86: fix __cpuinit/__init tangle in init_thread_xstate()
    oprofile: fix an overflow in ppro code

    Linus Torvalds
     
  • * 'drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6:
    drm/i915: Save/restore HWS_PGA on suspend/resume
    drm: move drm vblank initialization/cleanup to driver load/unload
    drm/i915: execbuffer pins objects, no need to ensure they're still in the GTT
    drm/i915: Always read pipestat in irq_handler
    drm/i915: Subtract total pinned bytes from available aperture size
    drm/i915: Avoid BUG_ONs on VT switch with a wedged chipset.
    drm/i915: Remove IMR masking during interrupt handler, and restart it if needed.
    drm/i915: Manage PIPESTAT to control vblank interrupts instead of IMR.

    Linus Torvalds
     
  • * 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-udf-2.6:
    udf: Fix BUG_ON() in destroy_inode()

    Linus Torvalds
     
  • * 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/davej/cpufreq:
    [CPUFREQ] powernow-k8: ignore out-of-range PstateStatus value
    [CPUFREQ] Documentation: Add Blackfin to list of supported processors

    Linus Torvalds
     
  • A very minor patch on ramfs-rootfs-initramfs.txt: update the location
    where CONFIG_INITRAMFS_SOURCE lives in menuconfig

    Signed-off-by: Frans Meulenbroeks
    Acked-by: Rob Landley
    Signed-off-by: Linus Torvalds

    frans
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6:
    ALSA: hda - Check model for Dell 92HD73xx laptops
    ALSA: hda - mark Dell studio 1535 quirk
    ALSA: hda - No 'Headphone as Line-out' swich without line-outs
    ALSA: hda - Fix AFG power management on IDT 92HD* codecs
    ALSA: hda - Fix caching of SPDIF status bits
    ALSA: hda - Add a quirk for Dell Studio 15
    ALSA: hda: Add STAC_DELL_M4_3 quirk
    sound/sound_core: Fix sparse warnings
    ALSA: hda: STAC_DELL_M6 EAPD

    Linus Torvalds
     
  • * 'linux-next' of git://git.infradead.org/~dedekind/ubi-2.6:
    UBI: Don't exit from ubi_thread until kthread_should_stop() is true
    UBI: fix EBADMSG handling

    Linus Torvalds
     
  • * 'i2c-for-linus' of git://jdelvare.pck.nerim.net/jdelvare-2.6:
    i2c-parport: Fix misplaced parport_release call
    i2c: Remove i2c clients in reverse order
    i2c/isp1301_omap: Build fixes

    Linus Torvalds
     
  • Compress a set of consecutive switch cases into a case-range.

    Signed-off-by: Robert P. J. Day
    Signed-off-by: David Howells
    Signed-off-by: Linus Torvalds

    Robert P. J. Day
     
  • * 'for-linus' of git://git390.osdl.marist.edu/pub/scm/linux-2.6:
    [S390] Update default configuration.
    [S390] Fix alignment of initial kernel stack.
    [S390] pgtable.h: Fix oops in unmap_vmas for KVM processes
    [S390] fix/cleanup sched_clock
    [S390] fix system call parameter functions.

    Linus Torvalds
     
  • * 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux-acpi-2.6:
    toshiba_acpi: close race in toshiba_acpi driver
    ACPICA: disable _BIF warning
    ACPI: delete OSI(Linux) DMI dmesg spam
    ACPICA: Allow _WAK method to return an Integer
    ACPI: thinkpad-acpi: fix fan sleep/resume path
    sony-laptop: printk tweak
    sony-laptop: brightness regression fix
    Revert "ACPI: don't enable control method power button as wakeup device when Fixed Power button is used"
    ACPI suspend: Blacklist boxes that require us to set SCI_EN directly on resume
    ACPI: scheduling in atomic via acpi_evaluate_integer ()
    ACPI: battery: Convert discharge energy rate to current properly
    ACPI: EC: count interrupts only if called from interrupt handler.

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
    Input: wacom - add support for new USB Tablet PCs
    Input: replace spin_lock_bh with spin_lock_irqsave in ml_ff_playback
    Input: i8042 - add Compal Hel80 laptop to nomux blacklist
    Input: cm109 - add keymap for ATCom AU-100 phone
    Input: fix the example of an input device driver
    Input: psmouse - fix incorrect validate_byte check in OLPC protocol
    Input: atkbd - cancel delayed work before freeing its structure
    Input: atkbd - add keymap quirk for Inventec Symphony systems
    Input: i8042 - add Dell XPS M1530 to nomux list
    Input: elo - fix format string in elo driver

    Linus Torvalds
     
  • All architectures now use the generic compat_sys_ptrace, as should every
    new architecture that needs 32bit compat (if we'll ever get another).

    Remove the now superflous __ARCH_WANT_COMPAT_SYS_PTRACE define, and also
    kill a comment about __ARCH_SYS_PTRACE that was added after
    __ARCH_SYS_PTRACE was already gone.

    Signed-off-by: Christoph Hellwig
    Acked-by: David S. Miller
    Signed-off-by: Linus Torvalds

    Christoph Hellwig
     
  • * 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus:
    MIPS: Make BUG() __noreturn.

    Linus Torvalds
     
  • ml_ff_playback() uses spin_(un)lock_bh. However this function is called
    with interrupts disabled from erase_effect() in drivers/input/ff-core.c:196.

    This is not permitted, and will result in a WARN_ON in the bottom half handling code.
    This patch changes this function to just use spin_lock_irqsave() instead, solving
    the problem and simplifying the locking logic.

    This was reported as entry #106559 in kerneloops.org

    Reported-by: kerneloops.org
    Signed-off-by: Arjan van de Ven
    Signed-off-by: Linus Torvalds

    Arjan van de Ven
     
  • Same as for hotplug_cpu - we want static notifier_block in there in meminitdata,
    to avoid false positives whenever it's used.

    Signed-off-by: Al Viro
    Signed-off-by: Linus Torvalds

    Al Viro
     
  • called only from __init

    Signed-off-by: Al Viro
    Signed-off-by: Linus Torvalds

    Al Viro
     
  • ... by giving the instances' names magic suffix recognized by modpost ;-/
    Their ->probe() is __devinit

    Signed-off-by: Al Viro
    Signed-off-by: Linus Torvalds

    Al Viro
     
  • Signed-off-by: Al Viro
    Signed-off-by: Linus Torvalds

    Al Viro
     
  • ... so get xen-ops.h in agreement with xen/smp.c

    Signed-off-by: Al Viro
    Signed-off-by: Linus Torvalds

    Al Viro
     
  • Signed-off-by: Al Viro
    Signed-off-by: Linus Torvalds

    Al Viro
     
  • calls __init, called only from __init

    Signed-off-by: Al Viro
    Signed-off-by: Linus Torvalds

    Al Viro
     
  • for fsck sake, it's used only when parsing kernel command line...

    Signed-off-by: Al Viro
    Signed-off-by: Linus Torvalds

    Al Viro