29 Sep, 2010

1 commit

  • libata depends on scsi_host_template for module reference counting and
    sht's should be owned by each low level driver. During libahci split,
    the sht was left with libahci.ko leaving the actual low level drivers
    not reference counted. This made ahci and ahci_platform always
    unloadable even while they're being actively used.

    Fix it by defining AHCI_SHT() macro in ahci.h and defining a sht for
    each low level ahci driver.

    stable: only applicable to 2.6.35.

    Signed-off-by: Tejun Heo
    Reported-by: Pedro Francisco
    Tested-by: Michael Tokarev
    Cc: stable@kernel.org
    Signed-off-by: Jeff Garzik

    Tejun Heo
     

28 Sep, 2010

22 commits


27 Sep, 2010

8 commits

  • The PL310 on the ct-ca9x4 tile for the Versatile Express does not need
    to add additional latency when accessing its cache RAMs. Unfortunately,
    the boot monitor sets this up for an 8-cycle delay on reads and writes,
    resulting in greatly reduced memory performance when the L2 cache is
    enabled.

    This patch sets the L2 RAM latencies to the correct value of 1 cycle
    on the ct-ca9x4 tile before enabling the L2 cache.

    Acked-by: Catalin Marinas
    Signed-off-by: Will Deacon
    Signed-off-by: Russell King

    Will Deacon
     
  • Return -ENOMEM when erroring on kmalloc and fix memory leaks when returning on error.

    Signed-off-by: Davidlohr Bueso
    Reviewed-by: Aneesh Kumar K.V
    Signed-off-by: Eric Van Hensbergen

    Davidlohr Bueso
     
  • f4347553b30ec66530bfe63c84530afea3803396 removed the edac polling
    mechanism in favor of using a notifier chain for conveying MCE
    information to edac. However, the module removal path didn't test
    whether the driver had setup the polling function workqueue at all and
    the rmmod process was hanging in the kernel at try_to_del_timer_sync()
    in the cancel_delayed_work() path, trying to cancel an uninitialized
    work struct.

    Fix that by adding a balancing check to the workqueue removal path.

    Signed-off-by: Borislav Petkov

    Borislav Petkov
     
  • While debugging bit_spin_lock() hang, it was tracked down to gcc-4.4
    misoptimization of non-inlined constant_test_bit() due to non-volatile
    addr when 'const volatile unsigned long *addr' cast to 'unsigned long *'
    with subsequent unconditional jump to pause (and not to the test) leading
    to hang.

    Compiling with gcc-4.3 or disabling CONFIG_OPTIMIZE_INLINING yields inlined
    constant_test_bit() and correct jump, thus working around the kernel bug.

    Other arches than asm-x86 may implement this slightly differently;
    2.6.29 mitigates the misoptimization by changing the function prototype
    (commit c4295fbb6048d85f0b41c5ced5cbf63f6811c46c) but probably fixing the issue
    itself is better.

    Signed-off-by: Alexander Chumachenko
    Signed-off-by: Michael Shigorin
    Acked-by: Linus Torvalds
    Signed-off-by: H. Peter Anvin

    Alexander Chumachenko
     
  • System call entry functions sys_*() are never to be called from
    general kernel code. The fact that they aren't declared in header
    files should have been a clue. These functions also don't exist on
    Alpha since it has sys_getxpid() instead.

    Signed-off-by: Ben Hutchings
    Acked-by: Tetsuo Handa
    Signed-off-by: James Morris

    Ben Hutchings
     
  • If not all clocks have been defined in platform data, the driver will
    cause a null pointer dereference when it is removed. This patch fixes
    this issue.

    Signed-off-by: Marek Szyprowski
    Signed-off-by: Kyungmin Park
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Chris Ball

    Marek Szyprowski
     
  • In the commit f522886e202a34a2191dd5d471b3c4d46410a9a0 a merge conflict
    in the sdhci-s3c driver been fixed. However the fix used incorrect
    spinlock operation - it caused a race with sdhci interrupt service. The
    correct way to solve it is to use spin_lock_irqsave/irqrestore() calls.

    Signed-off-by: Marek Szyprowski
    Signed-off-by: Kyungmin Park
    Signed-off-by: Andrew Morton
    Signed-off-by: Chris Ball

    Marek Szyprowski
     
  • Signed-off-by: Chris Ball
    Cc: Pierre Ossman
    Cc:
    Signed-off-by: Andrew Morton

    Chris Ball
     

26 Sep, 2010

6 commits

  • In error return path
    call pci_disable_device() which was enabled earlier.

    Signed-off-by: Rahul Ruikar
    Signed-off-by: Dominik Brodowski

    Rahul Ruikar
     
  • rdusp() gives us the right value only for the current thread...

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

    Al Viro
     
  • We want interrupts disabled on all paths leading to RESTORE_ALL;
    otherwise, we are risking an IRQ coming between the updates of
    alpha_mv->hae_cache and *alpha_mv->hae_register and set_hae()
    within the IRQ getting badly confused.

    RESTORE_ALL used to play with disabling IRQ itself, but that got
    removed back in 2002, without making sure we had them disabled
    on all paths. It's cheaper to make sure we have them disabled than
    to revert to original variant...

    Remove the detritus left from that commit back in 2002; we used to
    need a reload of $0 and $1 since swpipl would change those, but
    doing that had become pointless when we stopped doing swpipl in
    there...

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

    Al Viro
     
  • * 'for-linus' of git://git.kernel.dk/linux-2.6-block:
    block: prevent merges of discard and write requests

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6:
    ALSA: sound/pci/rme9652: prevent reading uninitialized stack memory
    ALSA: hda - Fix auto-parse of SPDIF input of Realtek codecs
    ASoC: Fix multi-componentism
    ASoC: Fix soc-cache buffer overflow bug
    ALSA: oxygen: fix analog capture on Claro halo cards
    ALSA: hda - Add Dell Latitude E6400 model quirk
    ASoC: fix clkdev API usage in sh/migor.c

    Linus Torvalds
     
  • Thomas Pollet noticed that the remap_file_pages() system call in
    fremap.c has a potential overflow in the first part of the if statement
    below, which could cause it to process bogus input parameters.
    Specifically the pgoff + size parameters could be wrap thereby
    preventing the system call from failing when it should.

    Reported-by: Thomas Pollet
    Signed-off-by: Larry Woodman
    Signed-off-by: Linus Torvalds

    Larry Woodman
     

25 Sep, 2010

3 commits