22 Feb, 2013

36 commits

  • FB_IMX is the framebuffer driver used by MX1, MX21, MX25 and MX27 processors.

    Pass this information to the Kconfig text to make it clear.

    Signed-off-by: Fabio Estevam
    Acked-by: Sascha Hauer
    Cc: Florian Tobias Schandinat
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Fabio Estevam
     
  • Add display and fb support in pxa910 defconfig.
    Add tpohvga panel, spi support.
    Add logo support.

    Signed-off-by: Zhou Zhu
    Acked-by: Haojian Zhuang
    Cc: Lisa Du
    Cc: Guoqing Li
    Cc: Florian Tobias Schandinat
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Zhou Zhu
     
  • Enable display in ttc_dkb.

    Signed-off-by: Zhou Zhu
    Acked-by: Haojian Zhuang
    Cc: Lisa Du
    Cc: Guoqing Li
    Cc: Florian Tobias Schandinat
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Zhou Zhu
     
  • Add device for display controller and fb support

    Signed-off-by: Zhou Zhu
    Acked-by: Haojian Zhuang
    Cc: Lisa Du
    Cc: Guoqing Li
    Cc: Florian Tobias Schandinat
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Zhou Zhu
     
  • Add spi port support in mmp display controller. This port is from display
    controller and for panel usage. This driver implemented and registered as
    a spi master.

    Signed-off-by: Zhou Zhu
    Acked-by: Haojian Zhuang
    Cc: Lisa Du
    Cc: Guoqing Li
    Cc: Florian Tobias Schandinat
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Zhou Zhu
     
  • Add tpo hvga panel support in marvell display framework. This panel
    driver implements modes query and power on/off.

    This panel driver gets panel config/ plat power on/off/ connected path
    name from machine-info and registered as a spi device. This panel
    driver uses mmp_disp supplied register_panel function to register panel
    to path as machine-info defined.

    Signed-off-by: Lisa Du
    Signed-off-by: Zhou Zhu
    Acked-by: Haojian Zhuang
    Cc: Guoqing Li
    Cc: Florian Tobias Schandinat
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Lisa Du
     
  • Marvell mmp series display controller support in mmpdisp subsystem.

    This driver focus on implementation of hardware operations of
    path/overlay, which is defined in mmp display subsystem interface. This
    driver registers all pathes to mmp display framework.

    Signed-off-by: Guoqing Li
    Signed-off-by: Lisa Du
    Signed-off-by: Zhou Zhu
    Acked-by: Haojian Zhuang
    Cc: Florian Tobias Schandinat
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Guoqing Li
     
  • Commit 16559ae48c76 ("kgdb: remove #include from
    kgdb.h") changes the kgdb.h file so that drivers including it do not
    implicitly include linux/platform_device.h. The mmp framebuffer driver
    is new, so Greg did not have a chance to fix it up when introducing his
    change.

    Signed-off-by: Arnd Bergmann
    Cc: Zhou Zhu
    Cc: Lisa Du
    Cc: Guoqing Li
    Acked-by: Haojian Zhuang
    Cc: Florian Tobias Schandinat
    Cc: Greg KH
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Arnd Bergmann
     
  • Add fb support for Marvell mmp display subsystem. This driver is
    configured using "buffer driver mach info". With configured name of path,
    this driver get path using using exported interface of mmp display driver.
    Then this driver get overlay using configured id and operates on this
    overlay to show buffers on display devices.

    Signed-off-by: Zhou Zhu
    Signed-off-by: Lisa Du
    Cc: Guoqing Li
    Acked-by: Haojian Zhuang
    Cc: Florian Tobias Schandinat
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Zhou Zhu
     
  • Add mmp display subsystem to support Marvell MMP display controllers.

    This subsystem contains 4 parts:
    --fb folder
    --core.c
    --hw folder
    --panel folder

    1. fb folder contains implementation of fb. fb get path and overlay
    from common interface and operates on these structures.

    2. core.c provides common interface for a hardware abstraction. Major
    parts of this interface are:

    a) Path: path is a output device connected to a panel or HDMI TV. Main
    operations of the path is set/get timing/output color. fb operates
    output device through path structure.

    b) Ovly: Ovly is a buffer shown on the path.

    Ovly describes frame buffer and its source/destination size, offset,
    input color, buffer address, z-order, and so on. Each fb device maps
    to one overlay.

    3. hw folder contains implementation of hardware operations defined by
    core.c. It registers paths for fb use.

    4. panel folder contains implementation of panels. It's connected to
    path. Panel drivers would also regiester panels and linked to path
    when probe.

    Signed-off-by: Zhou Zhu
    Signed-off-by: Lisa Du
    Cc: Guoqing Li
    Acked-by: Haojian Zhuang
    Cc: Florian Tobias Schandinat
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Zhou Zhu
     
  • Framebuffer support for the Goldfish emulator. This takes the Google
    emulator and applies the x86 cleanups as well as moving the blank
    methods to the usual Linux place and dropping the Android early suspend
    logic (for now at least, that can be looked at as Android and upstream
    converge). Dropped various oddities like setting MTRRs on a virtual
    frame buffer emulation...

    With the drivers so far you can now boot a Linux initrd and have fun.

    [sheng@linux.intel.com: cleaned up to handle x86]
    [thomas.keel@intel.com: ported to 3.4]
    [alan@linux.intel.com: cleaned up for style and 3.7, moved blank methods]
    [akpm@linux-foundation.org: fix (silly) sparse warnings]
    Signed-off-by: Mike A. Chan
    Signed-off-by: Arve Hjønnevåg
    Signed-off-by: Sheng Yang
    Signed-off-by: Yunhong Jiang
    Signed-off-by: Xiaohui Xin
    Signed-off-by: Jun Nakajima
    Signed-off-by: Bruce Beare
    Signed-off-by: Tom Keel
    Signed-off-by: Alan Cox
    Cc: Florian Tobias Schandinat
    Cc: Tomi Valkeinen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Arve Hjønnevåg
     
  • Explicitly clear_margins when clearing the logo, in case the font dimensions
    are non-integral to the framebuffer dimensions.

    Signed-off-by: Kamal Mostafa
    Cc: Florian Tobias Schandinat
    Cc: Tomi Valkeinen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kamal Mostafa
     
  • Move the device rebind procedures for cardbus devices from the pm.resume
    into the pm.complete callback.

    The reason for moving the code is: "[...] The PM code needs to send
    suspend and resume messages to every device in the right order, and it
    can't do that if new devices are being added at the same time. [...]"

    However the situation really isn't quite that rigid. In particular,
    adding new children during a resume callback shouldn't cause much of
    problem because the children don't need to be resumed anyway (since they
    were never suspended). On the other hand, if you do it you will get a
    dev_warn() from the PM core, something like 'parent should not be
    sleeping'.

    Still, it is considered bad form and should be avoided if possible."

    (Alan Stern's full comment about the topic can
    be found here: )

    Signed-off-by: Christian Lamparter
    Cc: Dominik Brodowski
    Cc: Alan Stern
    Cc: Greg KH
    Acked-by: "Rafael J. Wysocki"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christian Lamparter
     
  • On cris-linux-gcc, __SIZE_TYPE__ expands to "unsigned int", as
    gcc-4.6.3-nolibc/cris-linux/lib/gcc/cris-linux/4.6.3/plugin/include/config/cris/linux.h
    has

    #define SIZE_TYPE "unsigned int"

    Hence __kernel_size_t is also "unsigned int". But __kernel_ssize_t is
    "long", which has a different base type, causing compiler warnings like:

    fs/quota/quota_tree.c:372:4: warning: format '%zd' expects argument of type 'signed size_t', but argument 4 has type 'ssize_t' [-Wformat]

    To fix this, __kernel_ssize_t should be changed to "int". Hence cris can
    just use the generic 32-bit versions from include/asm-generic/posix_types.h
    for all size-related types.

    Signed-off-by: Geert Uytterhoeven
    Cc: Mikael Starvik
    Acked-by: Jesper Nilsson
    Cc: Hans-Peter Nilsson
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Geert Uytterhoeven
     
  • Signed-off-by: Wei Yongjun
    Cc: David Howells
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Wei Yongjun
     
  • We found that bdev->bd_invalidated was left set once revalidate_disk()
    is called, which results in page cache flush every time that device is
    open.

    Specifically, we found this problem in MD block device. Once we resize
    a MD device, mdadm --monitor periodically flush all page cache for that
    device every 60 or 1000 seconds when it opens the device.

    This bug lies since at least 3.2.0 till the latest kernel(3.6.2). Patch
    is attached.

    The following steps will reproduce the problem.

    1. prepair a block device (eg /dev/sdb).

    2. create two partitions:

    sudo parted /dev/sdb
    mklabel gpt
    mkpart primary 0% 50%
    mkpart primary 50% 100%

    3. create a md device.

    sudo mdadm -C /dev/md/hoge -l 1 -n 2 -e 1.2 --assume-clean --auto=md --symlink=no /dev/sdb1 /dev/sdb2

    4. create file system and mount it

    sudo mkfs.ext3 /dev/md/hoge
    sudo mkdir /mnt/test
    sudo mount /dev/md/hoge /mnt/test

    5. try to resize the device

    sudo mdadm -G /dev/md/hoge --size=max

    6. create a file to fill file cache.

    sudo dd if=/dev/urandom of=/mnt/test/data bs=1M count=10

    and verify the current status of file by free command.

    7. mdadm monitor will open the md device every 1000 seconds and you
    will find all file cache on the device are cleared.

    The timing can be reduced by the following steps.

    a) kill mdadm and restart it with --delay option

    /sbin/mdadm --monitor --delay=30 --pid-file /var/run/mdadm/monitor.pid --daemonise --scan --syslog

    or open the md device directly.

    sudo dd if=/dev/md/hoge of=/dev/null bs=4096 count=1

    Signed-off-by: MITSUNARI Shigeo
    Cc: Al Viro
    Cc: Jeff Moyer
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    MITSUNARI Shigeo
     
  • Running the command:

    inotifywait -e unmount /mnt/disk

    immediately aborts with a -EINVAL return code. This is however a valid
    parameter. This abort occurs only if unmount is the sole event
    parameter. If other event parameters are supplied, then the unmount
    event wait will work.

    The problem was introduced by commit 44b350fc23e ("inotify: Fix mask
    checks"). In that commit, it states:

    The mask checks in inotify_update_existing_watch() and
    inotify_new_watch() are useless because inotify_arg_to_mask()
    sets FS_IN_IGNORED and FS_EVENT_ON_CHILD bits anyway.

    But instead of removing the useless checks, it did this:

    mask = inotify_arg_to_mask(arg);
    - if (unlikely(!mask))
    + if (unlikely(!(mask & IN_ALL_EVENTS)))
    return -EINVAL;

    The problem is that IN_ALL_EVENTS doesn't include IN_UNMOUNT, and other
    parts of the code keep IN_UNMOUNT separate from IN_ALL_EVENTS. So the
    check should be:

    if (unlikely(!(mask & (IN_ALL_EVENTS | IN_UNMOUNT))))

    But inotify_arg_to_mask(arg) always sets the IN_UNMOUNT bit in the mask
    anyway, so the check is always going to pass and thus should simply be
    removed. Also note that inotify_arg_to_mask completely controls what
    mask bits get set from arg, there's no way for invalid bits to get
    enabled there.

    Lets fix it by simply removing the useless broken checks.

    Signed-off-by: Jim Somerville
    Signed-off-by: Paul Gortmaker
    Cc: Jerome Marchand
    Cc: John McCutchan
    Cc: Robert Love
    Cc: Eric Paris
    Cc: [2.6.37+]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jim Somerville
     
  • The copy_to_user() call returns the number of bytes remaining but we
    want to return -EFAULT on error.

    Fixes "x32: fix waitid()"

    Signed-off-by: Dan Carpenter
    Cc: Al Viro
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dan Carpenter
     
  • Introduce compiletime_assert to compiler.h, which moves the details of
    how to break a build and emit an error message for a specific compiler
    to the headers where these details should be. Following in the
    tradition of the POSIX assert macro, compiletime_assert creates a
    build-time error when the supplied condition is *false*.

    Next, we add BUILD_BUG_ON_MSG to bug.h which simply wraps
    compiletime_assert, inverting the logic, so that it fails when the
    condition is *true*, consistent with the language "build bug on." This
    macro allows you to specify the error message you want emitted when the
    supplied condition is true.

    Finally, we remove all other code from bug.h that mucks with these
    details (BUILD_BUG & BUILD_BUG_ON), and have them all call
    BUILD_BUG_ON_MSG. This not only reduces source code bloat, but also
    prevents the possibility of code being changed for one macro and not for
    the other (which was previously the case for BUILD_BUG and
    BUILD_BUG_ON).

    Since __compiletime_error_fallback is now only used in compiler.h, I'm
    considering it a private macro and removing the double negation that's
    now extraneous.

    [akpm@linux-foundation.org: checkpatch fixes]
    Signed-off-by: Daniel Santos
    Cc: Andi Kleen
    Cc: Borislav Petkov
    Cc: David Rientjes
    Cc: Joe Perches
    Cc: Josh Triplett
    Cc: Paul Gortmaker
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Daniel Santos
     
  • Prior to the introduction of __attribute__((error("msg"))) in gcc 4.3,
    creating compile-time errors required a little trickery.
    BUILD_BUG{,_ON} uses this attribute when available to generate
    compile-time errors, but also uses the negative-sized array trick for
    older compilers, resulting in two error messages in some cases. The
    reason it's "some" cases is that as of gcc 4.4, the negative-sized array
    will not create an error in some situations, like inline functions.

    This patch replaces the negative-sized array code with the new
    __compiletime_error_fallback() macro which expands to the same thing
    unless the the error attribute is available, in which case it expands to
    do{}while(0), resulting in exactly one compile-time error on all
    versions of gcc.

    Note that we are not changing the negative-sized array code for the
    unoptimized version of BUILD_BUG_ON, since it has the potential to catch
    problems that would be disabled in later versions of gcc were
    __compiletime_error_fallback used. The reason is that that an
    unoptimized build can't always remove calls to an error-attributed
    function call (like we are using) that should effectively become dead
    code if it were optimized. However, using a negative-sized array with a
    similar value will not result in an false-positive (error). The only
    caveat being that it will also fail to catch valid conditions, which we
    should be expecting in an unoptimized build anyway.

    Signed-off-by: Daniel Santos
    Cc: Andi Kleen
    Cc: Borislav Petkov
    Cc: David Rientjes
    Cc: Joe Perches
    Cc: Josh Triplett
    Cc: Paul Gortmaker
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Daniel Santos
     
  • Negative sized arrays wont create a compile-time error in some cases
    starting with gcc 4.4 (e.g., inlined functions), but gcc 4.3 introduced
    the error function attribute that will.

    This patch modifies BUILD_BUG_ON to behave like BUILD_BUG already does,
    using the error function attribute so that you don't have to build the
    entire kernel to discover that you have a problem, and then enjoy trying
    to track it down from a link-time error.

    Also, we are only including asm/bug.h and then expecting that
    linux/compiler.h will eventually be included to define __linktime_error
    (used in BUILD_BUG_ON). This patch includes it directly for clarity and
    to avoid the possibility of changes in /*/include/asm/bug.h being
    changed or not including linux/compiler.h for some reason.

    Signed-off-by: Daniel Santos
    Acked-by: Borislav Petkov
    Cc: Andi Kleen
    Cc: David Rientjes
    Cc: Joe Perches
    Cc: Josh Triplett
    Cc: Paul Gortmaker
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Daniel Santos
     
  • When calling BUILD_BUG_ON in an optimized build using gcc 4.3 and later,
    the condition will be evaulated twice, possibily with side-effects. This
    patch eliminates that error.

    [akpm@linux-foundation.org: tweak code layout]
    Signed-off-by: Daniel Santos
    Cc: Andi Kleen
    Cc: Borislav Petkov
    Cc: David Rientjes
    Cc: Joe Perches
    Cc: Josh Triplett
    Cc: Paul Gortmaker
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Daniel Santos
     
  • When __CHECKER__ is defined, we disable all of the BUILD_BUG.* macros.
    However, both BUILD_BUG_ON_NOT_POWER_OF_2 and BUILD_BUG_ON was evaluating
    to nothing in this case, and we want (0) since this is a function-like
    macro that will be followed by a semicolon.

    Signed-off-by: Daniel Santos
    Acked-by: Borislav Petkov
    Cc: Andi Kleen
    Cc: David Rientjes
    Cc: Joe Perches
    Cc: Josh Triplett
    Cc: Paul Gortmaker
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Daniel Santos
     
  • __linktime_error() does the same thing as __compiletime_error() and is
    only used in bug.h. Since the macro defines a function attribute that
    will cause a failure at compile-time (not link-time), it makes more sense
    to keep __compiletime_error(), which is also neatly mated with
    __compiletime_warning().

    Signed-off-by: Daniel Santos
    Acked-by: David Rientjes
    Acked-by: Borislav Petkov
    Cc: Andi Kleen
    Cc: Joe Perches
    Cc: Josh Triplett
    Cc: Paul Gortmaker
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Daniel Santos
     
  • Using GCC_VERSION reduces complexity, is easier to read and is GCC's
    recommended mechanism for doing version checks. (Just don't ask me why
    they didn't define it in the first place.) This also makes it easy to
    merge compiler-gcc{,3,4}.h should somebody want to.

    Signed-off-by: Daniel Santos
    Acked-by: David Rientjes
    Acked-by: Borislav Petkov
    Cc: Andi Kleen
    Cc: Joe Perches
    Cc: Josh Triplett
    Cc: Paul Gortmaker
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Daniel Santos
     
  • Throughout compiler*.h, many version checks are made. These can be
    simplified by using the macro that gcc's documentation recommends.
    However, my primary reason for adding this is that I need bug-check
    macros that are enabled at certain gcc versions and it's cleaner to use
    this macro than the tradition method:

    #if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ => 2)

    If you add patch level, it gets this ugly:

    #if __GNUC__ > 4 || (__GNUC__ == 4 && (__GNUC_MINOR__ > 2 || \
    __GNUC_MINOR__ == 2 __GNUC_PATCHLEVEL__ >= 1))

    As opposed to:

    #if GCC_VERSION >= 40201

    While having separate headers for gcc 3 & 4 eliminates some of this
    verbosity, they can still be cleaned up by this.

    See also:

    http://gcc.gnu.org/onlinedocs/cpp/Common-Predefined-Macros.html

    Signed-off-by: Daniel Santos
    Acked-by: Borislav Petkov
    Acked-by: David Rientjes
    Cc: Andi Kleen
    Cc: Joe Perches
    Cc: Josh Triplett
    Cc: Paul Gortmaker
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Daniel Santos
     
  • This helps to keep the file from getting confusing, removes one
    duplicate version check and should encourage future editors to put new
    macros where they belong.

    Signed-off-by: Daniel Santos
    Acked-by: David Rientjes
    Acked-by: Borislav Petkov
    Cc: Andi Kleen
    Cc: Joe Perches
    Cc: Josh Triplett
    Cc: Paul Gortmaker
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Daniel Santos
     
  • Commit 103a197c0c4e ("security/device_cgroup: lock assert fails in
    dev_exception_clean()") grabs devcgroup_mutex to fix assert failure, but
    a mutex can't be grabbed in rcu callback. Since there shouldn't be any
    other references when css_free is called, mutex isn't needed for list
    cleanup in devcgroup_css_free().

    Signed-off-by: Jerry Snitselaar
    Acked-by: Tejun Heo
    Acked-by: Aristeu Rozanski
    Cc: James Morris
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jerry Snitselaar
     
  • Pull pstore patches from Tony Luck:
    "A few fixes to reduce places where pstore might hang a system in the
    crash path. Plus a new mountpoint (/sys/fs/pstore ... makes more
    sense then /dev/pstore)."

    Fix up trivial conflict in drivers/firmware/efivars.c

    * tag 'please-pull-pstore' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux:
    pstore: Create a convenient mount point for pstore
    efi_pstore: Introducing workqueue updating sysfs
    efivars: Disable external interrupt while holding efivars->lock
    efi_pstore: Avoid deadlock in non-blocking paths
    pstore: Avoid deadlock in panic and emergency-restart path

    Linus Torvalds
     
  • Pull dlm update from David Teigland:
    "This includes a single patch to avoid excessive and unnecessary
    scanning of rsbs to free."

    * tag 'dlm-3.9' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm:
    dlm: avoid scanning unchanged toss lists

    Linus Torvalds
     
  • Pull NFS client bugfixes from Trond Myklebust:

    - Fix an Oops in the pNFS layoutget code

    - Fix a number of NFSv4 and v4.1 state recovery deadlocks and hangs due
    to the interaction of the session drain lock and state management
    locks.

    - Remove task->tk_xprt, which was hiding a lot of RCU dereferencing
    bugs

    - Fix a long standing NFSv3 posix lock recovery bug.

    - Revert commit 324d003b0cd8 ("NFS: add nfs_sb_deactive_async to avoid
    deadlock"). It turned out that the root cause of the deadlock was
    due to interactions with the workqueues that have now been resolved.

    * tag 'nfs-for-3.9-1' of git://git.linux-nfs.org/projects/trondmy/linux-nfs: (22 commits)
    NLM: Ensure that we resend all pending blocking locks after a reclaim
    umount oops when remove blocklayoutdriver first
    sunrpc: silence build warning in gss_fill_context
    nfs: remove kfree() redundant null checks
    NFSv4.1: Don't decode skipped layoutgets
    NFSv4.1: Fix bulk recall and destroy of layouts
    NFSv4.1: Fix an ABBA locking issue with session and state serialisation
    NFSv4: Fix a reboot recovery race when opening a file
    NFSv4: Ensure delegation recall and byte range lock removal don't conflict
    NFSv4: Fix up the return values of nfs4_open_delegation_recall
    NFSv4.1: Don't lose locks when a server reboots during delegation return
    NFSv4.1: Prevent deadlocks between state recovery and file locking
    NFSv4: Allow the state manager to mark an open_owner as being recovered
    SUNRPC: Add missing static declaration to _gss_mech_get_by_name
    Revert "NFS: add nfs_sb_deactive_async to avoid deadlock"
    SUNRPC: Nuke the tk_xprt macro
    SUNRPC: Avoid RCU dereferences in the transport bind and connect code
    SUNRPC: Fix an RCU dereference in xprt_reserve
    SUNRPC: Pass pointers to struct rpc_xprt to the congestion window
    SUNRPC: Fix an RCU dereference in xs_local_rpcbind
    ...

    Linus Torvalds
     
  • Pull GFS2 updates from Steven Whitehouse:
    "This is one of the smallest collections of patches for the merge
    window for some time. There are some clean ups relating to the
    transaction code and the shrinker, which are mostly in preparation for
    further development, but also make the code much easier to follow in
    these areas.

    There is a patch which allows the use of ->writepages even in the
    default ordered write mode for all writebacks. This results in
    sending larger i/os to the block layer, and a subsequent increase in
    performance. It also reduces the number of different i/o paths by
    one.

    There is also a bug fix reinstating the withdraw ack system which
    somehow got lost when the lock modules were merged into GFS2."

    * git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-3.0-nmw:
    GFS2: Reinstate withdraw ack system
    GFS2: Get a block reservation before resizing a file
    GFS2: Split glock lru processing into two parts
    GFS2: Use ->writepages for ordered writes
    GFS2: Clean up freeze code
    GFS2: Merge gfs2_attach_bufdata() into trans.c
    GFS2: Copy gfs2_trans_add_bh into new data/meta functions
    GFS2: Split gfs2_trans_add_bh() into two
    GFS2: Merge revoke adding functions
    GFS2: Separate LRU scanning from shrinker

    Linus Torvalds
     
  • Pull xfs update from Ben Myers:
    "Primarily bugfixes and a few cleanups:

    - fix(es) for compound buffers

    - remove unused XFS_TRANS_DEBUG routines

    - fix for dquot soft timer asserts due to overflow of d_blk_softlimit

    - don't zero allocation args structure members after they are memset(0)

    - fix for regression in dir v2 code introduced in commit 20f7e9f3

    - remove obsolete simple_strto

    - fix return value when filesystem probe finds no XFS magic, a
    regression introduced in 9802182.

    - remove boolean_t typedef completely

    - fix stack switch in __xfs_bmapi_allocate by moving the check for
    stack switch up into xfs_bmapi_write.

    - fix build error due to incomplete boolean_t removal

    - fix oops in _xfs_buf_find by validating that the requested block is
    within the filesystem bounds.

    - limit speculative preallocation near ENOSPC.

    - fix an unmount hang in xfs_wait_buftarg by freeing the
    xfs_buf_log_item in xfs_buf_item_unlock.

    - fix a possible use after free with AIO.

    - fix xfs_swap_extents after removal of xfs_flushinval_pages, a
    regression introduced in fb59581404a.

    - replace hardcoded 128 with log header size

    - add memory barrier before wake_up_bit in xfs_ifunlock

    - limit speculative preallocation on sparse files

    - fix xa_lock recursion bug introduced in 90810b9e82a3

    - fix write verifier for symlinks"

    Fixed up conflicts in fs/xfs/xfs_buf_item.c (due to bli_format rename in
    commit 0f22f9d0cd8a affecting the removed XFS_TRANS_DEBUG routines in
    commit ec47eb6b0b45).

    * tag 'for-linus-v3.9-rc1' of git://oss.sgi.com/xfs/xfs: (36 commits)
    xfs: xfs_bmap_add_attrfork_local is too generic
    xfs: remove log force from xfs_buf_trylock()
    xfs: recheck buffer pinned status after push trylock failure
    xfs: limit speculative prealloc size on sparse files
    xfs: memory barrier before wake_up_bit()
    xfs: refactor space log reservation for XFS_TRANS_ATTR_SET
    xfs: make use of XFS_SB_LOG_RES() at xfs_fs_log_dummy()
    xfs: make use of XFS_SB_LOG_RES() at xfs_mount_log_sb()
    xfs: make use of XFS_SB_LOG_RES() at xfs_log_sbcount()
    xfs: introduce XFS_SB_LOG_RES() for transactions that modify sb on disk
    xfs: calculate XFS_TRANS_QM_QUOTAOFF_END space log reservation at mount time
    xfs: calculate XFS_TRANS_QM_QUOTAOFF space log reservation at mount time
    xfs: calculate XFS_TRANS_QM_DQALLOC space log reservation at mount time
    xfs: calcuate XFS_TRANS_QM_SETQLIM space log reservation at mount time
    xfs: calculate xfs_qm_write_sb_changes() space log reservation at mount time
    xfs: calculate XFS_TRANS_QM_SBCHANGE space log reservation at mount time
    xfs: make use of xfs_calc_buf_res() in xfs_trans.c
    xfs: add a helper to figure out the space log reservation per item
    xfs: Fix xfs_swap_extents() after removal of xfs_flushinval_pages()
    xfs: Fix possible use-after-free with AIO
    ...

    Linus Torvalds
     
  • Pull fuse updates from Miklos Szeredi:
    "The biggest part of this pull request is a patch series from Maxim
    Patlasov to optimize scatter-gather direct IO. There's also the
    addition of a "readdirplus" API, poll events and various fixes and
    cleanups.

    There's a one line change outside of fuse to mm/filemap.c which makes
    the argument of iov_iter_single_seg_count() const, required by Maxim's
    patches."

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mszeredi/fuse: (22 commits)
    fuse: allow control of adaptive readdirplus use
    Synchronize fuse header with one used in library
    fuse: send poll events
    fuse: don't WARN when nlink is zero
    fuse: avoid out-of-scope stack access
    fuse: bump version for READDIRPLUS
    FUSE: Adapt readdirplus to application usage patterns
    Do not use RCU for current process credentials
    fuse: cleanup fuse_direct_io()
    fuse: optimize __fuse_direct_io()
    fuse: optimize fuse_get_user_pages()
    fuse: pass iov[] to fuse_get_user_pages()
    mm: minor cleanup of iov_iter_single_seg_count()
    fuse: use req->page_descs[] for argpages cases
    fuse: add per-page descriptor to fuse_req
    fuse: rework fuse_do_ioctl()
    fuse: rework fuse_perform_write()
    fuse: rework fuse_readpages()
    fuse: rework fuse_retrieve()
    fuse: categorize fuse_get_req()
    ...

    Linus Torvalds
     
  • Pull v9fs updates from Eric Van Hensbergen:
    "Just fixes and simplifications"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs:
    fs/9p: Fix atomic_open
    fs/9p: Don't use O_TRUNC flag in TOPEN and TLOPEN request
    locking in fs/9p ->readdir()

    Linus Torvalds
     
  • Pull security subsystem updates from James Morris:
    "This is basically a maintenance update for the TPM driver and EVM/IMA"

    Fix up conflicts in lib/digsig.c and security/integrity/ima/ima_main.c

    * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security: (45 commits)
    tpm/ibmvtpm: build only when IBM pseries is configured
    ima: digital signature verification using asymmetric keys
    ima: rename hash calculation functions
    ima: use new crypto_shash API instead of old crypto_hash
    ima: add policy support for file system uuid
    evm: add file system uuid to EVM hmac
    tpm_tis: check pnp_acpi_device return code
    char/tpm/tpm_i2c_stm_st33: drop temporary variable for return value
    char/tpm/tpm_i2c_stm_st33: remove dead assignment in tpm_st33_i2c_probe
    char/tpm/tpm_i2c_stm_st33: Remove __devexit attribute
    char/tpm/tpm_i2c_stm_st33: Don't use memcpy for one byte assignment
    tpm_i2c_stm_st33: removed unused variables/code
    TPM: Wait for TPM_ACCESS tpmRegValidSts to go high at startup
    tpm: Fix cancellation of TPM commands (interrupt mode)
    tpm: Fix cancellation of TPM commands (polling mode)
    tpm: Store TPM vendor ID
    TPM: Work around buggy TPMs that block during continue self test
    tpm_i2c_stm_st33: fix oops when i2c client is unavailable
    char/tpm: Use struct dev_pm_ops for power management
    TPM: STMicroelectronics ST33 I2C BUILD STUFF
    ...

    Linus Torvalds
     

21 Feb, 2013

4 commits

  • A patch to fix some unreachable code in search_my_process_keyrings() got
    applied twice by two different routes upstream as commits e67eab39bee2
    and b010520ab3d2 (both "fix unreachable code").

    Unfortunately, the second application removed something it shouldn't
    have and this wasn't detected by GIT. This is due to the patch not
    having sufficient lines of context to distinguish the two places of
    application.

    The effect of this is relatively minor: inside the kernel, the keyring
    search routines may search multiple keyrings and then prioritise the
    errors if no keys or negative keys are found in any of them. With the
    extra deletion, the presence of a negative key in the thread keyring
    (causing ENOKEY) is incorrectly overridden by an error searching the
    process keyring.

    So revert the second application of the patch.

    Signed-off-by: David Howells
    Cc: Jiri Kosina
    Cc: Andrew Morton
    Cc: stable@vger.kernel.org
    Signed-off-by: Linus Torvalds

    David Howells
     
  • Pull networking update from David Miller:

    1) Checkpoint/restarted TCP sockets now can properly propagate the TCP
    timestamp offset. From Andrey Vagin.

    2) VMWARE VM VSOCK layer, from Andy King.

    3) Much improved support for virtual functions and SR-IOV in bnx2x,
    from Ariel ELior.

    4) All protocols on ipv4 and ipv6 are now network namespace aware, and
    all the compatability checks for initial-namespace-only protocols is
    removed. Thanks to Tom Parkin for helping deal with the last major
    holdout, L2TP.

    5) IPV6 support in netpoll and network namespace support in pktgen,
    from Cong Wang.

    6) Multiple Registration Protocol (MRP) and Multiple VLAN Registration
    Protocol (MVRP) support, from David Ward.

    7) Compute packet lengths more accurately in the packet scheduler, from
    Eric Dumazet.

    8) Use per-task page fragment allocator in skb_append_datato_frags(),
    also from Eric Dumazet.

    9) Add support for connection tracking labels in netfilter, from
    Florian Westphal.

    10) Fix default multicast group joining on ipv6, and add anti-spoofing
    checks to 6to4 and 6rd. From Hannes Frederic Sowa.

    11) Make ipv4/ipv6 fragmentation memory limits more reasonable in modern
    times, rearrange inet frag datastructures for better cacheline
    locality, and move more operations outside of locking. From Jesper
    Dangaard Brouer.

    12) Instead of strict master slave relationships, allow arbitrary
    scenerios with "upper device lists". From Jiri Pirko.

    13) Improve rate limiting accuracy in TBF and act_police, also from Jiri
    Pirko.

    14) Add a BPF filter netfilter match target, from Willem de Bruijn.

    15) Orphan and delete a bunch of pre-historic networking drivers from
    Paul Gortmaker.

    16) Add TSO support for GRE tunnels, from Pravin B SHelar. Although
    this still needs some minor bug fixing before it's %100 correct in
    all cases.

    17) Handle unresolved IPSEC states like ARP, with a resolution packet
    queue. From Steffen Klassert.

    18) Remove TCP Appropriate Byte Count support (ABC), from Stephen
    Hemminger. This was long overdue.

    19) Support SO_REUSEPORT, from Tom Herbert.

    20) Allow locking a socket BPF filter, so that it cannot change after a
    process drops capabilities.

    21) Add VLAN filtering to bridge, from Vlad Yasevich.

    22) Bring ipv6 on-par with ipv4 and do not cache neighbour entries in
    the ipv6 routes, from YOSHIFUJI Hideaki.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1538 commits)
    ipv6: fix race condition regarding dst->expires and dst->from.
    net: fix a wrong assignment in skb_split()
    ip_gre: remove an extra dst_release()
    ppp: set qdisc_tx_busylock to avoid LOCKDEP splat
    atl1c: restore buffer state
    net: fix a build failure when !CONFIG_PROC_FS
    net: ipv4: fix waring -Wunused-variable
    net: proc: fix build failed when procfs is not configured
    Revert "xen: netback: remove redundant xenvif_put"
    net: move procfs code to net/core/net-procfs.c
    qmi_wwan, cdc-ether: add ADU960S
    bonding: set sysfs device_type to 'bond'
    bonding: fix bond_release_all inconsistencies
    b44: use netdev_alloc_skb_ip_align()
    xen: netback: remove redundant xenvif_put
    net: fec: Do a sanity check on the gpio number
    ip_gre: propogate target device GSO capability to the tunnel device
    ip_gre: allow CSUM capable devices to handle packets
    bonding: Fix initialize after use for 3ad machine state spinlock
    bonding: Fix race condition between bond_enslave() and bond_3ad_update_lacp_rate()
    ...

    Linus Torvalds
     
  • Pull sparc updates from David Miller:
    "Mostly more sparc64 THP bug fixes, and a refactoring of SMP bootup on
    sparc32 from Sam Ravnborg."

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc:
    sparc32: refactor smp boot
    sparc64: Fix huge PMD to PTE translation for sun4u in TLB miss handler.
    sparc64: Fix tsb_grow() in atomic context.
    sparc64: Handle hugepage TSB being NULL.
    sparc64: Fix gfp_flags setting in tsb_grow().

    Linus Torvalds
     
  • Pull arm64 patches from Catalin Marinas:

    - SMP support for the PSCI booting protocol (power state coordination
    interface).

    - Simple earlyprintk support.

    - Platform devices populated by default from the DT (SoC-agnostic).

    - CONTEXTIDR support (used by external trace tools).

    * tag 'arm64-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/cmarinas/linux-aarch64:
    arm64: mm: update CONTEXTIDR register to contain PID of current process
    arm64: atomics: fix grossly inconsistent asm constraints for exclusives
    arm64: compat: use compat_uptr_t type for compat_ucontext.uc_link
    arm64: Select ARCH_WANT_FRAME_POINTERS
    arm64: Add kvm_para.h and xor.h generic headers
    arm64: SMP: enable PSCI boot method
    arm64: psci: add support for PSCI invocations from the kernel
    arm64: SMP: rework the SMP code to be enabling method agnostic
    arm64: perf: add guest vs host discrimination
    arm64: add COMPAT_PSR_*_BIT flags
    arm64: Add simple earlyprintk support
    arm64: Populate the platform devices

    Linus Torvalds