07 Apr, 2010

15 commits

  • Made necessary by 6992f5334995af474c2b58d010d08bc597f0f2fe ("sysfs: Use
    one lockdep class per sysfs attribute").

    Prevents further "key xxx not in .data" bug-reports. Although some
    attributes could probably be converted to static ones, this is left for
    people having hardware to test.

    Found by this semantic patch:

    @ init @
    type T;
    identifier A;
    @@

    T {
    ...
    struct device_attribute A;
    ...
    };

    @ main extends init @
    expression E;
    statement S;
    identifier err;
    T *name;
    @@

    ... when != sysfs_attr_init(&name->A.attr);
    (
    + sysfs_attr_init(&name->A.attr);
    if (device_create_file(E, &name->A))
    S
    |
    + sysfs_attr_init(&name->A.attr);
    err = device_create_file(E, &name->A);
    )

    While reviewing, I put the initialization to apropriate places.

    Signed-off-by: Wolfram Sang
    Cc: Eric W. Biederman
    Cc: Greg KH
    Cc: Benjamin Herrenschmidt
    Cc: Grant Likely
    Cc: Mike Isely
    Cc: Mauro Carvalho Chehab
    Cc: Sujith Thomas
    Cc: Matthew Garrett
    Cc: Len Brown
    Cc: Krzysztof Helt
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Wolfram Sang
     
  • Initialize sysfs attributes before device_create_file call.

    Addresses https://bugzilla.kernel.org/show_bug.cgi?id=15548

    Signed-off-by: Wolfram Sang
    Signed-off-by: Sergey Senozhatsky
    Cc: "Eric W. Biederman"
    Cc: Greg KH
    Cc: Zhang Rui
    Cc: Len Brown
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Sergey Senozhatsky
     
  • We take the spin_lock again in fail_all_cmds() so we need to unlock here.

    Signed-off-by: Dan Carpenter
    Acked-by: Steve Cameron
    Cc: Jens Axboe
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dan Carpenter
     
  • This should be spin_lock_irq() to match the spin_unlock_irq(). Originally
    it was a lock_kernel() but we switched everything to spin_lock_irq() last
    November.

    [akpm@linux-foundation.org: fix the MOXA_ASPP_MON case too (per Jiri)]
    Signed-off-by: Dan Carpenter
    Cc: Jiri Slaby
    Cc: Alan Cox
    Cc: Greg KH
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dan Carpenter
     
  • The reset of data lines when the card is removed from the cage results in
    a failure.The failure is seen if the card is removed from the cage when TC
    is pending after a CMD with data received CC.The reset logic leaves the
    controller in a state where niether a TC is received nor DTO.

    The rest code can be safely removed here since it is taken care in the IRQ
    handler.

    Signed-off-by: Madhusudhan Chikkature
    Cc: Adrian Hunter
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Madhusudhan Chikkature
     
  • In an error handling case the lock is not unlocked. The return is
    converted to a goto, to share the unlock at the end of the function.

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

    //
    @r exists@
    expression E1;
    identifier f;
    @@

    f (...) { }
    //

    Signed-off-by: Julia Lawall
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Julia Lawall
     
  • rs_init() is failing to restore interrupts on two error paths, and is
    incorrectly calling tty_unregister_driver() with local interrupts
    disabled.

    Fix these things by disabling interrupts later, after the reauest_irq()
    calls.

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

    //
    @r exists@
    expression E1;
    identifier f;
    @@

    f (...) { }
    //

    [akpm@linux-foundation.org: reimplement the fix]
    Signed-off-by: Julia Lawall
    Cc: Thadeu Lima de Souza Cascardo
    Cc: Greg KH
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Julia Lawall
     
  • Rename imacfb.txt to efifb.txt since imacfb was moved to efifb,and change
    imacfb to efifb.

    Signed-off-by: Justin P. Mattock
    Cc: Geert Uytterhoeven
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Justin P. Mattock
     
  • Commit c2e13037e6794bd0d9de3f9ecabf5615f15c160b ("platform-drivers: move
    probe to .devinit.text in drivers/video") introduced a huge amount of
    section mismatch warnings in vesafb code. Rather than converting all of
    the annotations, do the obvious and revert the __init -> __devinit change,
    and use the recommended (in that patch) alternative to calling
    platform_driver_register(): vesafb depends on information obtained from by
    kernel at boot time, cannot be a module, and no post-boot devices can ever
    show up.

    Signed-off-by: Jan Beulich
    Cc: Greg KH
    Acked-by: Uwe Kleine-König
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jan Beulich
     
  • DECLARE_KFIFO creates a union with a struct kfifo and a buffer array with
    size [size + sizeof(struct kfifo)].

    INIT_KFIFO then sets the buffer pointer in struct kfifo to point to the
    beginning of the buffer array which means that the first call to kfifo_in
    will overwrite members of the struct kfifo.

    Signed-off-by: David Härdeman
    Acked-by: Stefani Seibold
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Härdeman
     
  • - We weren't zeroing p->rss_stat[] at fork()

    - Consequently sync_mm_rss() was dereferencing tsk->mm for kernel
    threads and was oopsing.

    - Make __sync_task_rss_stat() static, too.

    Addresses https://bugzilla.kernel.org/show_bug.cgi?id=15648

    [akpm@linux-foundation.org: remove the BUG_ON(!mm->rss)]
    Reported-by: Troels Liebe Bentsen
    Signed-off-by: KAMEZAWA Hiroyuki
    "Michael S. Tsirkin"
    Cc: Andrea Arcangeli
    Cc: Rik van Riel
    Cc: Minchan Kim
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    KAMEZAWA Hiroyuki
     
  • Migration has been completed so remove this now. There's one straggler in
    linux-next's drivers/mtd/sm_ftl.c. A patch has been sent.

    Cc: Akinobu Mita
    Cc: Stephen Rothwell
    Cc: David Woodhouse
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • * 'urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/brodo/pcmcia-2.6:
    pcmcia: fix up alignf issues

    Linus Torvalds
     
  • * 'irq-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    genirq: Force MSI irq handlers to run with interrupts disabled

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/wim/linux-2.6-watchdog:
    [WATCHDOG] hpwdt - fix lower timeout limit
    [WATCHDOG] iTCO_wdt: TCO Watchdog patch for additional Intel Cougar Point DeviceIDs
    [WATCHDOG] doc: Fix use of WDIOC_SETOPTIONS ioctl.
    [WATCHDOG] doc: watchdog simple example: don't fail on fsync()
    [WATCHDOG] set max63xx driver as ARM only
    [WATCHDOG] powerpc: pika_wdt ident cannot be const

    Linus Torvalds
     

06 Apr, 2010

23 commits

  • * 'upstream-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/libata-dev:
    libata: unlock HPA if device shrunk
    libata: disable NCQ on Crucial C300 SSD
    libata: don't whine on spurious IRQ

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (37 commits)
    smc91c92_cs: fix the problem of "Unable to find hardware address"
    r8169: clean up my printk uglyness
    net: Hook up cxgb4 to Kconfig and Makefile
    cxgb4: Add main driver file and driver Makefile
    cxgb4: Add remaining driver headers and L2T management
    cxgb4: Add packet queues and packet DMA code
    cxgb4: Add HW and FW support code
    cxgb4: Add register, message, and FW definitions
    netlabel: Fix several rcu_dereference() calls used without RCU read locks
    bonding: fix potential deadlock in bond_uninit()
    net: check the length of the socket address passed to connect(2)
    stmmac: add documentation for the driver.
    stmmac: fix kconfig for crc32 build error
    be2net: fix bug in vlan rx path for big endian architecture
    be2net: fix flashing on big endian architectures
    be2net: fix a bug in flashing the redboot section
    bonding: bond_xmit_roundrobin() fix
    drivers/net: Add missing unlock
    net: gianfar - align BD ring size console messages
    net: gianfar - initialize per-queue statistics
    ...

    Linus Torvalds
     
  • copy_to_user() returns the number of bytes left to be copied.

    This was a typo from: d82ef020cf31 "proc: pagemap: Hold mmap_sem during
    page walk".

    Signed-off-by: Dan Carpenter
    Acked-by: Matt Mackall
    Signed-off-by: Linus Torvalds

    Dan Carpenter
     
  • Some BIOSes don't configure HPA during boot but do so while resuming.
    This causes harddrives to shrink during resume making libata detach
    and reattach them. This can be worked around by unlocking HPA if old
    size equals native size.

    Add ATA_DFLAG_UNLOCK_HPA so that HPA unlocking can be controlled
    per-device and update ata_dev_revalidate() such that it sets
    ATA_DFLAG_UNLOCK_HPA and fails with -EIO when the above condition is
    detected.

    This patch fixes the following bug.

    https://bugzilla.kernel.org/show_bug.cgi?id=15396

    Signed-off-by: Tejun Heo
    Reported-by: Oleksandr Yermolenko
    Signed-off-by: Jeff Garzik

    Tejun Heo
     
  • Crucial said,

    Thank you for contacting us. We know that with our M225 line of SSDs
    you sometimes need to disable NCQ (native command queuing) to avoid
    just the type of errors you're seeing. Our recommendation for the
    M225 is to add libata.force=noncq to your Linux kernel boot options,
    under the kernel ATA library option.

    I have sent your feedback to the engineers working on the C300, and
    asked them to please pass it on to the firmware team. I have been
    notified that they are in the process of testing and finalizing a
    new firmware version, that you can expect to see released around the
    end of April. We’ll keep you posted as to when it will be available
    for download.

    So, turn off NCQ on the drive w/ the current firmware revision.

    Reported in the following bug.

    https://bugzilla.kernel.org/show_bug.cgi?id=15573

    Signed-off-by: Tejun Heo
    Reported-by: lethalwp@scarlet.be
    Reported-by: Luke Macken
    Signed-off-by: Jeff Garzik

    Tejun Heo
     
  • On configurations where IRQ line is shared with a different
    controller, spurious IRQs may happen continuously. The message was
    put there primarily for debugging anyway. Kill it.

    Signed-off-by: Tejun Heo
    Signed-off-by: Jeff Garzik

    Tejun Heo
     
  • [Novell Bug 581103] HP Watchdog driver has arbitrary (wrong) timeout limits.
    Fix the lower timeout limit to a more appropriate value.

    Signed-off-by: Thomas Mingarelli
    Signed-off-by: Wim Van Sebroeck
    Cc: stable

    Thomas Mingarelli
     
  • This patch adds the Intel Cougar Point PCH LPC Controller DeviceIDs for iTCO Watchdog.

    Signed-off-by: Seth Heasley
    Signed-off-by: Wim Van Sebroeck
    Cc: stable

    Seth Heasley
     
  • In the watchdog-test program and watchdog-api.txt, pass the values to
    the WDIOC_SETOPTIONS ioctl as a pointer to an integer containing the
    values intead of directly in the third ioctl argument. The actual
    watchdog drivers in drivers/watchdog don't read the options directly
    from the argument but use get_user and copy_from_user.

    Signed-off-by: James Hogan
    Signed-off-by: Wim Van Sebroeck
    Signed-off-by: Andrew Morton

    James Hogan
     
  • Module refcounting is implemented with a per-cpu counter for speed.
    However there is a race when tallying the counter where a reference may
    be taken by one CPU and released by another. Reference count summation
    may then see the decrement without having seen the previous increment,
    leading to lower than expected count. A module which never has its
    actual reference drop below 1 may return a reference count of 0 due to
    this race.

    Module removal generally runs under stop_machine, which prevents this
    race causing bugs due to removal of in-use modules. However there are
    other real bugs in module.c code and driver code (module_refcount is
    exported) where the callers do not run under stop_machine.

    Fix this by maintaining running per-cpu counters for the number of
    module refcount increments and the number of refcount decrements. The
    increments are tallied after the decrements, so any decrement seen will
    always have its corresponding increment counted. The final refcount is
    the difference of the total increments and decrements, preventing a
    low-refcount from being returned.

    Signed-off-by: Nick Piggin
    Acked-by: Rusty Russell
    Signed-off-by: Linus Torvalds

    Nick Piggin
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-rc-fixes-2.6:
    [SCSI] qla1280: retain firmware for error recovery
    [SCSI] attirbute_container: Initialize sysfs attributes with sysfs_attr_init
    [SCSI] advansys: fix regression with request_firmware change
    [SCSI] qla2xxx: Updated version number to 8.03.02-k2.
    [SCSI] qla2xxx: Prevent sending mbx commands from sysfs during isp reset.
    [SCSI] qla2xxx: Disable MSI on qla24xx chips other than QLA2432.
    [SCSI] qla2xxx: Check to make sure multique and CPU affinity support is not enabled at the same time.
    [SCSI] qla2xxx: Correct vp_idx checking during PORT_UPDATE processing.
    [SCSI] qla2xxx: Honour "Extended BB credits" bit for CNAs.
    [SCSI] scsi_transport_fc: Make sure commands are completed when rport is offline
    [SCSI] libiscsi: Fix recovery slowdown regression

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs:
    9p: saving negative to unsigned char
    9p: return on mutex_lock_interruptible()
    9p: Creating files with names too long should fail with ENAMETOOLONG.
    9p: Make sure we are able to clunk the cached fid on umount
    9p: drop nlink remove
    fs/9p: Clunk the fid resulting from partial walk of the name
    9p: documentation update
    9p: Fix setting of protocol flags in v9fs_session_info structure.

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/mason/btrfs-unstable:
    Btrfs: add check for changed leaves in setup_leaf_for_split
    Btrfs: create snapshot references in same commit as snapshot
    Btrfs: fix small race with delalloc flushing waitqueue's
    Btrfs: use add_to_page_cache_lru, use __page_cache_alloc
    Btrfs: fix chunk allocate size calculation
    Btrfs: kill max_extent mount option
    Btrfs: fail to mount if we have problems reading the block groups
    Btrfs: check btrfs_get_extent return for IS_ERR()
    Btrfs: handle kmalloc() failure in inode lookup ioctl
    Btrfs: dereferencing freed memory
    Btrfs: Simplify num_stripes's calculation logical for __btrfs_alloc_chunk()
    Btrfs: Add error handle for btrfs_search_slot() in btrfs_read_chunk_tree()
    Btrfs: Remove unnecessary finish_wait() in wait_current_trans()
    Btrfs: add NULL check for do_walk_down()
    Btrfs: remove duplicate include in ioctl.c

    Fix trivial conflict in fs/btrfs/compression.c due to slab.h include
    cleanups.

    Linus Torvalds
     
  • There have been a number of reports of people seeing the message:
    "name_count maxed, losing inode data: dev=00:05, inode=3185"
    in dmesg. These usually lead to people reporting problems to the filesystem
    group who are in turn clueless what they mean.

    Eventually someone finds me and I explain what is going on and that
    these come from the audit system. The basics of the problem is that the
    audit subsystem never expects a single syscall to 'interact' (for some
    wish washy meaning of interact) with more than 20 inodes. But in fact
    some operations like loading kernel modules can cause changes to lots of
    inodes in debugfs.

    There are a couple real fixes being bandied about including removing the
    fixed compile time limit of 20 or not auditing changes in debugfs (or
    both) but neither are small and obvious so I am not sending them for
    immediate inclusion (I hope Al forwards a real solution next devel
    window).

    In the meantime this patch simply adds 'audit' to the beginning of the
    crap message so if a user sees it, they come blame me first and we can
    talk about what it means and make sure we understand all of the reasons
    it can happen and make sure this gets solved correctly in the long run.

    Signed-off-by: Eric Paris
    Signed-off-by: Linus Torvalds

    Eric Paris
     
  • Saving -EINVAL as unsigned char truncates the high bits and changes it
    into 234 instead of -22. This breaks the test for "if (ret == -EINVAL)"
    in parse_opts().

    Signed-off-by: Dan Carpenter
    Signed-off-by: Eric Van Hensbergen

    Dan Carpenter
     
  • If "err" is -EINTR here the original code calls mutex_unlock() and then
    returns, but it should just return directly.

    Signed-off-by: Dan Carpenter
    Signed-off-by: Eric Van Hensbergen

    ------------------------------------------------------------------------------
    Download Intel® Parallel Studio Eval
    Try the new software tools for yourself. Speed compiling, find bugs
    proactively, and fine-tune applications for parallel performance.
    See why Intel Parallel Studio got high marks during beta.
    http://p.sf.net/sfu/intel-sw-dev

    Dan Carpenter
     
  • setup_leaf_for_split needs to drop the path and search again, and has
    checks to see if the item we want to split changed size. But, it misses
    the case where the leaf changed and now has enough room for the item
    we want to insert.

    This adds an extra check to make sure the leaf really needs splitting
    before we call btrfs_split_leaf(), which keeps us from trying to split
    a leaf with a single item.

    btrfs_split_leaf() will blindly split the single item leaf, leaving us
    with one good leaf and one empty leaf and then a crash.

    Signed-off-by: Chris Mason

    Chris Mason
     
  • This creates the reference to a new snapshot in the same commit as the
    snapshot itself. This avoids the need for a second commit in order for a
    snapshot to be persistent, and also avoids the problem of "leaking" a
    new snapshot tree root if the host crashes before the second commit takes
    place.

    It is not at all clear to me why it wasn't always done this way. If there
    is still a reason for the two-stage {create,finish}_pending_snapshots()
    approach I'm missing something! :)

    I've been running this for a couple weeks under pretty heavy usage (a few
    snapshots per minute) without obvious problems.

    Signed-off-by: Sage Weil
    Signed-off-by: Chris Mason

    Sage Weil
     
  • Everytime we start a new flushing thread, we init the waitqueue if there isn't a
    flushing thread running. The problem with this is we check
    space_info->flushing, which we clear right before doing a wake_up on the
    flushing waitqueue, which causes problems if we init the waitqueue in the middle
    of clearing the flushing flagh and calling wake_up. This is hard to hit, but
    the code is wrong anyway, so init the flushing/allocating waitqueue when
    creating the space info and let it be. I haven't seen the panic since I've been
    using this patch. Thanks,

    Signed-off-by: Josef Bacik
    Signed-off-by: Chris Mason

    Josef Bacik
     
  • Pagecache pages should be allocated with __page_cache_alloc, so they
    obey pagecache memory policies.

    add_to_page_cache_lru is exported, so it should be used. Benefits over
    using a private pagevec: neater code, 128 bytes fewer stack used, percpu
    lru ordering is preserved, and finally don't need to flush pagevec
    before returning so batching may be shared with other LRU insertions.

    Signed-off-by: Nick Piggin :
    Signed-off-by: Chris Mason

    Nick Piggin
     
  • * 'slabh' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/misc:
    eeepc-wmi: include slab.h
    staging/otus: include slab.h from usbdrv.h
    percpu: don't implicitly include slab.h from percpu.h
    kmemcheck: Fix build errors due to missing slab.h
    include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h
    iwlwifi: don't include iwl-dev.h from iwl-devtrace.h
    x86: don't include slab.h from arch/x86/include/asm/pgtable_32.h

    Fix up trivial conflicts in include/linux/percpu.h due to
    is_kernel_percpu_address() having been introduced since the slab.h
    cleanup with the percpu_up.c splitup.

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu:
    module: add stub for is_module_percpu_address
    percpu, module: implement and use is_kernel/module_percpu_address()
    module: encapsulate percpu handling better and record percpu_size

    Linus Torvalds
     
  • Fix a memory leak in anon_vma_fork(), where we fail to tear down the
    anon_vmas attached to the new VMA in case setting up the new anon_vma
    fails.

    This bug also has the potential to leave behind anon_vma_chain structs
    with pointers to invalid memory.

    Reported-by: Minchan Kim
    Signed-off-by: Rik van Riel
    Signed-off-by: Linus Torvalds

    Rik van Riel
     

05 Apr, 2010

2 commits