15 Jan, 2016

28 commits

  • This reverts commit 8f4fc071b192 ("gfp: add __GFP_NOACCOUNT").

    Black-list kmem accounting policy (aka __GFP_NOACCOUNT) turned out to be
    fragile and difficult to maintain, because there seem to be many more
    allocations that should not be accounted than those that should be.
    Besides, false accounting an allocation might result in much worse
    consequences than not accounting at all, namely increased memory
    consumption due to pinned dead kmem caches.

    So it was decided to switch to the white-list policy. This patch
    reverts bits introducing the black-list policy. The white-list policy
    will be introduced later in the series.

    Signed-off-by: Vladimir Davydov
    Acked-by: Johannes Weiner
    Cc: Michal Hocko
    Cc: Tejun Heo
    Cc: Greg Thelen
    Cc: Christoph Lameter
    Cc: Pekka Enberg
    Cc: David Rientjes
    Cc: Joonsoo Kim
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Vladimir Davydov
     
  • Currently, all kmem allocations (namely every kmem_cache_alloc, kmalloc,
    alloc_kmem_pages call) are accounted to memory cgroup automatically.
    Callers have to explicitly opt out if they don't want/need accounting
    for some reason. Such a design decision leads to several problems:

    - kmalloc users are highly sensitive to failures, many of them
    implicitly rely on the fact that kmalloc never fails, while memcg
    makes failures quite plausible.

    - A lot of objects are shared among different containers by design.
    Accounting such objects to one of containers is just unfair.
    Moreover, it might lead to pinning a dead memcg along with its kmem
    caches, which aren't tiny, which might result in noticeable increase
    in memory consumption for no apparent reason in the long run.

    - There are tons of short-lived objects. Accounting them to memcg will
    only result in slight noise and won't change the overall picture, but
    we still have to pay accounting overhead.

    For more info, see

    - http://lkml.kernel.org/r/20151105144002.GB15111%40dhcp22.suse.cz
    - http://lkml.kernel.org/r/20151106090555.GK29259@esperanza

    Therefore this patchset switches to the white list policy. Now kmalloc
    users have to explicitly opt in by passing __GFP_ACCOUNT flag.

    Currently, the list of accounted objects is quite limited and only
    includes those allocations that (1) are known to be easily triggered
    from userspace and (2) can fail gracefully (for the full list see patch
    no. 6) and it still misses many object types. However, accounting only
    those objects should be a satisfactory approximation of the behavior we
    used to have for most sane workloads.

    This patch (of 6):

    Revert 499611ed451508a42d1d7d ("kernfs: do not account ino_ida allocations
    to memcg").

    Black-list kmem accounting policy (aka __GFP_NOACCOUNT) turned out to be
    fragile and difficult to maintain, because there seem to be many more
    allocations that should not be accounted than those that should be.
    Besides, false accounting an allocation might result in much worse
    consequences than not accounting at all, namely increased memory
    consumption due to pinned dead kmem caches.

    So it was decided to switch to the white-list policy. This patch reverts
    bits introducing the black-list policy. The white-list policy will be
    introduced later in the series.

    Signed-off-by: Vladimir Davydov
    Acked-by: Johannes Weiner
    Cc: Michal Hocko
    Cc: Tejun Heo
    Cc: Greg Thelen
    Cc: Christoph Lameter
    Cc: Pekka Enberg
    Cc: David Rientjes
    Cc: Joonsoo Kim
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Vladimir Davydov
     
  • Add a new helper function get_first_slab() that get the first slab from
    a kmem_cache_node.

    Signed-off-by: Geliang Tang
    Acked-by: Christoph Lameter
    Acked-by: David Rientjes
    Cc: Pekka Enberg
    Cc: Joonsoo Kim
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Geliang Tang
     
  • Simplify the code with list_for_each_entry().

    Signed-off-by: Geliang Tang
    Acked-by: Christoph Lameter
    Cc: Pekka Enberg
    Cc: David Rientjes
    Cc: Joonsoo Kim
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Geliang Tang
     
  • Simplify the code with list_first_entry_or_null().

    Signed-off-by: Geliang Tang
    Acked-by: Christoph Lameter
    Cc: Pekka Enberg
    Cc: David Rientjes
    Cc: Joonsoo Kim
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Geliang Tang
     
  • A little cleanup - the invocation site provdes the semicolon.

    Cc: Rasmus Villemoes
    Cc: Al Viro
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • lksb flags are defined both in dlmapi.h and dlmcommon.h. So clean them
    up from dlmcommon.h.

    Signed-off-by: Joseph Qi
    Reviewed-by: Jiufei Xue
    Cc: Mark Fasheh
    Cc: Joel Becker
    Cc: Junxiao Bi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joseph Qi
     
  • Found this when do patch review, remove to make it clear and save a
    little cpu time.

    Signed-off-by: Junxiao Bi
    Cc: Mark Fasheh
    Cc: Joel Becker
    Cc: Joseph Qi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Junxiao Bi
     
  • In ocfs2_orphan_del, currently it finds and deletes entry first, and
    then access orphan dir dinode. This will have a problem once
    ocfs2_journal_access_di fails. In this case, entry will be removed from
    orphan dir, but in deed the inode hasn't been deleted successfully. In
    other words, the file is missing but not actually deleted. So we should
    access orphan dinode first like unlink and rename.

    Signed-off-by: Joseph Qi
    Reviewed-by: Jiufei Xue
    Cc: Mark Fasheh
    Cc: Joel Becker
    Reviewed-by: Junxiao Bi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joseph Qi
     
  • When two processes are migrating the same lockres,
    dlm_add_migration_mle() return -EEXIST, but insert a new mle in hash
    list. dlm_migrate_lockres() will detach the old mle and free the new
    one which is already in hash list, that will destroy the list.

    Signed-off-by: Jiufei Xue
    Reviewed-by: Joseph Qi
    Cc: Mark Fasheh
    Cc: Joel Becker
    Reviewed-by: Junxiao Bi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    xuejiufei
     
  • We have found that migration source will trigger a BUG that the refcount
    of mle is already zero before put when the target is down during
    migration. The situation is as follows:

    dlm_migrate_lockres
    dlm_add_migration_mle
    dlm_mark_lockres_migrating
    dlm_get_mle_inuse
    <<<<<< Now the refcount of the mle is 2.
    dlm_send_one_lockres and wait for the target to become the
    new master.
    <<<<<< o2hb detect the target down and clean the migration
    mle. Now the refcount is 1.

    dlm_migrate_lockres woken, and put the mle twice when found the target
    goes down which trigger the BUG with the following message:

    "ERROR: bad mle: ".

    Signed-off-by: Jiufei Xue
    Reviewed-by: Joseph Qi
    Cc: Mark Fasheh
    Cc: Joel Becker
    Cc: Junxiao Bi
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    xuejiufei
     
  • DLM does not cache locks. So, blocking lock and unlock will only make
    the performance worse where contention over the locks is high.

    Signed-off-by: Goldwyn Rodrigues
    Cc: Mark Fasheh
    Cc: Joel Becker
    Reviewed-by: Junxiao Bi
    Cc: Joseph Qi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Goldwyn Rodrigues
     
  • The following case will lead to slot overwritten.

    N1 N2
    mount ocfs2 volume, find and
    allocate slot 0, then set
    osb->slot_num to 0, begin to
    write slot info to disk
    mount ocfs2 volume, wait for super lock
    write block fail because of
    storage link down, unlock
    super lock
    got super lock and also allocate slot 0
    then unlock super lock

    mount fail and then dismount,
    since osb->slot_num is 0, try to
    put invalid slot to disk. And it
    will succeed if storage link
    restores.
    N2 slot info is now overwritten

    Once another node say N3 mount, it will find and allocate slot 0 again,
    which will lead to mount hung because journal has already been locked by
    N2. so when write slot info failed, invalidate slot in advance to avoid
    overwrite slot.

    [akpm@linux-foundation.org: coding-style fixes]
    Signed-off-by: Yiwen Jiang
    Reviewed-by: Joseph Qi
    Cc: Mark Fasheh
    Cc: Joel Becker
    Cc: Junxiao Bi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    jiangyiwen
     
  • dlm_grab() may return NULL when the node is doing unmount. When doing
    code review, we found that some dlm handlers may return error to caller
    when dlm_grab() returns NULL and make caller BUG or other problems.
    Here is an example:

    Node 1 Node 2
    receives migration message
    from node 3, and send
    migrate request to others
    start unmounting

    receives migrate request
    from node 1 and call
    dlm_migrate_request_handler()

    unmount thread unregisters
    domain handlers and removes
    dlm_context from dlm_domains

    dlm_migrate_request_handlers()
    returns -EINVAL to node 1
    Exit migration neither clearing the
    migration state nor sending
    assert master message to node 3 which
    cause node 3 hung.

    Signed-off-by: Jiufei Xue
    Reviewed-by: Joseph Qi
    Reviewed-by: Yiwen Jiang
    Cc: Mark Fasheh
    Cc: Joel Becker
    Cc: Junxiao Bi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Xue jiufei
     
  • Since iput will take care the NULL check itself, NULL check before
    calling it is redundant. So clean them up.

    Signed-off-by: Joseph Qi
    Cc: Mark Fasheh
    Cc: Joel Becker
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joseph Qi
     
  • Commit f3f854648de6 ("ocfs2_dlm: Ensure correct ordering of set/clear
    refmap bit on lockres") still exists a race which can't ensure the
    ordering is exactly correct.

    Node1 Node2 Node3
    umount, migrate
    lockres to Node2
    migrate finished,
    send migrate request
    to Node3
    received migrate request,
    create a migration_mle,
    respond to Node2.
    set DLM_LOCK_RES_SETREF_INPROG
    and send assert master to
    Node3
    delete migration_mle in
    assert_master_handler,
    Node3 umount without response
    dlm_thread purge
    this lockres, send drop
    deref message to Node2
    found the flag of
    DLM_LOCK_RES_SETREF_INPROG
    is set, dispatch
    dlm_deref_lockres_worker to
    clear refmap, but in function of
    dlm_deref_lockres_worker,
    only if node in refmap it wait
    DLM_LOCK_RES_SETREF_INPROG
    to be cleared. So worker is
    done successfully

    purge lockres, send
    assert master response
    to Node1, and finish umount
    set Node3 in refmap, and it
    won't be cleared forever, thus
    lead to umount hung

    so wait until DLM_LOCK_RES_SETREF_INPROG is cleared in
    dlm_deref_lockres_worker.

    Signed-off-by: Yiwen Jiang
    Reviewed-by: Joseph Qi
    Reviewed-by: Junxiao Bi
    Cc: Mark Fasheh
    Cc: Joel Becker
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    jiangyiwen
     
  • The ocfs2_extent_tree_operations structures are never modified, so
    declare them as const.

    Done with the help of Coccinelle.

    Signed-off-by: Julia Lawall
    Cc: Mark Fasheh
    Cc: Joel Becker
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Julia Lawall
     
  • We found a race between purge and migration when doing code review.
    Node A put lockres to purgelist before receiving the migrate message
    from node B which is the master. Node A call dlm_mig_lockres_handler to
    handle this message.

    dlm_mig_lockres_handler
    dlm_lookup_lockres
    >>>>>> race window, dlm_run_purge_list may run and send
    deref message to master, waiting the response
    spin_lock(&res->spinlock);
    res->state |= DLM_LOCK_RES_MIGRATING;
    spin_unlock(&res->spinlock);
    dlm_mig_lockres_handler returns

    >>>>>> dlm_thread receives the response from master for the deref
    message and triggers the BUG because the lockres has the state
    DLM_LOCK_RES_MIGRATING with the following message:

    dlm_purge_lockres:209 ERROR: 6633EB681FA7474A9C280A4E1A836F0F: res
    M0000000000000000030c0300000000 in use after deref

    Signed-off-by: Jiufei Xue
    Reviewed-by: Joseph Qi
    Reviewed-by: Yiwen Jiang
    Cc: Mark Fasheh
    Cc: Joel Becker
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Xue jiufei
     
  • When run multiple xattr test of ocfs2-test on a three-nodes cluster,
    mount failed sometimes with the following message.

    o2hb: Unable to stabilize heartbeart on region D18B775E758D4D80837E8CF3D086AD4A (xvdb)

    Stabilize heartbeat depends on the timing order to mount ocfs2 from
    cluster nodes and how fast the tcp connections are established. So
    increase unsteady interations to leave more time for it.

    Signed-off-by: Junxiao Bi
    Cc: Mark Fasheh
    Cc: Joel Becker
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Junxiao Bi
     
  • Some versions of tar assume that files with st_blocks == 0 do not
    contain any data and will skip reading them entirely. See also commit
    9206c561554c ("ext4: return non-zero st_blocks for inline data").

    Signed-off-by: John Haxby
    Reviewed-by: Mark Fasheh
    Cc: Joel Becker
    Acked-by: Gang He
    Reviewed-by: Junxiao Bi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    John Haxby
     
  • In ocfs2_parse_options,

    a) it's better to declare variables(small size) outside of while loop;

    b) 'option' will be set by match_int, 'option = 0;' makes no sense, if
    match_int failed, it just goto bail and return.

    Signed-off-by: Norton.Zhu
    Reviewed-by: Joseph Qi
    Cc: Gang He
    Cc: Mark Fasheh
    Acked-by: Joel Becker
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Norton.Zhu
     
  • Fix build errors that happen when CONFIG_LOGFS=y and CONFIG_MTD=m:

    fs/built-in.o: In function `logfs_mount':
    super.c:(.text+0x92a6f): undefined reference to `logfs_get_sb_mtd'
    fs/built-in.o: In function `logfs_get_sb_bdev':
    (.text+0x93530): undefined reference to `logfs_get_sb_mtd'

    This patch avoids the error by changing the dependencies of logfs in a
    way that we can no longer configure logfs as built-in when the MTD core
    is a loadable module, while leaving the dependency to require at least
    one of MTD or BLOCK to be enabled.

    Signed-off-by: Arnd Bergmann
    Signed-off-by: Randy Dunlap
    Cc: Michal Marek
    Cc: Peter Chen
    Cc: Randy Dunlap
    Cc: Joern Engel
    Cc: Prasad Joshi
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Arnd Bergmann
     
  • Commit ac551828993e ("modpost: i2c aliases need no trailing wildcard")
    removed the wildcard at the end of the I2C module aliases because I2C
    devices have no IDs so the aliases are just arbitrary device names.

    This is also true for OF modaliases since a compatible string is used to
    define a specific IP hardware block. So the modalias should match a
    specific compatible string and not attempt to match a compatible string
    whose name matches the beginning of another one.

    For example, the following driver module:

    $ modinfo cros_ec_keyb | grep alias
    alias: platform:cros-ec-keyb
    alias: of:N*T*Cgoogle,cros-ec-keyb*

    will be tried to be loaded for an alias of:N*T*Cgoogle,cros-ec-keyb-v2
    but there could be a different driver that supports the device for that
    compatible string so it's better to remove the trailing wildcard for OF.

    Also, remove the word "always" from the add_wildcard() function comment
    since that was carried from the time where a wildcard was always added
    at the end of the module alias for all the devices.

    Signed-off-by: Javier Martinez Canillas
    Suggested-by: Brian Norris
    Reviewed-by: Sjoerd Simons
    Cc: Rusty Russell
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Javier Martinez Canillas
     
  • At the time that this code was originally written, call_srcu didn't
    exist, so this thread was required to ensure that we waited for that
    SRCU grace period to settle before finally freeing the object.

    It does exist now however and we can much more efficiently use call_srcu
    to handle this. That also allows us to potentially use srcu_barrier to
    ensure that they are all of the callbacks have run before proceeding.
    In order to conserve space, we union the rcu_head with the g_list.

    This will be necessary for nfsd which will allocate marks from a
    dedicated slabcache. We have to be able to ensure that all of the
    objects are destroyed before destroying the cache. That's fairly

    Signed-off-by: Jeff Layton
    Cc: Eric Paris
    Reviewed-by: Jan Kara
    Cc: "Paul E. McKenney"
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Jeff Layton
     
  • To make the intention clearer, use list_next_entry instead of
    list_entry.

    Signed-off-by: Geliang Tang
    Reviewed-by: Jan Kara
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Geliang Tang
     
  • In Python3+ print is a function so the old syntax is not correct
    anymore:

    $ ./scripts/bloat-o-meter vmlinux.o vmlinux.o.old
    File "./scripts/bloat-o-meter", line 61
    print "add/remove: %s/%s grow/shrink: %s/%s up/down: %s/%s (%s)" % \
    ^
    SyntaxError: invalid syntax

    Fix by calling print as a function.

    Tested on python 2.7.11, 3.5.1

    Signed-off-by: Sergey Senozhatsky
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Sergey Senozhatsky
     
  • In include/asm-generic/sections.h:

    /*
    * Usage guidelines:
    * _text, _data: architecture specific, don't use them in
    * arch-independent code
    * [_stext, _etext]: contains .text.* sections, may also contain
    * .rodata.*
    * and/or .init.* sections

    _text is not guaranteed across architectures. Architectures such as ARM
    may reuse parts which are not actually text and erroneously trigger a bug.
    Switch to using _stext which is guaranteed to contain text sections.

    Came out of https://lkml.kernel.org/g/

    Signed-off-by: Laura Abbott
    Reviewed-by: Kees Cook
    Cc: Russell King
    Cc: Arnd Bergmann
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Laura Abbott
     
  • The build of m32104ut_defconfig for m32r arch was failing for long long
    time with the error:

    ERROR: "memory_start" [fs/udf/udf.ko] undefined!
    ERROR: "memory_end" [fs/udf/udf.ko] undefined!
    ERROR: "memory_end" [drivers/scsi/sg.ko] undefined!
    ERROR: "memory_start" [drivers/scsi/sg.ko] undefined!
    ERROR: "memory_end" [drivers/i2c/i2c-dev.ko] undefined!
    ERROR: "memory_start" [drivers/i2c/i2c-dev.ko] undefined!

    As done in other architectures export the symbols to fix the error.

    Reported-by: Fengguang Wu
    Signed-off-by: Sudip Mukherjee
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Sudip Mukherjee
     

14 Jan, 2016

12 commits

  • Pull xfs updates from Dave Chinner:
    "There's not a lot in this - the main addition is the CRC validation of
    the entire region of the log that the will be recovered, along with
    several log recovery fixes. Most of the rest is small bug fixes and
    cleanups.

    I have three bug fixes still pending, all that address recently fixed
    regressions that I will send to next week after they've had some time
    in for-next.

    Summary:
    - extensive CRC validation during log recovery
    - several log recovery bug fixes
    - Various DAX support fixes
    - AGFL size calculation fix
    - various cleanups in preparation for new functionality
    - project quota ENOSPC notification via netlink
    - tracing and debug improvements"

    * tag 'xfs-for-linus-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/dgc/linux-xfs: (26 commits)
    xfs: handle dquot buffer readahead in log recovery correctly
    xfs: inode recovery readahead can race with inode buffer creation
    xfs: eliminate committed arg from xfs_bmap_finish
    xfs: bmapbt checking on debug kernels too expensive
    xfs: add tracepoints to readpage calls
    xfs: debug mode log record crc error injection
    xfs: detect and trim torn writes during log recovery
    xfs: fix recursive splice read locking with DAX
    xfs: Don't use reserved blocks for data blocks with DAX
    XFS: Use a signed return type for suffix_kstrtoint()
    libxfs: refactor short btree block verification
    libxfs: pack the agfl header structure so XFS_AGFL_SIZE is correct
    libxfs: use a convenience variable instead of open-coding the fork
    xfs: fix log ticket type printing
    libxfs: make xfs_alloc_fix_freelist non-static
    xfs: make xfs_buf_ioend_async() static
    xfs: send warning of project quota to userspace via netlink
    xfs: get mp from bma->ip in xfs_bmap code
    xfs: print name of verifier if it fails
    libxfs: Optimize the loop for xfs_bitmap_empty
    ...

    Linus Torvalds
     
  • Pull f2fs updates from Jaegeuk Kim:
    "This series adds two ioctls to control cached data and fragmented
    files. Most of the rest fixes missing error cases and bugs that we
    have not covered so far. Summary:

    Enhancements:
    - support an ioctl to execute online file defragmentation
    - support an ioctl to flush cached data
    - speed up shrinking of extent_cache entries
    - handle broken superblock
    - refector dirty inode management infra
    - revisit f2fs_map_blocks to handle more cases
    - reduce global lock coverage
    - add detecting user's idle time

    Major bug fixes:
    - fix data race condition on cached nat entries
    - fix error cases of volatile and atomic writes"

    * tag 'for-f2fs-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs: (87 commits)
    f2fs: should unset atomic flag after successful commit
    f2fs: fix wrong memory condition check
    f2fs: monitor the number of background checkpoint
    f2fs: detect idle time depending on user behavior
    f2fs: introduce time and interval facility
    f2fs: skip releasing nodes in chindless extent tree
    f2fs: use atomic type for node count in extent tree
    f2fs: recognize encrypted data in f2fs_fiemap
    f2fs: clean up f2fs_balance_fs
    f2fs: remove redundant calls
    f2fs: avoid unnecessary f2fs_balance_fs calls
    f2fs: check the page status filled from disk
    f2fs: introduce __get_node_page to reuse common code
    f2fs: check node id earily when readaheading node page
    f2fs: read isize while holding i_mutex in fiemap
    Revert "f2fs: check the node block address of newly allocated nid"
    f2fs: cover more area with nat_tree_lock
    f2fs: introduce max_file_blocks in sbi
    f2fs crypto: check CONFIG_F2FS_FS_XATTR for encrypted symlink
    f2fs: introduce zombie list for fast shrinking extent trees
    ...

    Linus Torvalds
     
  • Pull first round of SCSI updates from James Bottomley:
    "This includes driver updates from the usual suspects (bfa, arcmsr,
    scsi_dh_alua, lpfc, storvsc, cxlflash).

    The major change is the addition of the hisi_sas driver, which is an
    ARM platform device for SAS. The other change of note is an enormous
    style transformation to the atp870u driver (which is our worst written
    SCSI driver)"

    * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (169 commits)
    cxlflash: Enable device id for future IBM CXL adapter
    cxlflash: Resolve oops in wait_port_offline
    cxlflash: Fix to resolve cmd leak after host reset
    cxlflash: Removed driver date print
    cxlflash: Fix to avoid virtual LUN failover failure
    cxlflash: Fix to escalate LINK_RESET also on port 1
    storvsc: Tighten up the interrupt path
    storvsc: Refactor the code in storvsc_channel_init()
    storvsc: Properly support Fibre Channel devices
    storvsc: Fix a bug in the layout of the hv_fc_wwn_packet
    mvsas: Add SGPIO support to Marvell 94xx
    mpt3sas: A correction in unmap_resources
    hpsa: Add box and bay information for enclosure devices
    hpsa: Change SAS transport devices to bus 0.
    hpsa: fix path_info_show
    cciss: print max outstanding commands as a hex value
    scsi_debug: Increase the reported optimal transfer length
    lpfc: Update version to 11.0.0.10 for upstream patch set
    lpfc: Use kzalloc instead of kmalloc
    lpfc: Delete unnecessary checks before the function call "mempool_destroy"
    ...

    Linus Torvalds
     
  • Pull libnvdimm updates from Dan Williams:
    "The bulk of this has appeared in -next and independently received a
    build success notification from the kbuild robot. The 'for-4.5/block-
    dax' topic branch was rebased over the weekend to drop the "block
    device end-of-life" rework that Al would like to see re-implemented
    with a notifier, and to address bug reports against the badblocks
    integration.

    There is pending feedback against "libnvdimm: Add a poison list and
    export badblocks" received last week. Linda identified some localized
    fixups that we will handle incrementally.

    Summary:

    - Media error handling: The 'badblocks' implementation that
    originated in md-raid is up-levelled to a generic capability of a
    block device. This initial implementation is limited to being
    consulted in the pmem block-i/o path. Later, 'badblocks' will be
    consulted when creating dax mappings.

    - Raw block device dax: For virtualization and other cases that want
    large contiguous mappings of persistent memory, add the capability
    to dax-mmap a block device directly.

    - Increased /dev/mem restrictions: Add an option to treat all
    io-memory as IORESOURCE_EXCLUSIVE, i.e. disable /dev/mem access
    while a driver is actively using an address range. This behavior
    is controlled via the new CONFIG_IO_STRICT_DEVMEM option and can be
    overridden by the existing "iomem=relaxed" kernel command line
    option.

    - Miscellaneous fixes include a 'pfn'-device huge page alignment fix,
    block device shutdown crash fix, and other small libnvdimm fixes"

    * tag 'libnvdimm-for-4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm: (32 commits)
    block: kill disk_{check|set|clear|alloc}_badblocks
    libnvdimm, pmem: nvdimm_read_bytes() badblocks support
    pmem, dax: disable dax in the presence of bad blocks
    pmem: fail io-requests to known bad blocks
    libnvdimm: convert to statically allocated badblocks
    libnvdimm: don't fail init for full badblocks list
    block, badblocks: introduce devm_init_badblocks
    block: clarify badblocks lifetime
    badblocks: rename badblocks_free to badblocks_exit
    libnvdimm, pmem: move definition of nvdimm_namespace_add_poison to nd.h
    libnvdimm: Add a poison list and export badblocks
    nfit_test: Enable DSMs for all test NFITs
    md: convert to use the generic badblocks code
    block: Add badblock management for gendisks
    badblocks: Add core badblock management code
    block: fix del_gendisk() vs blkdev_ioctl crash
    block: enable dax for raw block devices
    block: introduce bdev_file_inode()
    restrict /dev/mem to idle io memory ranges
    arch: consolidate CONFIG_STRICT_DEVM in lib/Kconfig.debug
    ...

    Linus Torvalds
     
  • Pull s390 updates from Martin Schwidefsky:
    "Among the traditional bug fixes and cleanups are some improvements:

    - A tool to generated the facility lists, generating the bit fields
    by hand has been a source of bugs in the past

    - The spinlock loop is reordered to avoid bursts of hypervisor calls

    - Add support for the open-for-business interface to the service
    element

    - The get_cpu call is added to the vdso

    - A set of tracepoints is defined for the common I/O layer

    - The deprecated sclp_cpi module is removed

    - Update default configuration"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (56 commits)
    s390/sclp: fix possible control register corruption
    s390: fix normalization bug in exception table sorting
    s390/configs: update default configurations
    s390/vdso: optimize getcpu system call
    s390: drop smp_mb in vdso_init
    s390: rename struct _lowcore to struct lowcore
    s390/mem_detect: use unsigned longs
    s390/ptrace: get rid of long longs in psw_bits
    s390/sysinfo: add missing SYSIB 1.2.2 multithreading fields
    s390: get rid of CONFIG_SCHED_MC and CONFIG_SCHED_BOOK
    s390/Kconfig: remove pointless 64 bit dependencies
    s390/dasd: fix failfast for disconnected devices
    s390/con3270: testing return kzalloc retval
    s390/hmcdrv: constify hmcdrv_ftp_ops structs
    s390/cio: add NULL test
    s390/cio: Change I/O instructions from inline to normal functions
    s390/cio: Introduce common I/O layer tracepoints
    s390/cio: Consolidate inline assemblies and related data definitions
    s390/cio: Fix incorrect xsch opcode specification
    s390/cio: Remove unused inline assemblies
    ...

    Linus Torvalds
     
  • Pull ia64 build fixes from Tony Luck:
    "The ARM guys broke the ia64 build ... but gave me fixes, so it's all
    good now"

    * tag 'please-pull-fixefi' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux:
    efi: include asm/early_ioremap.h not asm/efi.h to get early_memremap
    ia64: split off early_ioremap() declarations into asm/early_ioremap.h

    Linus Torvalds
     
  • Pull second batch of media updates from Mauro Carvalho Chehab:
    "This is the second part of the media patches. It contains the media
    controller next generation patches, with is the result of one year of
    discussions and development. It also contains patches to enable media
    controller support at the DVB subsystem.

    The goal is to improve the media controller to allow proper support
    for other types of Video4Linux devices (radio and TV ones) and to
    extend the media controller functionality to allow it to be used by
    other subsystems like DVB, ALSA and IIO.

    In order to use the new functionality, a new ioctl is needed
    (MEDIA_IOC_G_TOPOLOGY). As we're still discussing how to pack the
    struct fields of this ioctl in order to avoid compat32 issues, I
    decided to add a patch at the end of this series commenting out the
    new ioctl, in order to postpone the addition of the new ioctl to the
    next Kernel version (4.6).

    With that, no userspace visible changes should happen at the media
    controller API, as the existing ioctls are untouched. Yet, it helps
    DVB, ALSA and IIO developers to develop and test the patches adding
    media controller support there, as the core will contain all required
    internal changes to allow adding support for devices that belong to
    those subsystems"

    * tag 'media/v4.5-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (177 commits)
    [media] Postpone the addition of MEDIA_IOC_G_TOPOLOGY
    [media] mxl111sf: Add a tuner entity
    [media] dvbdev: create links on devices with multiple frontends
    [media] media-entitiy: add a function to create multiple links
    [media] dvb-usb-v2: postpone removal of media_device
    [media] dvbdev: Add RF connector if needed
    [media] dvbdev: remove two dead functions if !CONFIG_MEDIA_CONTROLLER_DVB
    [media] call media_device_init() before registering the V4L2 device
    [media] uapi/media.h: Use u32 for the number of graph objects
    [media] media-entity: don't sleep at media_device_register_entity()
    [media] media-entity: increase max number of PADs
    [media] media-entity.h: document the remaining functions
    [media] media-device.h: use just one u32 counter for object ID
    [media] media-entity.h fix documentation for several parameters
    [media] DocBook: document media_entity_graph_walk_cleanup()
    [media] move documentation to the header files
    [media] media: Move MEDIA_ENTITY_MAX_PADS from media-entity.h to media-entity.c
    [media] media: Remove pre-allocated entity enumeration bitmap
    [media] staging: v4l: davinci_vpbe: Use the new media graph walk interface
    [media] staging: v4l: omap4iss: Use the new media graph walk interface
    ...

    Linus Torvalds
     
  • Pull spi updates from Mark Brown:
    "A quiet release for SPI, not even many driver updates:

    - Add a dummy loopback driver for use in exercising framework
    features during development.

    - Move the test utilities to tools/ and add support for transferring
    data to and from a file instead of stdin and stdout to spidev_test.

    - Support for Mediatek MT2701 and Renesas AG5 deices"

    * tag 'spi-v4.5' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi: (69 commits)
    spi: loopback: fix typo in MODULE_PARM_DESC
    spi: sun4i: Prevent chip-select from being activated twice before a transfer
    spi: loopback-test: spi_check_rx_ranges can get always done
    spi: loopback-test: rename method spi_test_fill_tx to spi_test_fill_pattern
    spi: loopback-test: write rx pattern also when running without tx_buf
    spi: fsl-espi: expose maximum transfer size limit
    spi: expose master transfer size limitation.
    spi: zynq: use to_platform_device()
    spi: cadence: use to_platform_device()
    spi: mediatek: Add spi support for mt2701 IC
    spi: mediatek: merge all identical compat to mtk_common_compat
    spi: mtk: Add bindings for mediatek MT2701 soc platform
    spi: mediatek: Prevent overflows in FIFO transfers
    spi: s3c64xx: Remove unused platform_device_id entries
    spi: use to_spi_device
    spi: dw: Use SPI_TMOD_TR rather than magic const 0 to set tmode
    spi: imx: defer spi initialization, if DMA engine is
    spi: imx: return error from dma channel request
    spi: imx: enable loopback only for ECSPI controller family
    spi: imx: fix loopback mode setup after controller reset
    ...

    Linus Torvalds
     
  • Pull MTD updates from Brian Norris:
    "Generic MTD:

    - populate the MTD device 'of_node' field (and get a proper 'of_node'
    symlink in sysfs)

    This yielded some new helper functions, and changes across a
    variety of drivers

    - partitioning cleanups, to prepare for better device-tree based
    partitioning in the future

    Eliminate a lot of boilerplate for drivers that want to use
    OF-based partition parsing

    The DT bindings for this didn't settle yet, so most non-cleanup
    portions are deferred for a future release

    NAND:

    - embed a struct mtd_info inside struct nand_chip

    This is really long overdue; too many drivers have to do the same
    silly boilerplate to allocate and link up two "independent"
    structs, when in fact, everyone is assuming there is an exact 1:1
    relationship between a NAND chips struct and its underlying MTD.
    This aids improved helpers and should make certain abstractions
    easier in the future.

    Also causes a lot of churn, helped along by some automated code
    transformations

    - add more core support for detecting (and "correcting") bitflips in
    erased pages; requires opt-in by drivers, but at least we kill a
    few bad implementations and hopefully stave off future ones

    - pxa3xx_nand: cleanups, a few fixes, and PM improvements

    - new JZ4780 NAND driver

    SPI NOR:

    - provide default erase function, for controllers that just want to
    send the SECTOR_ERASE command directly

    - fix some module auto-loading issues with device tree
    ("jedec,spi-nor")

    - error handling fixes

    - new Mediatek QSPI flash driver

    Other:

    - cfi: force valid geometry Kconfig (finally!)

    This one used to trip up randconfigs occasionally, since bots
    aren't deterred by big scary "advanced configuration" menus

    More? Probably. See the commit logs"

    * tag 'for-linus-20160112' of git://git.infradead.org/linux-mtd: (168 commits)
    mtd: jz4780_nand: replace if/else blocks with switch/case
    mtd: nand: jz4780: Update ecc correction error codes
    mtd: nandsim: use nand_get_controller_data()
    mtd: jz4780_nand: remove useless mtd->priv = chip assignment
    staging: mt29f_spinand: make use of nand_set/get_controller_data() helpers
    mtd: nand: make use of nand_set/get_controller_data() helpers
    ARM: make use of nand_set/get_controller_data() helpers
    mtd: nand: add helpers to access ->priv
    mtd: nand: jz4780: driver for NAND devices on JZ4780 SoCs
    mtd: nand: jz4740: remove custom 'erased check' implementation
    mtd: nand: diskonchip: remove custom 'erased check' implementation
    mtd: nand: davinci: remove custom 'erased check' implementation
    mtd: nand: use nand_check_erased_ecc_chunk in default ECC read functions
    mtd: nand: return consistent error codes in ecc.correct() implementations
    doc: dt: mtd: new binding for jz4780-{nand,bch}
    mtd: cfi_cmdset_0001: fixing memory leak and handling failed kmalloc
    mtd: spi-nor: wait until lock/unlock operations are ready
    mtd: tests: consolidate kmalloc/memset 0 call to kzalloc
    jffs2: use to_delayed_work
    mtd: nand: assign reasonable default name for NAND drivers
    ...

    Linus Torvalds
     
  • Pull ipmi updates from Corey Minyard:
    "Some minor changes that have been in linux-next for a while"

    * tag 'for-linus-4.5' of git://git.code.sf.net/p/openipmi/linux-ipmi:
    ipmi: Remove unnecessary pci_disable_device.
    char: ipmi: Drop owner assignment from i2c_driver
    ipmi: constify some struct and char arrays

    Linus Torvalds
     
  • Pull input updates from Dmitry Torokhov:
    - new driver for eGalaxTouch serial touchscreen
    - new driver for TS-4800 touchscreen
    - an update for Goodix touchscreen driver
    - PS/2 mouse module was reworked to limit number of protocols we try on
    pass-through ports to speed up their detection time
    - wacom_w8001 touchscreen driver now reports pen and touch via separate
    instances of input devices
    - other driver changes

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input: (42 commits)
    Input: elantech - mark protocols v2 and v3 as semi-mt
    Input: wacom_w8001 - drop use of ABS_MT_TOOL_TYPE
    Input: gpio-keys - fix check for disabling unsupported keys
    Input: omap-keypad - remove dead check
    Input: ti_am335x_tsc - fix HWPEN interrupt handling
    Input: omap-keypad - set tasklet data earlier
    Input: rohm_bu21023 - fix handling of retrying firmware update
    Input: ALPS - report v3 pinnacle trackstick device only if is present
    Input: ALPS - detect trackstick presence for v7 protocol
    Input: pcap_ts - use to_delayed_work
    Input: bma150 - constify bma150_cfg structure
    Input: i8042 - add Fujitsu Lifebook U745 to the nomux list
    Input: egalax_ts_serial - fix potential NULL dereference on error
    Input: uinput - sanity check on ff_effects_max and EV_FF
    Input: uinput - rework ABS validation
    Input: uinput - add new UINPUT_DEV_SETUP and UI_ABS_SETUP ioctl
    Input: goodix - use "inverted_[xy]" flags instead of "rotated_screen"
    Input: goodix - add axis swapping and axis inversion support
    Input: goodix - use goodix_i2c_write_u8 instead of i2c_master_send
    Input: goodix - add power management support
    ...

    Linus Torvalds
     
  • Pull dmaengine updates from Vinod Koul:
    "This round we have few new features, new driver and updates to few
    drivers.

    The new features to dmaengine core are:
    - Synchronized transfer termination API to terminate the dmaengine
    transfers in synchronized and async fashion as required by users.
    We have its user now in ALSA dmaengine lib, img, at_xdma, axi_dmac
    drivers.
    - Universal API for channel request and start consolidation of
    request flows. It's user is ompa-dma driver.
    - Introduce reuse of descriptors and use in pxa_dma driver

    Add/Remove:
    - New STM32 DMA driver
    - Removal of unused R-Car HPB-DMAC driver

    Updates:
    - ti-dma-crossbar updates for supporting eDMA
    - tegra-apb pm updates
    - idma64
    - mv_xor updates
    - ste_dma updates"

    * tag 'dmaengine-4.5-rc1' of git://git.infradead.org/users/vkoul/slave-dma: (54 commits)
    dmaengine: mv_xor: add suspend/resume support
    dmaengine: mv_xor: de-duplicate mv_chan_set_mode*()
    dmaengine: mv_xor: remove mv_xor_chan->current_type field
    dmaengine: omap-dma: Add support for DMA filter mapping to slave devices
    dmaengine: edma: Add support for DMA filter mapping to slave devices
    dmaengine: core: Introduce new, universal API to request a channel
    dmaengine: core: Move and merge the code paths using private_candidate
    dmaengine: core: Skip mask matching when it is not provided to private_candidate
    dmaengine: mdc: Correct terminate_all handling
    dmaengine: edma: Add probe callback to edma_tptc_driver
    dmaengine: dw: fix potential memory leak in dw_dma_parse_dt()
    dmaengine: stm32-dma: Fix unchecked deference of chan->desc
    dmaengine: sh: Remove unused R-Car HPB-DMAC driver
    dmaengine: usb-dmac: Document SoC specific compatibility strings
    ste_dma40: Delete an unnecessary variable initialisation in d40_probe()
    ste_dma40: Delete another unnecessary check in d40_probe()
    ste_dma40: Delete an unnecessary check before the function call "kmem_cache_destroy"
    dmaengine: tegra-apb: Free interrupts before killing tasklets
    dmaengine: tegra-apb: Update driver to use GFP_NOWAIT
    dmaengine: tegra-apb: Only save channel state for those in use
    ...

    Linus Torvalds