06 Apr, 2010

16 commits

  • * 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
     
  • 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

14 commits


04 Apr, 2010

6 commits


03 Apr, 2010

4 commits

  • Now that software events use perf_arch_fetch_caller_regs() too, we
    need the powerpc version to be always built.

    Fixes the following build error:

    (.text+0x3210): undefined reference to `perf_arch_fetch_caller_regs'
    (.text+0x3324): undefined reference to `perf_arch_fetch_caller_regs'
    (.text+0x33bc): undefined reference to `perf_arch_fetch_caller_regs'
    (.text+0x33ec): undefined reference to `perf_arch_fetch_caller_regs'
    (.text+0xd4a0): undefined reference to `perf_arch_fetch_caller_regs'
    arch/powerpc/kernel/built-in.o:(.text+0xd528): more undefined references to `perf_arch_fetch_caller_regs' follow
    make[1]: *** [.tmp_vmlinux1] Error 1
    make: *** [sub-make] Error 2

    Reported-by: Michael Ellerman
    Reported-by: Ingo Molnar
    Signed-off-by: Frederic Weisbecker
    Cc: Peter Zijlstra
    Cc: Arnaldo Carvalho de Melo
    Cc: Paul Mackerras

    Frederic Weisbecker
     
  • Now that software events use perf_arch_fetch_caller_regs() too, we
    need the stub version to be always built in for archs that don't
    implement it.

    Fixes the following build error in PARISC:

    kernel/built-in.o: In function `perf_event_task_sched_out':
    (.text.perf_event_task_sched_out+0x54): undefined reference to `perf_arch_fetch_caller_regs'

    Reported-by: Ingo Molnar
    Signed-off-by: Frederic Weisbecker
    Cc: Peter Zijlstra
    Cc: Arnaldo Carvalho de Melo
    Cc: Paul Mackerras

    Frederic Weisbecker
     
  • * master.kernel.org:/home/rmk/linux-2.6-arm:
    ARM: 5965/1: Fix soft lockup in at91 udc driver
    ARM: 6006/1: ARM: Use the correct NOP size in memmove for Thumb-2 kernel builds
    ARM: 6005/1: arm: kprobes: fix register corruption with jprobes
    ARM: 6003/1: removing compilation warning from pl061.h
    ARM: 6001/1: removing compilation warning comming from clkdev.h
    ARM: 6000/1: removing compilation warning comming from
    ARM: 5999/1: Including device.h and resource.h header files in linux/amba/bus.h
    ARM: 5997/1: ARM: Correct the VFPv3 detection
    ARM: 5996/1: ARM: Change the mandatory barriers implementation (4/4)
    ARM: 5995/1: ARM: Add L2x0 outer_sync() support (3/4)
    ARM: 5994/1: ARM: Add outer_cache_fns.sync function pointer (2/4)
    ARM: 5993/1: ARM: Move the outer_cache definitions into a separate file (1/4)

    Linus Torvalds
     
  • * 'merge' of git://git.secretlab.ca/git/linux-2.6:
    powerpc/5200: in lpbfifo, flag DMA irqs as enabled after requesting them
    powerpc/fsl: add device tree binding for QE firmware
    of/flattree: Fix unhandled OF_DT_NOP tag when unflattening the device tree

    Linus Torvalds