13 Jan, 2010

40 commits

  • Because rsp->fqs_active is set to 1 across
    force_quiescent_state()'s switch statement, rcu_start_gp() will
    refrain from starting a new grace period during this time.
    Therefore, rsp->gpnum is constant, and can be propagated to all
    uses of lastcomp, eliminating this local variable.

    Signed-off-by: Paul E. McKenney
    Cc: laijs@cn.fujitsu.com
    Cc: dipankar@in.ibm.com
    Cc: mathieu.desnoyers@polymtl.ca
    Cc: josh@joshtriplett.org
    Cc: dvhltc@us.ibm.com
    Cc: niv@us.ibm.com
    Cc: peterz@infradead.org
    Cc: rostedt@goodmis.org
    Cc: Valdis.Kletnieks@vt.edu
    Cc: dhowells@redhat.com
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Paul E. McKenney
     
  • Because the root rcu_node lock is held across entry to the
    switch statement in force_quiescent_state(), it is no longer
    necessary to snapshot rsp->signaled to a local variable.
    Eliminate both the snapshotting and the local variable.

    Signed-off-by: Paul E. McKenney
    Cc: laijs@cn.fujitsu.com
    Cc: dipankar@in.ibm.com
    Cc: mathieu.desnoyers@polymtl.ca
    Cc: josh@joshtriplett.org
    Cc: dvhltc@us.ibm.com
    Cc: niv@us.ibm.com
    Cc: peterz@infradead.org
    Cc: rostedt@goodmis.org
    Cc: Valdis.Kletnieks@vt.edu
    Cc: dhowells@redhat.com
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Paul E. McKenney
     
  • Reduce the number and variety of race conditions by prohibiting
    the start of a new grace period while force_quiescent_state() is
    active. A new fqs_active flag in the rcu_state structure is used
    to trace whether or not force_quiescent_state() is active, and
    this new flag is tested by rcu_start_gp(). If the CPU that
    closed out the last grace period needs another grace period,
    this new grace period may be delayed up to one scheduling-clock
    tick, but it will eventually get started.

    Signed-off-by: Paul E. McKenney
    Cc: laijs@cn.fujitsu.com
    Cc: dipankar@in.ibm.com
    Cc: mathieu.desnoyers@polymtl.ca
    Cc: josh@joshtriplett.org
    Cc: dvhltc@us.ibm.com
    Cc: niv@us.ibm.com
    Cc: peterz@infradead.org
    Cc: rostedt@goodmis.org
    Cc: Valdis.Kletnieks@vt.edu
    Cc: dhowells@redhat.com
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Paul E. McKenney
     
  • This patch releases rnp->lock after the end of
    force_quiescent_state()'s switch statement. This is a second
    step towards prohibiting starting grace periods while
    force_quiescent_state() is executing, which will reduce the
    number and complexity of races that force_quiescent_state() is
    involved in.

    Signed-off-by: Paul E. McKenney
    Cc: laijs@cn.fujitsu.com
    Cc: dipankar@in.ibm.com
    Cc: mathieu.desnoyers@polymtl.ca
    Cc: josh@joshtriplett.org
    Cc: dvhltc@us.ibm.com
    Cc: niv@us.ibm.com
    Cc: peterz@infradead.org
    Cc: rostedt@goodmis.org
    Cc: Valdis.Kletnieks@vt.edu
    Cc: dhowells@redhat.com
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Paul E. McKenney
     
  • This causes rnp->lock to be held on entry to
    force_quiescent_state()'s switch statement. This is a first
    step towards prohibiting starting grace periods while
    force_quiescent_state() is executing, which will reduce the
    number and complexity of races that force_quiescent_state() is
    involved in.

    Signed-off-by: Paul E. McKenney
    Cc: laijs@cn.fujitsu.com
    Cc: dipankar@in.ibm.com
    Cc: mathieu.desnoyers@polymtl.ca
    Cc: josh@joshtriplett.org
    Cc: dvhltc@us.ibm.com
    Cc: niv@us.ibm.com
    Cc: peterz@infradead.org
    Cc: rostedt@goodmis.org
    Cc: Valdis.Kletnieks@vt.edu
    Cc: dhowells@redhat.com
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Paul E. McKenney
     
  • Linus Torvalds
     
  • * git://git.infradead.org/battery-2.6:
    pmu_battery: Fix battery full reporting

    Linus Torvalds
     
  • /sys/bus/pci/drivers/megaraid_sas/poll_mode_io defaults to being
    world-writable, which seems bad (letting any user affect kernel driver
    behavior).

    This turns off group and user write permissions, so that on typical
    production systems only root can write to it.

    Signed-off-by: Bryn M. Reeves
    Signed-off-by: Linus Torvalds

    Bryn M. Reeves
     
  • * 'for-linus' of git://gitorious.org/linux-omap-dss2/linux:
    OMAP: DSS2: OMAPFB: fix crash when panel driver was not loaded
    OMAP: DSS2: Reject scaling settings when they cannot be supported
    OMAP: DSS2: Make check-delay-loops consistent
    OMAP: DSS2: OMAPFB: fix omapfb_free_fbmem()
    video/omap: add __init/__exit macros to drivers/video/omap/lcd_htcherald.c
    OMAP: DSS2: Fix compile warning
    MAINTAINERS: Combine DSS2 and OMAPFB2 into one entry
    MAINTAINERS: change omapfb maintainer
    OMAP: OMAPFB: add dummy release function for omapdss
    OMAP: OMAPFB: fix clk_get for RFBI
    OMAP: DSS2: RFBI: convert to new kfifo API
    OMAP: DSS2: Fix crash when panel doesn't define enable_te()
    OMAP: DSS2: Collect interrupt statistics
    OMAP: DSS2: DSI: print debug DCS cmd in hex
    OMAP: DSS2: DSI: fix VC channels in send_short and send_null

    Linus Torvalds
     
  • There are two copies of list_sort() in the tree already, one in the DRM
    code, another in ubifs. Now XFS needs this as well. Create a generic
    list_sort() function from the ubifs version and convert existing users
    to it so we don't end up with yet another copy in the tree.

    Signed-off-by: Dave Chinner
    Acked-by: Dave Airlie
    Acked-by: Artem Bityutskiy
    Signed-off-by: Linus Torvalds

    Dave Chinner
     
  • Maybe this will stop people emailing me about it.

    Signed-off-by: Dave Jones
    Signed-off-by: Linus Torvalds

    Dave Jones
     
  • * 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev:
    libata: retry link resume if necessary
    ata_piix: enable 32bit PIO on SATA piix
    sata_promise: don't classify overruns as HSM errors

    Linus Torvalds
     
  • * master.kernel.org:/home/rmk/linux-2.6-arm:
    ARM: Ensure ARMv6/7 mm files are built using appropriate assembler options
    ARM: Fix wrong dmb
    ARM: 5874/1: serial21285: fix disable_irq-from-interrupt-handler deadlock
    ARM: 5873/1: ARM: Fix the reset logic for ARM RealView boards
    ARM: 5872/1: ARM: include needed linux/cpu.h in asm/cpu.h
    ARM: 5871/1: arch/arm: Fix build failure for lpd7a404_defconfig caused by missing includes
    ARM: 5870/1: arch/arm: Fix build failure for defconfigs without CONFIG_ISA_DMA_API set
    ARM: 5868/1: ARM: fix "BUG: using smp_processor_id() in preemptible code"
    ARM: 5867/1: Update U300 defconfig
    ARM: 5866/1: arm ptrace: use unsigned types for kernel pt_regs
    [ARM] pxa: fix strange characters in zaurus gpio .desc
    ARM: add missing recvmmsg syscall number
    [ARM] pxa: fix compiler warnings of unused variable 'id' in cpu_is_pxa9*()
    [ARM] pxa: update pwm_backlight->notify() to include missed 'struct device *'
    [ARM] pxa: enable L2 if present in XSC3
    [ARM] pxa: do not enable L2 after MMU is enabled

    Linus Torvalds
     
  • * 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-linus: (22 commits)
    MIPS: Ignore vmlinux.*
    MIPS: Move vmlinux.ecoff to arch/mips/boot
    MIPS: cpumask_of_node() should handle -1 as a node
    MIPS: Octeon: Use non-overflowing arithmetic in sched_clock
    MIPS: Malta, PowerTV: Remove unnecessary "Linux started"
    MIPS: BCM63xx: Remove duplicate CONFIG_CMDLINE.
    MIPS: AR7: Remove unused prom_getchar()
    MIPS: PowerTV: Remove extra r4k_clockevent_init() call
    MIPS: Cobalt use strlcat() for the command line arguments
    MIPS: Octeon: Add sched_clock() to csrc-octeon.c
    MIPS: TXx9: Cleanup builtin-cmdline processing
    MIPS: PowerTV: simplify prom_init_cmdline() and merge into prom_init()
    MIPS: PowerTV: Remove unused platform_die()
    MIPS: PowerTV: Remove mips_machine_halt()
    MIPS: PowerTV: Remove unused ptv_memsize
    MIPS: PowerTV: Remove unused prom_getcmdline()
    MIPS: AR7: Remove kgdb_enabled
    MIPS: Alchemy: Correct code taking the size of a pointer
    MIPS: BCM63xx: Fix whitespace damaged board_bcm963xx.c
    MIPS: VR41xx: Use strlcat() for the command line arguments
    ...

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6:
    ALSA: hda - Fix ALC861-VD capture source mixer
    ALSA: ac97: add AC97 STMicroelectronics' codecs
    ALSA: ac97: Add Dell Dimension 2400 to Headphone/Line Jack Sense blacklist
    ASoC: Fix WM8350 DSP mode B configuration
    sbawe: fix memory detection part 2
    sound: oss: off by one bug
    ALSA: usb-audio - Avoid Oops after disconnect
    ALSA: test off by one in setsamplerate()
    ALSA: atiixp: Specify codec for Foxconn RC4107MA-RS2

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (56 commits)
    sky2: Fix oops in sky2_xmit_frame() after TX timeout
    Documentation/3c509: document ethtool support
    af_packet: Don't use skb after dev_queue_xmit()
    vxge: use pci_dma_mapping_error to test return value
    netfilter: ebtables: enforce CAP_NET_ADMIN
    e1000e: fix and commonize code for setting the receive address registers
    e1000e: e1000e_enable_tx_pkt_filtering() returns wrong value
    e1000e: perform 10/100 adaptive IFS only on parts that support it
    e1000e: don't accumulate PHY statistics on PHY read failure
    e1000e: call pci_save_state() after pci_restore_state()
    netxen: update version to 4.0.72
    netxen: fix set mac addr
    netxen: fix smatch warning
    netxen: fix tx ring memory leak
    tcp: update the netstamp_needed counter when cloning sockets
    TI DaVinci EMAC: Handle emac module clock correctly.
    dmfe/tulip: Let dmfe handle DM910x except for SPARC on-board chips
    ixgbe: Fix compiler warning about variable being used uninitialized
    netfilter: nf_ct_ftp: fix out of bounds read in update_nl_seq()
    mv643xx_eth: don't include cache padding in rx desc buffer size
    ...

    Fix trivial conflict in drivers/scsi/cxgb3i/cxgb3i_offload.c

    Linus Torvalds
     
  • Fix compilation breakage of all m68knommu targets:

    CC arch/m68knommu/kernel/asm-offsets.s
    In file included from include/linux/sched.h:77,
    from arch/m68knommu/kernel/asm-offsets.c:12:
    include/linux/percpu.h: In function 'per_cpu_ptr_to_phys':
    include/linux/percpu.h:161: error: implicit declaration of function 'virt_to_phy

    This is broken in linux-2.6.33-rc3.

    Change the definitions of __pa() and __va() to not use virt_to_phys()
    and phys_to_virt(). Trivial 1:1 conversion required for the non-MMU case.

    A side effect if this is that the m68knommu can now use asm/virtconvert.h
    for the definition of virt_to_phys() and phys_to_virt().

    Also cleaned up the definition of page_to_phys() when moving into
    virtconvert.h.

    Signed-off-by: Greg Ungerer
    Signed-off-by: Linus Torvalds

    Greg Ungerer
     
  • Interestingly, when SIDPR is used in ata_piix, writes to DET in
    SControl sometimes get ignored leading to detection failure. Update
    sata_link_resume() such that it reads back SControl after clearing DET
    and retry if it's not clear.

    Signed-off-by: Tejun Heo
    Reported-by: fengxiangjun
    Reported-by: Jim Faulkner
    Cc: stable@kernel.org
    Signed-off-by: Jeff Garzik

    Tejun Heo
     
  • Commit 871af1210f13966ab911ed2166e4ab2ce775b99d enabled 32bit PIO for
    PATA piix but didn't for SATA. There's no reason not to use 32bit PIO
    on SATA piix. Enable it.

    Signed-off-by: Tejun Heo
    Cc: Alan Cox
    Signed-off-by: Jeff Garzik

    Tejun Heo
     
  • When sata_promise encounters an overrun or underrun error it
    translates that to a libata AC_ERR_HSM, causing a hard reset.
    Since over/under-runs were thought to be rare and transient,
    this action seemed reasonable.

    Unfortunately it turns out that the controller throws overrun
    errors when e.g. hal polls a CD or DVD writer containing blank
    media, causing long sequences of hard resets and retries before
    EH finally gives up.

    This patch updates sata_promise to classify over/under-runs as
    AC_ERR_OTHER instead. This allows libata EH and upper layers to
    retry or fail the operation as they see fit without the disruption
    caused by repeated hard resets.

    This fixes a problem using a DVD-RAM drive with sata_promise,
    reported by Thomas Schorpp. I also tested it on a DVD-RW drive.

    Signed-off-by: Mikael Pettersson
    Tested-by: thomas schorpp
    Signed-off-by: Jeff Garzik

    Mikael Pettersson
     
  • A kernel with both ARMv6 and ARMv7 selected results in build errors.
    Fix this by specifying the proper architectures for these assembly
    files.

    Signed-off-by: Russell King

    Russell King
     
  • The __kuser_cmpxchg code uses an ARMv6 dmb instruction, rather than
    one based upon the architecture being built for. Switch to using
    the macro provided for this purpose, which also eliminates the
    need for an ifdef.

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

    Russell King
     
  • Signed-off-by: Yoichi Yuasa
    Cc: linux-mips
    Patchwork: http://patchwork.linux-mips.org/patch/795/
    Signed-off-by: Ralf Baechle

    Yoichi Yuasa
     
  • It moves to the same directory as the boot files in other formats.

    Signed-off-by: Yoichi Yuasa
    Cc: linux-mips
    Patchwork: http://patchwork.linux-mips.org/patch/796/
    Signed-off-by: Ralf Baechle

    Yoichi Yuasa
     
  • pcibus_to_node can return -1 if we cannot determine which node a pci bus
    is on. If passed -1, cpumask_of_node will negatively index the lookup array
    and pull in random data:

    # cat /sys/devices/pci0000:00/0000:00:01.0/local_cpus
    00000000,00000003,00000000,00000000
    # cat /sys/devices/pci0000:00/0000:00:01.0/local_cpulist
    64-65

    Change cpumask_of_node to check for -1 and return cpu_all_mask in this
    case:

    # cat /sys/devices/pci0000:00/0000:00:01.0/local_cpus
    ffffffff,ffffffff,ffffffff,ffffffff
    # cat /sys/devices/pci0000:00/0000:00:01.0/local_cpulist
    0-127

    Signed-off-by: Anton Blanchard
    Cc: linux-mips@linux-mips.org
    Cc: linux-kernel@vger.kernel.org
    Cc: Rusty Russell
    Cc: Andrew Morton
    Patchwork: http://patchwork.linux-mips.org/patch/831/
    Signed-off-by: Ralf Baechle

    Anton Blanchard
     
  • With typical mult and shift values, the calculation for Octeon's sched_clock
    overflows when using 64-bit arithmetic. Use 128-bit calculations instead.

    Signed-off-by: David Daney
    To: linux-mips@linux-mips.org
    Patchwork: http://patchwork.linux-mips.org/patch/849/
    Signed-off-by: Ralf Baechle

    David Daney
     
  • Signed-off-by: Yoichi Yuasa
    Cc: linux-mips@linux-mips.org
    Patchwork: http://patchwork.linux-mips.org/patch/813/
    Signed-off-by: Ralf Baechle

    Yoichi Yuasa
     
  • Builtin cmdline is copied by arch_mem_init().

    Signed-off-by: Yoichi Yuasa
    Cc: linux-mips@linux-mips.org
    Patchwork: http://patchwork.linux-mips.org/patch/812/
    Signed-off-by: Ralf Baechle

    Yoichi Yuasa
     
  • Signed-off-by: Yoichi Yuasa
    Cc: linux-mips@linux-mips.org
    Patchwork: http://patchwork.linux-mips.org/patch/811/
    Signed-off-by: Ralf Baechle

    Yoichi Yuasa
     
  • A call to r4k_clocksource_init() was added to plat_time_init(), but
    when init_mips_clock_source() calls the same function, boot fails in
    clockevents_register_device(). This patch removes the extraneous call.

    Signed-off-by: David VomLehn
    Patchwork: http://patchwork.linux-mips.org/patch/803/
    Signed-off-by: Ralf Baechle

    David VomLehn
     
  • Tested with CoLo v1.22

    Signed-off-by: Yoichi Yuasa
    Patchwork: http://patchwork.linux-mips.org/patch/807/
    Signed-off-by: Ralf Baechle

    Yoichi Yuasa
     
  • With the advent of function graph tracing on MIPS, Octeon needs a high
    precision sched_clock() implementation. Without it, most timing
    numbers are reported as 0.000.

    This new sched_clock just uses the 64-bit cycle counter appropriately
    scaled.

    Signed-off-by: David Daney
    Patchwork: http://patchwork.linux-mips.org/patch/805/
    Signed-off-by: Ralf Baechle

    David Daney
     
  • Since commit 898d357b5262f9e26bc2418e01f8676e80d9867e (lmo) /
    6acc7d485c24c00e111c61b2e6dff9180faebcae (kernel.org) ("Fix and enhance
    built-in kernel command line") arcs_cmdline[] does not contain built-in
    command line. The commit introduce CONFIG_CMDLINE_BOOL and
    CONFIG_CMDLINE_OVERRIDE to control built-in command line, and now we can
    use them instead of platform-specific built-in command line processing.

    Signed-off-by: Atsushi Nemoto
    Patchwork: http://patchwork.linux-mips.org/patch/802/
    Signed-off-by: Ralf Baechle

    Atsushi Nemoto
     
  • Signed-off-by: Yoichi Yuasa
    Patchwork: http://patchwork.linux-mips.org/patch/801/
    Reviewed-by: David VomLehn
    Signed-off-by: Ralf Baechle

    Yoichi Yuasa
     
  • Signed-off-by: Yoichi Yuasa
    Patchwork: http://patchwork.linux-mips.org/patch/800/
    Reviewed-by: David VomLehn
    Signed-off-by: Ralf Baechle

    Yoichi Yuasa
     
  • mips_machine_halt() is same as mips_machine_restart(). Also delete the
    registration of _machine_halt and pm_power_off because mips_machine_halt()
    is the restart function.

    Signed-off-by: Yoichi Yuasa
    Patchwork: http://patchwork.linux-mips.org/patch/798/
    Reviewed-by: David VomLehn
    Signed-off-by: Ralf Baechle

    Yoichi Yuasa
     
  • Signed-off-by: Yoichi Yuasa
    Patchwork: http://patchwork.linux-mips.org/patch/799/
    Reviewed-by: David VomLehn
    Signed-off-by: Ralf Baechle

    Yoichi Yuasa
     
  • Signed-off-by: Yoichi Yuasa
    Patchwork: http://patchwork.linux-mips.org/patch/797/
    Reviewed-by: David VomLehn
    Signed-off-by: Ralf Baechle

    Yoichi Yuasa
     
  • An unused leftover from the old KGDB implementation.

    Signed-off-by: Yoichi Yuasa
    Patchwork: http://patchwork.linux-mips.org/patch/794/
    Signed-off-by: Ralf Baechle

    Yoichi Yuasa
     
  • sizeof(dp) is just the size of the pointer. Change it to the size of the
    referenced structure.

    A simplified version of the semantic patch that finds this problem is as
    follows: (http://coccinelle.lip6.fr/)

    //
    @@
    expression *x;
    expression f;
    type T;
    @@

    *f(...,(T)x,...)
    //

    Signed-off-by: Julia Lawall
    Patchwork: http://patchwork.linux-mips.org/patch/789/
    Signed-off-by: Ralf Baechle

    Julia Lawall