19 Jan, 2011

1 commit

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound-2.6:
    ALSA: hda - Fix initialization for HP 2011 notebooks
    ALSA: hda - Add support for VMware controller
    ALSA: hda - consitify string arrays
    ALSA: hda - Add add multi-streaming playback for AD1988
    ASoC: EP93xx: fixed LRCLK rate and DMA oper. in I2S code
    ASoC: WM8990: msleep() takes milliseconds not jiffies
    ALSA : au88x0 - Limit number of channels to fix Oops via OSS emu
    ALSA: constify functions in ac97
    ASoC: WL1273 FM radio: Fix breakage with MFD API changes
    ALSA: hda - More coverage for odd-number channels elimination for HDMI
    ALSA: hda - Store PCM parameters properly in HDMI open callback
    ALSA: hda - Rearrange fixup struct in patch_realtek.c
    ALSA: oxygen: Xonar DG: fix CS4245 register writes
    ALSA: hda - Suppress the odd number of channels for HDMI
    ALSA: hda - Add fixup-call in init callback
    ALSA: hda - Reorganize fixup structure for Realtek
    ALSA: hda - Apply Sony VAIO hweq fixup only once
    ALSA: hda - Apply mario fixup only once
    ALSA: hda - Remove unused fixup entry for ALC262

    Linus Torvalds
     

18 Jan, 2011

7 commits

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband:
    RDMA: Update workqueue usage
    RDMA/nes: Fix incorrect SFP+ link status detection on driver init
    RDMA/nes: Fix SFP+ link down detection issue with switch port disable
    RDMA/nes: Generate IB_EVENT_PORT_ERR/PORT_ACTIVE events
    RDMA/nes: Fix bonding on iw_nes
    IB/srp: Test only once whether iu allocation succeeded
    IB/mlx4: Handle protocol field in multicast table
    RDMA: Use vzalloc() to replace vmalloc()+memset(0)
    mlx4_{core, ib, en}: Fix driver when sizeof (phys_addr_t) > sizeof (long)
    IB/mthca: Fix driver when sizeof (phys_addr_t) > sizeof (long)

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ecryptfs/ecryptfs-2.6:
    ecryptfs: remove unnecessary decrypt when extending a file
    ecryptfs: Fix ecryptfs_printk() size_t warnings
    fs/ecryptfs: Add printf format/argument verification and fix fallout
    ecryptfs: fixed testing of file descriptor flags
    ecryptfs: test lower_file pointer when lower_file_mutex is locked
    ecryptfs: missing initialization of the superblock 'magic' field
    ecryptfs: moved ECRYPTFS_SUPER_MAGIC definition to linux/magic.h
    ecryptfs: fix truncation error in ecryptfs_read_update_atime

    Linus Torvalds
     
  • * 'next-devicetree' of git://git.secretlab.ca/git/linux-2.6:
    spi/spi_sh_msiof: fix a wrong free_irq() parameter
    dt/flattree: Return virtual address from early_init_dt_alloc_memory_arch()

    Linus Torvalds
     
  • * git://git.infradead.org/mtd-2.6: (59 commits)
    mtd: mtdpart: disallow reading OOB past the end of the partition
    mtd: pxa3xx_nand: NULL dereference in pxa3xx_nand_probe
    UBI: use mtd->writebufsize to set minimal I/O unit size
    mtd: initialize writebufsize in the MTD object of a partition
    mtd: onenand: add mtd->writebufsize initialization
    mtd: nand: add mtd->writebufsize initialization
    mtd: cfi: add writebufsize initialization
    mtd: add writebufsize field to mtd_info struct
    mtd: OneNAND: OMAP2/3: prevent regulator sleeping while OneNAND is in use
    mtd: OneNAND: add enable / disable methods to onenand_chip
    mtd: m25p80: Fix JEDEC ID for AT26DF321
    mtd: txx9ndfmc: limit transfer bytes to 512 (ECC provides 6 bytes max)
    mtd: cfi_cmdset_0002: add support for Samsung K8D3x16UxC NOR chips
    mtd: cfi_cmdset_0002: add support for Samsung K8D6x16UxM NOR chips
    mtd: nand: ams-delta: drop omap_read/write, use ioremap
    mtd: m25p80: add debugging trace in sst_write
    mtd: nand: ams-delta: select for built-in by default
    mtd: OneNAND: lighten scary initial bad block messages
    mtd: OneNAND: OMAP2/3: add support for command line partitioning
    mtd: nand: rearrange ONFI revision checking, add ONFI 2.3
    ...

    Fix up trivial conflict in drivers/mtd/Kconfig as per DavidW.

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6:
    fs: fix address space warnings in ioctl_fiemap()
    aio: check return value of create_workqueue()
    hpfs_setattr error case avoids unlock_kernel
    compat: copy missing fields in compat_statfs64 to user
    compat: update comment of compat statfs syscalls
    compat: remove unnecessary assignment in compat_rw_copy_check_uvector()
    fs: FS_POSIX_ACL does not depend on BLOCK
    fs: Remove unlikely() from fget_light()
    fs: Remove unlikely() from fput_light()
    fallocate should be a file operation
    make the feature checks in ->fallocate future proof
    staging: smbfs building fix
    tidy up around finish_automount()
    don't drop newmnt on error in do_add_mount()
    Take the completion of automount into new helper

    Linus Torvalds
     
  • * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/async_tx: (63 commits)
    ARM: PL08x: cleanup comments
    Update CONFIG_MD_RAID6_PQ to CONFIG_RAID6_PQ in drivers/dma/iop-adma.c
    ARM: PL08x: fix a warning
    Fix dmaengine_submit() return type
    dmaengine: at_hdmac: fix race while monitoring channel status
    dmaengine: at_hdmac: flags located in first descriptor
    dmaengine: at_hdmac: use subsys_initcall instead of module_init
    dmaengine: at_hdmac: no need set ACK in new descriptor
    dmaengine: at_hdmac: trivial add precision to unmapping comment
    dmaengine: at_hdmac: use dma_address to program DMA hardware
    pch_dma: support new device ML7213 IOH
    ARM: PL08x: prevent dma_set_runtime_config() reconfiguring memcpy channels
    ARM: PL08x: allow dma_set_runtime_config() to return errors
    ARM: PL08x: fix locking between prepare function and submit function
    ARM: PL08x: introduce 'phychan_hold' to hold on to physical channels
    ARM: PL08x: put txd's on the pending list in pl08x_tx_submit()
    ARM: PL08x: rename 'desc_list' as 'pend_list'
    ARM: PL08x: implement unmapping of memcpy buffers
    ARM: PL08x: store prep_* flags in async_tx structure
    ARM: PL08x: shrink srcbus/dstbus in txd structure
    ...

    Linus Torvalds
     
  • The definition of ECRYPTFS_SUPER_MAGIC has been moved to the include
    file 'linux/magic.h' to become available to other kernel subsystems.

    Signed-off-by: Roberto Sassu
    Signed-off-by: Tyler Hicks

    Roberto Sassu
     

