07 Apr, 2010

24 commits

  • To prevent from wrongly using the return value.

    [akpm@linux-foundation.org: fix spello]
    Signed-off-by: Yong Zhang
    Cc: Ingo Molnar
    Cc: Dave Young
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Yong Zhang
     
  • commit dcefafb6 ("/dev/mem: dont allow seek to last page") inadvertently
    disabled rewinding on /dev/mem.

    This broke x86info for example.

    Signed-off-by: Eric Dumazet
    Acked-by: Wu Fengguang
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Eric Dumazet
     
  • Requested by hch, for consistency now it is exported.

    Cc: Alexander Viro
    Cc: Anton Blanchard
    Cc: Christoph Hellwig
    Cc: Jan Kara
    Cc: Jeff Moyer
    Cc: Jens Axboe
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • Commit 148f948ba877f4d3cdef036b1ff6d9f68986706a (vfs: Introduce new
    helpers for syncing after writing to O_SYNC file or IS_SYNC inode) broke
    the raw driver.

    We now call through generic_file_aio_write -> generic_write_sync ->
    vfs_fsync_range. vfs_fsync_range has:

    if (!fop || !fop->fsync) {
    ret = -EINVAL;
    goto out;
    }

    But drivers/char/raw.c doesn't set an fsync method.

    We have two options: fix it or remove the raw driver completely. I'm
    happy to do either, the fact this has been broken for so long suggests it
    is rarely used.

    The patch below adds an fsync method to the raw driver. My knowledge of
    the block layer is pretty sketchy so this could do with a once over.

    If we instead decide to remove the raw driver, this patch might still be
    useful as a backport to 2.6.33 and 2.6.32.

    Signed-off-by: Anton Blanchard
    Reviewed-by: Jan Kara
    Cc: Christoph Hellwig
    Cc: Alexander Viro
    Cc: Jens Axboe
    Reviewed-by: Jeff Moyer
    Tested-by: Jeff Moyer
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Anton Blanchard
     
  • Since Valentin's email address @siemens.com is no longer valid, it's time
    to change it to the one that actually works so that I don't have to
    manually forward patches against mb862xx to him every time.

    Signed-off-by: Alexander Shishkin
    Acked-by: Valentin Sitdikov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexander Shishkin
     
  • mb862xxfb_accel built as a separate module, but it does not have a
    MODULE_LICENSE, so it taints the kernel. Add a MODULE_LICENSE to it (same
    as mb862xxfb license).

    mb862xxfb_accel: module license 'unspecified' taints kernel.

    Or should mb862xxfb_accel be built into the mb862xxfb binary file instead?

    Signed-off-by: Randy Dunlap
    Acked-by: Alexander Shishkin
    Cc: Valentin Sitdikov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Randy Dunlap
     
  • Shaohua Li reported his tmpfs streaming I/O test can lead to make oom.
    The test uses a 6G tmpfs in a system with 3G memory. In the tmpfs, there
    are 6 copies of kernel source and the test does kbuild for each copy. His
    investigation shows the test has a lot of rotated anon pages and quite few
    file pages, so get_scan_ratio calculates percent[0] (i.e. scanning
    percent for anon) to be zero. Actually the percent[0] shoule be a big
    value, but our calculation round it to zero.

    Although before commit 84b18490 ("vmscan: get_scan_ratio() cleanup") , we
    have the same problem too. But the old logic can rescue percent[0]==0
    case only when priority==0. It had hided the real issue. I didn't think
    merely streaming io can makes percent[0]==0 && priority==0 situation. but
    I was wrong.

    So, definitely we have to fix such tmpfs streaming io issue. but anyway I
    revert the regression commit at first.

    This reverts commit 84b18490d1f1bc7ed5095c929f78bc002eb70f26.

    Signed-off-by: KOSAKI Motohiro
    Reported-by: Shaohua Li
    Cc: Rik van Riel
    Cc: KAMEZAWA Hiroyuki
    Cc: Minchan Kim
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    KOSAKI Motohiro
     
  • I hit this when we had a bug in IDR for a few days. Basically sysfs would
    fail to create new inodes since it uses an IDR and therefore class_create
    would fail.

    While we are unlikely to see this fail we may as well handle it instead of
    oopsing.

    Signed-off-by: Anton Blanchard
    Reviewed-by: Wu Fengguang
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Anton Blanchard
     
  • btrfs relocate_file_extent_cluster() calls us with NULL filp:

    [ 4005.426805] BUG: unable to handle kernel NULL pointer dereference at 00000021
    [ 4005.426818] IP: [] page_cache_sync_readahead+0x18/0x3e

    Signed-off-by: Wu Fengguang
    Cc: Yan Zheng
    Reported-by: Kirill A. Shutemov
    Tested-by: Kirill A. Shutemov
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Wu Fengguang
     
  • 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

16 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