17 Oct, 2011

5 commits

  • we save the l2x0 registers at the first initialization, and platform codes
    can get them to restore l2x0 status after wakeup.

    Cc: Lorenzo Pieralisi
    Signed-off-by: Barry Song
    Reviewed-by: Santosh Shilimkar
    Tested-by: Shawn Guo
    Signed-off-by: Russell King

    Barry Song
     
  • Following the discussion here:
    http://lists.ozlabs.org/pipermail/devicetree-discuss/2011-August/007301.html

    The L2x0 L2 Cache Controllers support a combined interrupt line
    which can be used for several events (e.g. read/write/parity errors on
    tag/data RAM, event counter increment/overflow). Unfortunately the
    OF binding added in c519ecf2 ("ARM: 7009/1: l2x0: Add OF based
    initialization") does not represent the interrupt.

    This patch adds an "interrupts" property to the L2x0 OF binding,
    representing the combined interrupt line.

    Signed-off-by: Mark Rutland
    Acked-by: Rob Herring
    Acked-by: Will Deacon
    Cc: Grant Likely
    Cc: Arnd Bergmann
    Cc: Olof Johansson
    Cc: Barry Song
    Signed-off-by: Russell King

    Mark Rutland
     
  • this patch fixes the error in Rob Herring's
    ARM: 7009/1: l2x0: Add OF based initialization
    http://www.spinics.net/lists/arm-kernel/msg131123.html
    it has been in rmk/for-next with commit 41c86ff5b

    Cc: Shawn Guo
    Cc: Arnd Bergmann
    Signed-off-by: Barry Song
    Acked-by: Rob Herring
    Signed-off-by: Russell King

    Barry Song
     
  • using cpu_relax in busy loops is a well-known idiom in the kernel.
    It's more for documentation purposes than technically needed here.

    Signed-off-by: Barry Song
    Acked-by: Arnd Bergmann
    Reviewed-by: Jamie Iles
    Signed-off-by: Russell King

    Barry Song
     
  • This adds probing for ARM L2x0 cache controllers via device tree. Support
    includes the L210, L220, and PL310 controllers. The binding allows setting
    up cache RAM latencies and filter addresses (PL310 only).

    Signed-off-by: Rob Herring
    Acked-by: Grant Likely
    Acked-by: Arnd Bergmann
    Acked-by: Olof Johansson
    Acked-by: Barry Song
    Signed-off-by: Russell King

    Rob Herring
     

11 Sep, 2011

4 commits

  • * 'fixes' of http://ftp.arm.linux.org.uk/pub/linux/arm/kernel/git-cur/linux-2.6-arm:
    ARM: 7088/1: entry: fix wrong parameter name used in do_thumb_abort
    ARM: 7080/1: l2x0: make sure I&D are not locked down on init
    ARM: 7081/1: mach-integrator: fix the clocksource
    NET: am79c961: fix race in link status code
    ARM: 7067/1: mm: keep significant bits in pfn_valid

    Linus Torvalds
     
  • Commit be020f8618ca, "ARM: entry: abort-macro: specify registers to be
    used for macros", while replacing register numbers with macro parameter
    names, mismatched the name used for r1. For me, this resulted in user
    space built for EABI with -march=armv4t -mtune=arm920t -mthumb-interwork
    -mthumb broken on my OMAP1510 based Amstrad Delta (old ABI and no thumb
    still worked for me though).

    Fix this by using correct parameter name fsr instead of mismatched psr,
    used by callers for another purpose.

    Signed-off-by: Janusz Krzysztofik
    Signed-off-by: Russell King

    Janusz Krzysztofik
     
  • Since backlight_types[] isn't modified, let's declare it const. That
    was probably the intention of the author of commit bb7ca747f8d6
    ("backlight: add backlight type"), via which the "const char const *"
    construct was introduced. The duplicate const was detected by sparse.

    Signed-off-by: Bart Van Assche
    Cc: Matthew Garrett
    Cc: Richard Purdie
    Cc: Florian Tobias Schandinat
    Cc: Andrew Morton
    Signed-off-by: Linus Torvalds

    Bart Van Assche
     
  • * 'for-linus' of git://neil.brown.name/md:
    md: Fix handling for devices from 2TB to 4TB in 0.90 metadata.
    md/raid1,10: Remove use-after-free bug in make_request.
    md/raid10: unify handling of write completion.
    Avoid dereferencing a 'request_queue' after last close.

    Linus Torvalds
     

10 Sep, 2011

9 commits

  • 0.90 metadata uses an unsigned 32bit number to count the number of
    kilobytes used from each device.
    This should allow up to 4TB per device.
    However we multiply this by 2 (to get sectors) before casting to a
    larger type, so sizes above 2TB get truncated.

    Also we allow rdev->sectors to be larger than 4TB, so it is possible
    for the array to be resized larger than the metadata can handle.
    So make sure rdev->sectors never exceeds 4TB when 0.90 metadata is in
    used.

    Also the sanity check at the end of super_90_load should include level
    1 as it used ->size too. (RAID0 and Linear don't use ->size at all).

    Reported-by: Pim Zandbergen
    Cc: stable@kernel.org
    Signed-off-by: NeilBrown

    NeilBrown
     
  • A single request to RAID1 or RAID10 might result in multiple
    requests if there are known bad blocks that need to be avoided.

    To detect if we need to submit another write request we test:
    if (sectors_handled < (bio->bi_size >> 9)) {

    However this is after we call **_write_done() so the 'bio' no longer
    belongs to us - the writes could have completed and the bio freed.

    So move the **_write_done call until after the test against
    bio->bi_size.

    This addresses https://bugzilla.kernel.org/show_bug.cgi?id=41862

    Reported-by: Bruno Wolff III
    Tested-by: Bruno Wolff III
    Signed-off-by: NeilBrown

    NeilBrown
     
  • A write can complete at two different places:
    1/ when the last member-device write completes, through
    raid10_end_write_request
    2/ in make_request() when we remove the initial bias from ->remaining.

    These two should do exactly the same thing and the comment says they
    do, but they don't.

    So factor the correct code out into a function and call it in both
    places. This makes the code much more similar to RAID1.

    The difference is only significant if there is an error, and they
    usually take a while, so it is unlikely that there will be an error
    already when make_request is completing, so this is unlikely to cause
    real problems.

    Signed-off-by: NeilBrown

    NeilBrown
     
  • On the last close of an 'md' device which as been stopped, the device
    is destroyed and in particular the request_queue is freed. The free
    is done in a separate thread so it might happen a short time later.

    __blkdev_put calls bdev_inode_switch_bdi *after* ->release has been
    called.

    Since commit f758eeabeb96f878c860e8f110f94ec8820822a9
    bdev_inode_switch_bdi will dereference the 'old' bdi, which lives
    inside a request_queue, to get a spin lock. This causes the last
    close on an md device to sometime take a spin_lock which lives in
    freed memory - which results in an oops.

    So move the called to bdev_inode_switch_bdi before the call to
    ->release.

    Cc: Christoph Hellwig
    Cc: Hugh Dickins
    Cc: Andrew Morton
    Cc: Wu Fengguang
    Acked-by: Wu Fengguang
    Cc: stable@kernel.org
    Signed-off-by: NeilBrown

    NeilBrown
     
  • Modifying the Maximum Read Request Size to 0 (value of 128Bytes) has
    massive negative ramifications on some devices. Without knowing which
    devices have this issue, do not modify from the default value when
    walking the PCI-E bus in pcie_bus_safe mode. Also, make pcie_bus_safe
    the default procedure.

    Tested-by: Sven Schnelle
    Tested-by: Simon Kirby
    Tested-by: Stephen M. Cameron
    Reported-and-tested-by: Eric Dumazet
    Reported-and-tested-by: Niels Ole Salscheider
    References: https://bugzilla.kernel.org/show_bug.cgi?id=42162
    Signed-off-by: Jon Mason
    Acked-by: Jesse Barnes
    Signed-off-by: Linus Torvalds

    Jon Mason
     
  • Commit b03e7495a862 ("PCI: Set PCI-E Max Payload Size on fabric")
    introduced a potential NULL pointer dereference in calls to
    pcie_bus_configure_settings due to attempts to access pci_bus self
    variables when the self pointer is NULL.

    To correct this, verify that the self pointer in pci_bus is non-NULL
    before dereferencing it.

    Reported-by: Stanislaw Gruszka
    Signed-off-by: Shyam Iyer
    Signed-off-by: Jon Mason
    Acked-by: Jesse Barnes
    Signed-off-by: Linus Torvalds

    Shyam Iyer
     
  • * 'for-linus' of git://dev.laptop.org/users/cjb/mmc:
    mmc: sdhci-s3c: Fix mmc card I/O problem
    mmc: sd: UHS-I bus speed should be set last in UHS initialization
    mmc: sdhi: initialise mmc_data->flags before use
    mmc: core: use non-reentrant workqueue for clock gating
    mmc: core: prevent aggressive clock gating racing with ios updates
    mmc: rename mmc_host_clk_{ungate|gate} to mmc_host_clk_{hold|release}
    mmc: sdhci-esdhc-imx: add missing inclusion of linux/module.h

    Linus Torvalds
     
  • * 'for-linus' of git://ceph.newdream.net/git/ceph-client:
    libceph: fix leak of osd structs during shutdown
    ceph: fix memory leak
    ceph: fix encoding of ino only (not relative) paths
    libceph: fix msgpool

    Linus Torvalds
     
  • Prior to 2.6.38 automount would not trigger on either stat(2) or
    lstat(2) on the automount point.

    After 2.6.38, with the introduction of the ->d_automount()
    infrastructure, stat(2) and others would start triggering automount
    while lstat(2), etc. still would not. This is a regression and a
    userspace ABI change.

    Problem originally reported here:

    http://thread.gmane.org/gmane.linux.kernel.autofs/6098

    It appears that there was an attempt at fixing various userspace tools
    to not trigger the automount. But since the stat system call is
    rather common it is impossible to "fix" all userspace.

    This patch reverts the original behavior, which is to not trigger on
    stat(2) and other symlink following syscalls.

    [ It's not really clear what the right behavior is. Apparently Solaris
    does the "automount on stat, leave alone on lstat". And some programs
    can get unhappy when "stat+open+fstat" ends up giving a different
    result from the fstat than from the initial stat.

    But the change in 2.6.38 resulted in problems for some people, so
    we're going back to old behavior. Maybe we can re-visit this
    discussion at some future date - Linus ]

    Reported-by: Leonardo Chiquitto
    Signed-off-by: Miklos Szeredi
    Acked-by: Ian Kent
    Cc: David Howells
    Cc: stable@kernel.org
    Signed-off-by: Linus Torvalds

    Miklos Szeredi
     

09 Sep, 2011

7 commits


08 Sep, 2011

4 commits


07 Sep, 2011

11 commits