17 Jan, 2011

10 commits

  • The fi_extents_start field of struct fiemap_extent_info is a
    user pointer but was not marked as __user. This makes sparse
    emit following warnings:

    CHECK fs/ioctl.c
    fs/ioctl.c:114:26: warning: incorrect type in argument 1 (different address spaces)
    fs/ioctl.c:114:26: expected void [noderef] *dst
    fs/ioctl.c:114:26: got struct fiemap_extent *[assigned] dest
    fs/ioctl.c:202:14: warning: incorrect type in argument 1 (different address spaces)
    fs/ioctl.c:202:14: expected void const volatile [noderef] *
    fs/ioctl.c:202:14: got struct fiemap_extent *[assigned] fi_extents_start
    fs/ioctl.c:212:27: warning: incorrect type in argument 1 (different address spaces)
    fs/ioctl.c:212:27: expected void [noderef] *dst
    fs/ioctl.c:212:27: got char *

    Also add 'ufiemap' variable to eliminate unnecessary casts.

    Signed-off-by: Namhyung Kim
    Signed-off-by: Al Viro

    Namhyung Kim
     
  • In fput_light(), there's an unlikely(fput_needed), which running on
    my normal desktop doing firefox, xchat, evolution and part of my distcc farm,
    and running the annotate branch profiler shows that the unlikely is not
    very unlikely.

    correct incorrect % Function File Line
    ------- --------- - -------- ---- ----
    0 48 100 fput_light file.h 26
    115828710 897415279 88 fput_light file.h 26
    865271179 5286128445 85 fput_light file.h 26
    19568539 8923664 31 fput_light file.h 26
    12353677 3562279 22 fput_light file.h 26
    267691 67062 20 fput_light file.h 26
    15014853 348172 2 fput_light file.h 26
    209258 205 0 fput_light file.h 26
    1364164 0 0 fput_light file.h 26

    Which gives 1032903812 times it was correct and 6203351846 times it was
    incorrect, or 85% incorrect.

    Cc: Andrew Morton
    Signed-off-by: Steven Rostedt
    Signed-off-by: Al Viro

    Steven Rostedt
     
  • Currently all filesystems except XFS implement fallocate asynchronously,
    while XFS forced a commit. Both of these are suboptimal - in case of O_SYNC
    I/O we really want our allocation on disk, especially for the !KEEP_SIZE
    case where we actually grow the file with user-visible zeroes. On the
    other hand always commiting the transaction is a bad idea for fast-path
    uses of fallocate like for example in recent Samba versions. Given
    that block allocation is a data plane operation anyway change it from
    an inode operation to a file operation so that we have the file structure
    available that lets us check for O_SYNC.

    This also includes moving the code around for a few of the filesystems,
    and remove the already unnedded S_ISDIR checks given that we only wire
    up fallocate for regular files.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Al Viro

    Christoph Hellwig
     
  • Roland Dreier
     
  • * ib_wq is added, which is used as the common workqueue for infiniband
    instead of the system workqueue. All system workqueue usages
    including flush_scheduled_work() callers are converted to use and
    flush ib_wq.

    * cancel_delayed_work() + flush_scheduled_work() converted to
    cancel_delayed_work_sync().

    * qib_wq is removed and ib_wq is used instead.

    This is to prepare for deprecation of flush_scheduled_work().

    Signed-off-by: Tejun Heo
    Signed-off-by: Roland Dreier

    Tejun Heo
     
  • Cleanup the formatting of comments, remove some which don't make sense
    anymore.

    Signed-off-by: Russell King
    [fix conflict with 96a608a4]
    Signed-off-by: Dan Williams

    Russell King - ARM Linux
     
  • pmdp_get_and_clear/pmdp_clear_flush/pmdp_splitting_flush were trapped as
    BUG() and they were defined only to diminish the risk of build issues on
    not-x86 archs and to be consistent with the generic pte methods previously
    defined in include/asm-generic/pgtable.h.

    But they are causing more trouble than they were supposed to solve, so
    it's simpler not to define them when THP is off.

    This is also correcting the export of pmdp_splitting_flush which is
    currently unused (x86 isn't using the generic implementation in
    mm/pgtable-generic.c and no other arch needs that [yet]).

    Signed-off-by: Andrea Arcangeli
    Sam Ravnborg
    Cc: Stephen Rothwell
    Cc: "David S. Miller"
    Cc: Benjamin Herrenschmidt
    Cc: "Luck, Tony"
    Cc: James Bottomley
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrea Arcangeli
     
  • After commit 415e12b23792 ("PCI/ACPI: Request _OSC control once for each
    root bridge (v3)") include/linux/pci-acpi.h is included by
    drivers/pci/pcie/aer/aerdrv.c and if CONFIG_ACPI is unset, the bogus and
    unnecessary alternative definition of acpi_find_root_bridge_handle()
    causes a build error to occur.

    Remove the offending piece of garbage.

    Reported-and-tested-by: Stephen Rothwell
    Signed-off-by: Rafael J. Wysocki
    Signed-off-by: Linus Torvalds

    Rafael J. Wysocki
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (23 commits)
    sanitize vfsmount refcounting changes
    fix old umount_tree() breakage
    autofs4: Merge the remaining dentry ops tables
    Unexport do_add_mount() and add in follow_automount(), not ->d_automount()
    Allow d_manage() to be used in RCU-walk mode
    Remove a further kludge from __do_follow_link()
    autofs4: Bump version
    autofs4: Add v4 pseudo direct mount support
    autofs4: Fix wait validation
    autofs4: Clean up autofs4_free_ino()
    autofs4: Clean up dentry operations
    autofs4: Clean up inode operations
    autofs4: Remove unused code
    autofs4: Add d_manage() dentry operation
    autofs4: Add d_automount() dentry operation
    Remove the automount through follow_link() kludge code from pathwalk
    CIFS: Use d_automount() rather than abusing follow_link()
    NFS: Use d_automount() rather than abusing follow_link()
    AFS: Use d_automount() rather than abusing follow_link()
    Add an AT_NO_AUTOMOUNT flag to suppress terminal automount
    ...

    Linus Torvalds
     
  • Instead of splitting refcount between (per-cpu) mnt_count
    and (SMP-only) mnt_longrefs, make all references contribute
    to mnt_count again and keep track of how many are longterm
    ones.

    Accounting rules for longterm count:
    * 1 for each fs_struct.root.mnt
    * 1 for each fs_struct.pwd.mnt
    * 1 for having non-NULL ->mnt_ns
    * decrement to 0 happens only under vfsmount lock exclusive

    That allows nice common case for mntput() - since we can't drop the
    final reference until after mnt_longterm has reached 0 due to the rules
    above, mntput() can grab vfsmount lock shared and check mnt_longterm.
    If it turns out to be non-zero (which is the common case), we know
    that this is not the final mntput() and can just blindly decrement
    percpu mnt_count. Otherwise we grab vfsmount lock exclusive and
    do usual decrement-and-check of percpu mnt_count.

    For fs_struct.c we have mnt_make_longterm() and mnt_make_shortterm();
    namespace.c uses the latter in places where we don't already hold
    vfsmount lock exclusive and opencodes a few remaining spots where
    we need to manipulate mnt_longterm.

    Note that we mostly revert the code outside of fs/namespace.c back
    to what we used to have; in particular, normal code doesn't need
    to care about two kinds of references, etc. And we get to keep
    the optimization Nick's variant had bought us...

    Signed-off-by: Al Viro

    Al Viro
     

16 Jan, 2011

10 commits

  • The physical address is never used by the device tree code when
    allocating memory for unflattening. Change the architecture's alloc
    hook to return the virutal address instead.

    Signed-off-by: Grant Likely

    Grant Likely
     
  • Unexport do_add_mount() and make ->d_automount() return the vfsmount to be
    added rather than calling do_add_mount() itself. follow_automount() will then
    do the addition.

    This slightly complicates things as ->d_automount() normally wants to add the
    new vfsmount to an expiration list and start an expiration timer. The problem
    with that is that the vfsmount will be deleted if it has a refcount of 1 and
    the timer will not repeat if the expiration list is empty.

    To this end, we require the vfsmount to be returned from d_automount() with a
    refcount of (at least) 2. One of these refs will be dropped unconditionally.
    In addition, follow_automount() must get a 3rd ref around the call to
    do_add_mount() lest it eat a ref and return an error, leaving the mount we
    have open to being expired as we would otherwise have only 1 ref on it.

    d_automount() should also add the the vfsmount to the expiration list (by
    calling mnt_set_expiry()) and start the expiration timer before returning, if
    this mechanism is to be used. The vfsmount will be unlinked from the
    expiration list by follow_automount() if do_add_mount() fails.

    This patch also fixes the call to do_add_mount() for AFS to propagate the mount
    flags from the parent vfsmount.

    Signed-off-by: David Howells
    Signed-off-by: Al Viro

    David Howells
     
  • Allow d_manage() to be called from pathwalk when it is in RCU-walk mode as well
    as when it is in Ref-walk mode. This permits __follow_mount_rcu() to call
    d_manage() directly. d_manage() needs a parameter to indicate that it is in
    RCU-walk mode as it isn't allowed to sleep if in that mode (but should return
    -ECHILD instead).

    autofs4_d_manage() can then be set to retain RCU-walk mode if the daemon
    accesses it and otherwise request dropping back to ref-walk mode.

    Signed-off-by: David Howells
    Signed-off-by: Al Viro

    David Howells
     
  • Increase the autofs module sub-version so we can tell what kernel
    implementation is being used from user space debug logging.

    Signed-off-by: Ian Kent
    Signed-off-by: David Howells
    Signed-off-by: Al Viro

    Ian Kent
     
  • Make NFS use the new d_automount() dentry operation rather than abusing
    follow_link() on directories.

    Signed-off-by: David Howells
    Acked-by: Trond Myklebust
    Acked-by: Ian Kent
    Signed-off-by: Al Viro

    David Howells
     
  • Add an AT_NO_AUTOMOUNT flag to suppress terminal automounting of automount
    point directories. This can be used by fstatat() users to permit the
    gathering of attributes on an automount point and also prevent
    mass-automounting of a directory of automount points by ls.

    Signed-off-by: David Howells
    Acked-by: Ian Kent
    Signed-off-by: Al Viro

    David Howells
     
  • Add a dentry op (d_manage) to permit a filesystem to hold a process and make it
    sleep when it tries to transit away from one of that filesystem's directories
    during a pathwalk. The operation is keyed off a new dentry flag
    (DCACHE_MANAGE_TRANSIT).

    The filesystem is allowed to be selective about which processes it holds and
    which it permits to continue on or prohibits from transiting from each flagged
    directory. This will allow autofs to hold up client processes whilst letting
    its userspace daemon through to maintain the directory or the stuff behind it
    or mounted upon it.

    The ->d_manage() dentry operation:

    int (*d_manage)(struct path *path, bool mounting_here);

    takes a pointer to the directory about to be transited away from and a flag
    indicating whether the transit is undertaken by do_add_mount() or
    do_move_mount() skipping through a pile of filesystems mounted on a mountpoint.

    It should return 0 if successful and to let the process continue on its way;
    -EISDIR to prohibit the caller from skipping to overmounted filesystems or
    automounting, and to use this directory; or some other error code to return to
    the user.

    ->d_manage() is called with namespace_sem writelocked if mounting_here is true
    and no other locks held, so it may sleep. However, if mounting_here is true,
    it may not initiate or wait for a mount or unmount upon the parameter
    directory, even if the act is actually performed by userspace.

    Within fs/namei.c, follow_managed() is extended to check with d_manage() first
    on each managed directory, before transiting away from it or attempting to
    automount upon it.

    follow_down() is renamed follow_down_one() and should only be used where the
    filesystem deliberately intends to avoid management steps (e.g. autofs).

    A new follow_down() is added that incorporates the loop done by all other
    callers of follow_down() (do_add/move_mount(), autofs and NFSD; whilst AFS, NFS
    and CIFS do use it, their use is removed by converting them to use
    d_automount()). The new follow_down() calls d_manage() as appropriate. It
    also takes an extra parameter to indicate if it is being called from mount code
    (with namespace_sem writelocked) which it passes to d_manage(). follow_down()
    ignores automount points so that it can be used to mount on them.

    __follow_mount_rcu() is made to abort rcu-walk mode if it hits a directory with
    DCACHE_MANAGE_TRANSIT set on the basis that we're probably going to have to
    sleep. It would be possible to enter d_manage() in rcu-walk mode too, and have
    that determine whether to abort or not itself. That would allow the autofs
    daemon to continue on in rcu-walk mode.

    Note that DCACHE_MANAGE_TRANSIT on a directory should be cleared when it isn't
    required as every tranist from that directory will cause d_manage() to be
    invoked. It can always be set again when necessary.

    ==========================
    WHAT THIS MEANS FOR AUTOFS
    ==========================

    Autofs currently uses the lookup() inode op and the d_revalidate() dentry op to
    trigger the automounting of indirect mounts, and both of these can be called
    with i_mutex held.

    autofs knows that the i_mutex will be held by the caller in lookup(), and so
    can drop it before invoking the daemon - but this isn't so for d_revalidate(),
    since the lock is only held on _some_ of the code paths that call it. This
    means that autofs can't risk dropping i_mutex from its d_revalidate() function
    before it calls the daemon.

    The bug could manifest itself as, for example, a process that's trying to
    validate an automount dentry that gets made to wait because that dentry is
    expired and needs cleaning up:

    mkdir S ffffffff8014e05a 0 32580 24956
    Call Trace:
    [] :autofs4:autofs4_wait+0x674/0x897
    [] avc_has_perm+0x46/0x58
    [] autoremove_wake_function+0x0/0x2e
    [] :autofs4:autofs4_expire_wait+0x41/0x6b
    [] :autofs4:autofs4_revalidate+0x91/0x149
    [] __lookup_hash+0xa0/0x12f
    [] lookup_create+0x46/0x80
    [] sys_mkdirat+0x56/0xe4

    versus the automount daemon which wants to remove that dentry, but can't
    because the normal process is holding the i_mutex lock:

    automount D ffffffff8014e05a 0 32581 1 32561
    Call Trace:
    [] __mutex_lock_slowpath+0x60/0x9b
    [] do_path_lookup+0x2ca/0x2f1
    [] .text.lock.mutex+0xf/0x14
    [] do_rmdir+0x77/0xde
    [] tracesys+0x71/0xe0
    [] tracesys+0xd5/0xe0

    which means that the system is deadlocked.

    This patch allows autofs to hold up normal processes whilst the daemon goes
    ahead and does things to the dentry tree behind the automouter point without
    risking a deadlock as almost no locks are held in d_manage() and none in
    d_automount().

    Signed-off-by: David Howells
    Was-Acked-by: Ian Kent
    Signed-off-by: Al Viro

    David Howells
     
  • Add a dentry op (d_automount) to handle automounting directories rather than
    abusing the follow_link() inode operation. The operation is keyed off a new
    dentry flag (DCACHE_NEED_AUTOMOUNT).

    This also makes it easier to add an AT_ flag to suppress terminal segment
    automount during pathwalk and removes the need for the kludge code in the
    pathwalk algorithm to handle directories with follow_link() semantics.

    The ->d_automount() dentry operation:

    struct vfsmount *(*d_automount)(struct path *mountpoint);

    takes a pointer to the directory to be mounted upon, which is expected to
    provide sufficient data to determine what should be mounted. If successful, it
    should return the vfsmount struct it creates (which it should also have added
    to the namespace using do_add_mount() or similar). If there's a collision with
    another automount attempt, NULL should be returned. If the directory specified
    by the parameter should be used directly rather than being mounted upon,
    -EISDIR should be returned. In any other case, an error code should be
    returned.

    The ->d_automount() operation is called with no locks held and may sleep. At
    this point the pathwalk algorithm will be in ref-walk mode.

    Within fs/namei.c itself, a new pathwalk subroutine (follow_automount()) is
    added to handle mountpoints. It will return -EREMOTE if the automount flag was
    set, but no d_automount() op was supplied, -ELOOP if we've encountered too many
    symlinks or mountpoints, -EISDIR if the walk point should be used without
    mounting and 0 if successful. The path will be updated to point to the mounted
    filesystem if a successful automount took place.

    __follow_mount() is replaced by follow_managed() which is more generic
    (especially with the patch that adds ->d_manage()). This handles transits from
    directories during pathwalk, including automounting and skipping over
    mountpoints (and holding processes with the next patch).

    __follow_mount_rcu() will jump out of RCU-walk mode if it encounters an
    automount point with nothing mounted on it.

    follow_dotdot*() does not handle automounts as you don't want to trigger them
    whilst following "..".

    I've also extracted the mount/don't-mount logic from autofs4 and included it
    here. It makes the mount go ahead anyway if someone calls open() or creat(),
    tries to traverse the directory, tries to chdir/chroot/etc. into the directory,
    or sticks a '/' on the end of the pathname. If they do a stat(), however,
    they'll only trigger the automount if they didn't also say O_NOFOLLOW.

    I've also added an inode flag (S_AUTOMOUNT) so that filesystems can mark their
    inodes as automount points. This flag is automatically propagated to the
    dentry as DCACHE_NEED_AUTOMOUNT by __d_instantiate(). This saves NFS and could
    save AFS a private flag bit apiece, but is not strictly necessary. It would be
    preferable to do the propagation in d_set_d_op(), but that doesn't normally
    have access to the inode.

    [AV: fixed breakage in case if __follow_mount_rcu() fails and nameidata_drop_rcu()
    succeeds in RCU case of do_lookup(); we need to fall through to non-RCU case after
    that, rather than just returning with ungrabbed *path]

    Signed-off-by: David Howells
    Was-Acked-by: Ian Kent
    Signed-off-by: Al Viro

    David Howells
     
  • * 'slab/urgent' of git://git.kernel.org/pub/scm/linux/kernel/git/penberg/slab-2.6:
    Update Pekka's email address in MAINTAINERS
    mm/slab.c: make local symbols static
    slub: Avoid use of slub_lock in show_slab_objects()
    memory hotplug: one more lock on memory hotplug

    Linus Torvalds
     
  • …linus' and 'perf-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip

    * 'core-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    rcu: avoid pointless blocked-task warnings
    rcu: demote SRCU_SYNCHRONIZE_DELAY from kernel-parameter status
    rtmutex: Fix comment about why new_owner can be NULL in wake_futex_pi()

    * 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    x86, olpc: Add missing Kconfig dependencies
    x86, mrst: Set correct APB timer IRQ affinity for secondary cpu
    x86: tsc: Fix calibration refinement conditionals to avoid divide by zero
    x86, ia64, acpi: Clean up x86-ism in drivers/acpi/numa.c

    * 'timers-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    timekeeping: Make local variables static
    time: Rename misnamed minsec argument of clocks_calc_mult_shift()

    * 'perf-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
    tracing: Remove syscall_exit_fields
    tracing: Only process module tracepoints once
    perf record: Add "nodelay" mode, disabled by default
    perf sched: Fix list of events, dropping unsupported ':r' modifier
    Revert "perf tools: Emit clearer message for sys_perf_event_open ENOENT return"
    perf top: Fix annotate segv
    perf evsel: Fix order of event list deletion

    Linus Torvalds
     

15 Jan, 2011

12 commits

  • Pekka Enberg
     
  • drivers/dma/amba-pl08x.c: In function 'pl08x_start_txd':
    drivers/dma/amba-pl08x.c:205: warning: dereferencing 'void *' pointer

    We never dereference llis_va aside from assigning it to a struct
    pl08x_lli pointer or calculating the address of array element 0.

    Signed-off-by: Dan Williams

    Dan Williams
     
  • desc->tx_submit's return type is dma_cookie_t, not int. Therefore,
    dmaengine_submit() should match this return type as it's just
    wrapping this detail.

    Signed-off-by: Russell King
    Signed-off-by: Dan Williams

    Russell King - ARM Linux
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-post-merge-2.6:
    [SCSI] target: Add LIO target core v4.0.0-rc6
    [SCSI] sd,sr: kill compat SDEV_MEDIA_CHANGE event
    [SCSI] sd: implement sd_check_events()

    Linus Torvalds
     
  • This reverts commit dfe63bb0ad9810db13aab0058caba97866e0a681.

    This commit was causing nouveau not to work properly, for -rc1 I'd
    prefer it worked and we can look if this is useful for 2.6.39.

    Cc: James Simmons
    Signed-off-by: Dave Airlie
    Signed-off-by: Linus Torvalds

    Dave Airlie
     
  • The compilation of drivers/acpi/pci_root.c fails if
    CONFIG_PCIEPORTBUS is unset. Fix the problem.

    Signed-off-by: Rafael J. Wysocki
    Signed-off-by: Linus Torvalds

    Markus Trippelsdorf
     
  • * 'for-linus' of git://git.kernel.dk/linux-2.6-block:
    block: restore multiple bd_link_disk_holder() support
    block cfq: compensate preempted queue even if it has no slice assigned
    block cfq: make queue preempt work for queues from different workload

    Linus Torvalds
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (47 commits)
    GRETH: resolve SMP issues and other problems
    GRETH: handle frame error interrupts
    GRETH: avoid writing bad speed/duplex when setting transfer mode
    GRETH: fixed skb buffer memory leak on frame errors
    GRETH: GBit transmit descriptor handling optimization
    GRETH: fix opening/closing
    GRETH: added raw AMBA vendor/device number to match against.
    cassini: Fix build bustage on x86.
    e1000e: consistent use of Rx/Tx vs. RX/TX/rx/tx in comments/logs
    e1000e: update Copyright for 2011
    e1000: Avoid unhandled IRQ
    r8169: keep firmware in memory.
    netdev: tilepro: Use is_unicast_ether_addr helper
    etherdevice.h: Add is_unicast_ether_addr function
    ks8695net: Use default implementation of ethtool_ops::get_link
    ks8695net: Disable non-working ethtool operations
    USB CDC NCM: Don't deref NULL in cdc_ncm_rx_fixup() and don't use uninitialized variable.
    vxge: Remember to release firmware after upgrading firmware
    netdev: bfin_mac: Remove is_multicast_ether_addr use in netdev_for_each_mc_addr
    ipsec: update MAX_AH_AUTH_LEN to support sha512
    ...

    Linus Torvalds
     
  • * 'for-2.6.38' of git://linux-nfs.org/~bfields/linux: (62 commits)
    nfsd4: fix callback restarting
    nfsd: break lease on unlink, link, and rename
    nfsd4: break lease on nfsd setattr
    nfsd: don't support msnfs export option
    nfsd4: initialize cb_per_client
    nfsd4: allow restarting callbacks
    nfsd4: simplify nfsd4_cb_prepare
    nfsd4: give out delegations more quickly in 4.1 case
    nfsd4: add helper function to run callbacks
    nfsd4: make sure sequence flags are set after destroy_session
    nfsd4: re-probe callback on connection loss
    nfsd4: set sequence flag when backchannel is down
    nfsd4: keep finer-grained callback status
    rpc: allow xprt_class->setup to return a preexisting xprt
    rpc: keep backchannel xprt as long as server connection
    rpc: move sk_bc_xprt to svc_xprt
    nfsd4: allow backchannel recovery
    nfsd4: support BIND_CONN_TO_SESSION
    nfsd4: modify session list under cl_lock
    Documentation: fl_mylease no longer exists
    ...

    Fix up conflicts in fs/nfsd/vfs.c with the vfs-scale work. The
    vfs-scale work touched some msnfs cases, and this merge removes support
    for that entirely, so the conflict was trivial to resolve.

    Linus Torvalds
     
  • Signed-off-by: Hanno Boeck
    Signed-off-by: Takashi Iwai

    Hanno Boeck
     
  • Commit e09b457b (block: simplify holder symlink handling) incorrectly
    assumed that there is only one link at maximum. dm may use multiple
    links and expects block layer to track reference count for each link,
    which is different from and unrelated to the exclusive device holder
    identified by @holder when the device is opened.

    Remove the single holder assumption and automatic removal of the link
    and revive the per-link reference count tracking. The code
    essentially behaves the same as before commit e09b457b sans the
    unnecessary kobject reference count dancing.

    While at it, note that this facility should not be used by anyone else
    than the current ones. Sysfs symlinks shouldn't be abused like this
    and the whole thing doesn't belong in the block layer at all.

    Signed-off-by: Tejun Heo
    Reported-by: Milan Broz
    Cc: Jun'ichi Nomura
    Cc: Neil Brown
    Cc: linux-raid@vger.kernel.org
    Cc: Kay Sievers
    Signed-off-by: Jens Axboe

    Tejun Heo
     
  • * 'linux-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jbarnes/pci-2.6:
    PCI/PM: Report wakeup events before resuming devices
    PCI/PM: Use pm_wakeup_event() directly for reporting wakeup events
    PCI: sysfs: Update ROM to include default owner write access
    x86/PCI: make Broadcom CNB20LE driver EMBEDDED and EXPERIMENTAL
    x86/PCI: don't use native Broadcom CNB20LE driver when ACPI is available
    PCI/ACPI: Request _OSC control once for each root bridge (v3)
    PCI: enable pci=bfsort by default on future Dell systems
    PCI/PCIe: Clear Root PME Status bits early during system resume
    PCI: pci-stub: ignore zero-length id parameters
    x86/PCI: irq and pci_ids patch for Intel Patsburg
    PCI: Skip id checking if no id is passed
    PCI: fix __pci_device_probe kernel-doc warning
    PCI: make pci_restore_state return void
    PCI: Disable ASPM if BIOS asks us to
    PCI: Add mask bit definition for MSI-X table
    PCI: MSI: Move MSI-X entry definition to pci_regs.h

    Fix up trivial conflicts in drivers/net/{skge.c,sky2.c} that had in the
    meantime been converted to not use legacy PCI power management, and thus
    no longer use pci_restore_state() at all (and that caused trivial
    conflicts with the "make pci_restore_state return void" patch)

    Linus Torvalds