10 Jan, 2015

13 commits

  • This patch adds:
    o initial trace.c and trace.h with skeleton functions
    o Kconfig and Makefile to activate this feature

    Signed-off-by: Jaegeuk Kim

    Jaegeuk Kim
     
  • This patch cleans up parameters on IO paths.
    The key idea is to use f2fs_io_info adding a parameter, block address, and then
    use this structure as parameters.

    Reviewed-by: Chao Yu
    Signed-off-by: Jaegeuk Kim

    Jaegeuk Kim
     
  • Use more common function ra_meta_pages() with META_POR to readahead node blocks
    in restore_node_summary() instead of ra_sum_pages(), hence we can simplify the
    readahead code there, and also we can remove unused function ra_sum_pages().

    changes from v2:
    o use invalidate_mapping_pages as before suggested by Changman Lee.
    changes from v1:
    o fix one bug when using truncate_inode_pages_range which is pointed out by
    Jaegeuk Kim.

    Reviewed-by: Changman Lee
    Signed-off-by: Chao Yu
    Signed-off-by: Jaegeuk Kim

    Chao Yu
     
  • This patch moves one member of struct nat_entry: _flag_ to struct node_info,
    so _version_ in struct node_info and _flag_ which are unsigned char type will
    merge to one 32-bit space in register/memory. So the size of nat_entry will be
    reduced from 28 bytes to 24 bytes (for 64-bit machine, reduce its size from 40
    bytes to 32 bytes) and then slab memory using by f2fs will be reduced.

    changes from v2:
    o update description of memory usage gain for 64-bit machine suggested by
    Changman Lee.
    changes from v1:
    o introduce inline copy_node_info() to copy valid data from node info suggested
    by Jaegeuk Kim, it can avoid bug.

    Reviewed-by: Changman Lee
    Signed-off-by: Chao Yu
    Signed-off-by: Jaegeuk Kim

    Chao Yu
     
  • Let's add readahead code for reading contiguous compact/normal summary blocks
    in checkpoint, then we will gain better performance in mount procedure.

    Changes from v1
    o remove inappropriate 'unlikely' in npages_for_summary_flush.

    Signed-off-by: Chao Yu
    Signed-off-by: Jaegeuk Kim

    Chao Yu
     
  • This patch calls f2fs_kunmap_page which I missed before.

    Signed-off-by: Jaegeuk Kim

    Jaegeuk Kim
     
  • Now we use inmemory pages for atomic write only and provide abort procedure,
    we don't need to truncate them explicitly.

    Signed-off-by: Jaegeuk Kim

    Jaegeuk Kim
     
  • The ckpt_valid_map and cur_valid_map are synced by seg_info_to_raw_sit.

    In the case of small discards, the candidates are selected before sync,
    while fitrim selects candidates after sync.

    So, for small discards, we need to add candidates only just being obsoleted.

    Signed-off-by: Jaegeuk Kim

    Jaegeuk Kim
     
  • This patch adds two new ioctls to release inmemory pages grabbed by atomic
    writes.
    o f2fs_ioc_abort_volatile_write
    - If transaction was failed, all the grabbed pages and data should be written.
    o f2fs_ioc_release_volatile_write
    - This is to enhance the performance of PERSIST mode in sqlite.

    In order to avoid huge memory consumption which causes OOM, this patch changes
    volatile writes to use normal dirty pages, instead blocked flushing to the disk
    as long as system does not suffer from memory pressure.

    Signed-off-by: Jaegeuk Kim

    Jaegeuk Kim
     
  • We don't need to call lock_op and lock_page at the aborting path.

    Signed-off-by: Jaegeuk Kim

    Jaegeuk Kim
     
  • If there is not enough available memory, we need to trigger f2fs_sync_fs.

    Signed-off-by: Jaegeuk Kim

    Jaegeuk Kim
     
  • We don't need to force to write dirty_exceeded for f2fs_balance_fs_bg.
    This flag was only meaningful to write bypassing conditions.

    Signed-off-by: Jaegeuk Kim

    Jaegeuk Kim
     
  • Merge misc fixes from Andrew Morton:
    "12 fixes"

    * emailed patches from Andrew Morton :
    mm, vmscan: prevent kswapd livelock due to pfmemalloc-throttled process being killed
    memcg: fix destination cgroup leak on task charges migration
    mm: memcontrol: switch soft limit default back to infinity
    mm/debug_pagealloc: remove obsolete Kconfig options
    vfs: renumber FMODE_NONOTIFY and add to uniqueness check
    arch/blackfin/mach-bf533/boards/stamp.c: add linux/delay.h
    ocfs2: fix the wrong directory passed to ocfs2_lookup_ino_from_name() when link file
    MAINTAINERS: update rydberg's addresses
    mm: protect set_page_dirty() from ongoing truncation
    mm: prevent endless growth of anon_vma hierarchy
    exit: fix race between wait_consider_task() and wait_task_zombie()
    ocfs2: remove bogus check in dlm_process_recovery_data

    Linus Torvalds
     

09 Jan, 2015

20 commits

  • Charles Shirron and Paul Cassella from Cray Inc have reported kswapd
    stuck in a busy loop with nothing left to balance, but
    kswapd_try_to_sleep() failing to sleep. Their analysis found the cause
    to be a combination of several factors:

    1. A process is waiting in throttle_direct_reclaim() on pgdat->pfmemalloc_wait

    2. The process has been killed (by OOM in this case), but has not yet been
    scheduled to remove itself from the waitqueue and die.

    3. kswapd checks for throttled processes in prepare_kswapd_sleep():

    if (waitqueue_active(&pgdat->pfmemalloc_wait)) {
    wake_up(&pgdat->pfmemalloc_wait);
    return false; // kswapd will not go to sleep
    }

    However, for a process that was already killed, wake_up() does not remove
    the process from the waitqueue, since try_to_wake_up() checks its state
    first and returns false when the process is no longer waiting.

    4. kswapd is running on the same CPU as the only CPU that the process is
    allowed to run on (through cpus_allowed, or possibly single-cpu system).

    5. CONFIG_PREEMPT_NONE=y kernel is used. If there's nothing to balance, kswapd
    encounters no voluntary preemption points and repeatedly fails
    prepare_kswapd_sleep(), blocking the process from running and removing
    itself from the waitqueue, which would let kswapd sleep.

    So, the source of the problem is that we prevent kswapd from going to
    sleep until there are processes waiting on the pfmemalloc_wait queue,
    and a process waiting on a queue is guaranteed to be removed from the
    queue only when it gets scheduled. This was done to make sure that no
    process is left sleeping on pfmemalloc_wait when kswapd itself goes to
    sleep.

    However, it isn't necessary to postpone kswapd sleep until the
    pfmemalloc_wait queue actually empties. To prevent processes from being
    left sleeping, it's actually enough to guarantee that all processes
    waiting on pfmemalloc_wait queue have been woken up by the time we put
    kswapd to sleep.

    This patch therefore fixes this issue by substituting 'wake_up' with
    'wake_up_all' and removing 'return false' in the code snippet from
    prepare_kswapd_sleep() above. Note that if any process puts itself in
    the queue after this waitqueue_active() check, or after the wake up
    itself, it means that the process will also wake up kswapd - and since
    we are under prepare_to_wait(), the wake up won't be missed. Also we
    update the comment prepare_kswapd_sleep() to hopefully more clearly
    describe the races it is preventing.

    Fixes: 5515061d22f0 ("mm: throttle direct reclaimers if PF_MEMALLOC reserves are low and swap is backed by network storage")
    Signed-off-by: Vlastimil Babka
    Signed-off-by: Vladimir Davydov
    Cc: Mel Gorman
    Cc: Johannes Weiner
    Acked-by: Michal Hocko
    Acked-by: Rik van Riel
    Cc: [3.6+]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Vlastimil Babka
     
  • We are supposed to take one css reference per each memory page and per
    each swap entry accounted to a memory cgroup. However, during task
    charges migration we take a reference to the destination cgroup twice
    per each swap entry: first in mem_cgroup_do_precharge()->try_charge()
    and then in mem_cgroup_move_swap_account(), permanently leaking the
    destination cgroup.

    The hunk taking the second reference seems to be a leftover from the
    pre-00501b531c472 ("mm: memcontrol: rewrite charge API") era. Remove it
    to fix the leak.

    Fixes: e8ea14cc6ead (mm: memcontrol: take a css reference for each charged page)
    Signed-off-by: Vladimir Davydov
    Cc: Johannes Weiner
    Acked-by: Michal Hocko
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Vladimir Davydov
     
  • Commit 3e32cb2e0a12 ("mm: memcontrol: lockless page counters")
    accidentally switched the soft limit default from infinity to zero,
    which turns all memcgs with even a single page into soft limit excessors
    and engages soft limit reclaim on all of them during global memory
    pressure. This makes global reclaim generally more aggressive, but also
    inverts the meaning of existing soft limit configurations where unset
    soft limits are usually more generous than set ones.

    Signed-off-by: Johannes Weiner
    Acked-by: Michal Hocko
    Acked-by: Vladimir Davydov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Johannes Weiner
     
  • These are obsolete since commit e30825f1869a ("mm/debug-pagealloc:
    prepare boottime configurable") was merged. So remove them.

    [pebolle@tiscali.nl: find obsolete Kconfig options]
    Signed-off-by: Joonsoo Kim
    Cc: Paul Bolle
    Cc: Mel Gorman
    Cc: Johannes Weiner
    Cc: Minchan Kim
    Cc: Dave Hansen
    Cc: Michal Nazarewicz
    Cc: Jungsoo Son
    Acked-by: David Rientjes
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joonsoo Kim
     
  • Fix clashing values for O_PATH and FMODE_NONOTIFY on sparc. The
    clashing O_PATH value was added in commit 5229645bdc35 ("vfs: add
    nonconflicting values for O_PATH") but this can't be changed as it is
    user-visible.

    FMODE_NONOTIFY is only used internally in the kernel, but it is in the
    same numbering space as the other O_* flags, as indicated by the comment
    at the top of include/uapi/asm-generic/fcntl.h (and its use in
    fs/notify/fanotify/fanotify_user.c). So renumber it to avoid the clash.

    All of this has happened before (commit 12ed2e36c98a: "fanotify:
    FMODE_NONOTIFY and __O_SYNC in sparc conflict"), and all of this will
    happen again -- so update the uniqueness check in fcntl_init() to
    include __FMODE_NONOTIFY.

    Signed-off-by: David Drysdale
    Acked-by: David S. Miller
    Acked-by: Jan Kara
    Cc: Heinrich Schuchardt
    Cc: Alexander Viro
    Cc: Arnd Bergmann
    Cc: Stephen Rothwell
    Cc: Eric Paris
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Drysdale
     
  • build error

    arch/blackfin/mach-bf533/boards/stamp.c:834:2: error: implicit declaration of function 'mdelay'

    Signed-off-by: Oleg Nesterov
    Reported-by: Wu Fengguang
    Acked-by: Mike Frysinger
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Oleg Nesterov
     
  • In ocfs2_link(), the parent directory inode passed to function
    ocfs2_lookup_ino_from_name() is wrong. Parameter dir is the parent of
    new_dentry not old_dentry. We should get old_dir from old_dentry and
    lookup old_dentry in old_dir in case another node remove the old dentry.

    With this change, hard linking works again, when paths are relative with
    at least one subdirectory. This is how the problem was reproducable:

    # mkdir a
    # mkdir b
    # touch a/test
    # ln a/test b/test
    ln: failed to create hard link `b/test' => `a/test': No such file or directory

    However when creating links in the same dir, it worked well.

    Now the link gets created.

    Fixes: 0e048316ff57 ("ocfs2: check existence of old dentry in ocfs2_link()")
    Signed-off-by: joyce.xue
    Reported-by: Szabo Aron - UBIT
    Cc: Mark Fasheh
    Cc: Joel Becker
    Tested-by: Aron Szabo
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Xue jiufei
     
  • My ISP finally gave up on the old mail address, so I am moving things
    over to bitmath.org instead. Also change the status fields to better
    reflect reality.

    Signed-off-by: Henrik Rydberg
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Henrik Rydberg
     
  • Tejun, while reviewing the code, spotted the following race condition
    between the dirtying and truncation of a page:

    __set_page_dirty_nobuffers() __delete_from_page_cache()
    if (TestSetPageDirty(page))
    page->mapping = NULL
    if (PageDirty())
    dec_zone_page_state(page, NR_FILE_DIRTY);
    dec_bdi_stat(mapping->backing_dev_info, BDI_RECLAIMABLE);
    if (page->mapping)
    account_page_dirtied(page)
    __inc_zone_page_state(page, NR_FILE_DIRTY);
    __inc_bdi_stat(mapping->backing_dev_info, BDI_RECLAIMABLE);

    which results in an imbalance of NR_FILE_DIRTY and BDI_RECLAIMABLE.

    Dirtiers usually lock out truncation, either by holding the page lock
    directly, or in case of zap_pte_range(), by pinning the mapcount with
    the page table lock held. The notable exception to this rule, though,
    is do_wp_page(), for which this race exists. However, do_wp_page()
    already waits for a locked page to unlock before setting the dirty bit,
    in order to prevent a race where clear_page_dirty() misses the page bit
    in the presence of dirty ptes. Upgrade that wait to a fully locked
    set_page_dirty() to also cover the situation explained above.

    Afterwards, the code in set_page_dirty() dealing with a truncation race
    is no longer needed. Remove it.

    Reported-by: Tejun Heo
    Signed-off-by: Johannes Weiner
    Acked-by: Kirill A. Shutemov
    Reviewed-by: Jan Kara
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Johannes Weiner
     
  • Constantly forking task causes unlimited grow of anon_vma chain. Each
    next child allocates new level of anon_vmas and links vma to all
    previous levels because pages might be inherited from any level.

    This patch adds heuristic which decides to reuse existing anon_vma
    instead of forking new one. It adds counter anon_vma->degree which
    counts linked vmas and directly descending anon_vmas and reuses anon_vma
    if counter is lower than two. As a result each anon_vma has either vma
    or at least two descending anon_vmas. In such trees half of nodes are
    leafs with alive vmas, thus count of anon_vmas is no more than two times
    bigger than count of vmas.

    This heuristic reuses anon_vmas as few as possible because each reuse
    adds false aliasing among vmas and rmap walker ought to scan more ptes
    when it searches where page is might be mapped.

    Link: http://lkml.kernel.org/r/20120816024610.GA5350@evergreen.ssec.wisc.edu
    Fixes: 5beb49305251 ("mm: change anon_vma linking to fix multi-process server scalability issue")
    [akpm@linux-foundation.org: fix typo, per Rik]
    Signed-off-by: Konstantin Khlebnikov
    Reported-by: Daniel Forrest
    Tested-by: Michal Hocko
    Tested-by: Jerome Marchand
    Reviewed-by: Michal Hocko
    Reviewed-by: Rik van Riel
    Cc: [2.6.34+]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Konstantin Khlebnikov
     
  • wait_consider_task() checks EXIT_ZOMBIE after EXIT_DEAD/EXIT_TRACE and
    both checks can fail if we race with EXIT_ZOMBIE -> EXIT_DEAD/EXIT_TRACE
    change in between, gcc needs to reload p->exit_state after
    security_task_wait(). In this case ->notask_error will be wrongly
    cleared and do_wait() can hang forever if it was the last eligible
    child.

    Many thanks to Arne who carefully investigated the problem.

    Note: this bug is very old but it was pure theoretical until commit
    b3ab03160dfa ("wait: completely ignore the EXIT_DEAD tasks"). Before
    this commit "-O2" was probably enough to guarantee that compiler won't
    read ->exit_state twice.

    Signed-off-by: Oleg Nesterov
    Reported-by: Arne Goedeke
    Tested-by: Arne Goedeke
    Cc: [3.15+]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Oleg Nesterov
     
  • In dlm_process_recovery_data, only when dlm_new_lock failed the ret will
    be set to -ENOMEM. And in this case, newlock is definitely NULL. So
    test newlock is meaningless, remove it.

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

    Joseph Qi
     
  • Pull kbuild fix from Michal Marek:
    "make mrproper / distclean stopped removing the generated debian/
    directory in v3.16. This fixes it"

    * 'rc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
    kbuild: Fix removal of the debian/ directory

    Linus Torvalds
     
  • The introduction of the uapi directories in v3.7-rc1 moved some of the
    generated headers from arch/*/include/generated to the uapi directory,
    keeping the #include directives intact.

    This creates a problem when bisecting, because the unversioned files are
    not cleaned automatically by git and the compiler might include stale
    headers as a result. Instead of cleaning them in the Makefiles, promote
    arch/*/include/generated/uapi in the search path. Under normal
    circumstances, there is no overlap between this uapi subdirectory and
    its parent, so the include choices remain the same. We keep
    arch/*/include/generated/uapi in the USERINCLUDE variable so that it is
    usable standalone.

    Note that we cannot completely swap the order of the uapi and
    kernel-only directories, since the headers in include/uapi/asm-generic
    are meant to be wrapped by their include/asm-generic counterparts when
    building kernel code.

    Reported-by: "Nicholas A. Bellinger"
    Reported-by: David Drysdale
    Signed-off-by: Michal Marek
    Signed-off-by: Linus Torvalds

    Michal Marek
     
  • Pull pinctrl fixes from Linus Walleij:
    "Allright allright I've been lazy over christmas and New Years. Here
    are a few collected pin control fixes eventually. Details:

    A set of assorted pin control fixes for the Rockchip and STi drivers"

    * tag 'pinctrl-v3.19-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl:
    pinctrl: st: Add irq_disable hook to st_gpio_irqchip
    pinctrl: st: avoid multiple mutex lock
    pinctrl: rockchip: Fix enable/disable/mask/unmask
    pinctrl: rockchip: Handle wakeup pins

    Linus Torvalds
     
  • Pull power management and ACPI fixes from Rafael Wysocki:
    "These are an ACPI device power management initialization fix (-stable
    material), two commits renaming stuff in the ACPI processor driver to
    make it more suitable for ARM64 processors and a new ACPI backlight
    blacklist entry.

    Specifics:

    - Fix ACPI power management intialization for device objects
    corresponding to devices that are not present at the init time (the
    _STA control method returns 0 for them) and therefore should not be
    regarded as power manageable (Rafael J Wysocki).

    - Rename a structure field and two functions used by the ACPI
    processor driver to make them less tied to architectures that use
    APICs (both x86 and ia64) and more suitable for ARM64 processors
    (Hanjun Guo).

    - Add a disable_native_backlight quirk for Dell XPS15 L521X designed
    in an unusual way preventing native backlight from working on that
    machine (Hans de Goede)"

    * tag 'pm+acpi-3.19-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
    ACPI / video: Add disable_native_backlight quirk for Dell XPS15 L521X
    ACPI / processor: Rename acpi_(un)map_lsapic() to acpi_(un)map_cpu()
    ACPI / processor: Convert apic_id to phys_id to make it arch agnostic
    ACPI / PM: Fix PM initialization for devices that are not present

    Linus Torvalds
     
  • Pull keyrings fixes from David Howells:
    "Two fixes:

    - Fix for the order in which things are done during key garbage
    collection to prevent named keyrings causing a crash
    [CVE-2014-9529].

    - Fix assoc_array to explicitly #include rcupdate.h to prevent
    compilation errors under certain circumstances"

    * tag 'keys-fixes-20150107' of git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs:
    assoc_array: Include rcupdate.h for call_rcu() definition
    KEYS: close race between key lookup and freeing

    Linus Torvalds
     
  • pull virtio/vhost fixes from Michael Tsirkin:
    "This fixes a couple of bugs triggered by hot-unplug of virtio devices,
    as well as a regression in vhost-net"

    * tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost:
    vhost/net: length miscalculation
    virtio_pci: document why we defer kfree
    virtio_pci: defer kfree until release callback
    virtio_pci: device-specific release callback
    virtio: make del_vqs idempotent

    Linus Torvalds
     
  • Pull IOMMU fixes from Joerg Roedel:
    "Including:

    - a domain structure leak fix in the Intel VT-d driver

    - compile error fix for the VMSA IPMMU driver because of the
    IOMMU_EXEC -> IOMMU_NOEXEC conversion

    - two small cleanups as an aftermath of the merge window and the
    domain-leak fix"

    * tag 'iommu-fixes-v3.19-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu:
    iommu/rockchip: Drop owner assignment from platform_drivers
    iommu/vt-d: Remove dead code in device_notifier
    iommu/vt-d: Fix dmar_domain leak in iommu_attach_device
    iommu/ipmmu-vmsa: Change IOMMU_EXEC to IOMMU_NOEXEC

    Linus Torvalds
     
  • Pull crypto fixes from Herbert Xu:
    "This fixes a build problem with sha-mb with old toolchains and an
    implementation bug in the ctr(aes)/by8 branch of aesni-intel that's
    enabled when AVX is available"

    * git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
    crypto: sha-mb - Add avx2_supported check.
    crypto: aesni - fix "by8" variant for 128 bit keys

    Linus Torvalds
     

08 Jan, 2015

1 commit

  • Include rcupdate.h header to provide call_rcu() definition. This was implicitly
    being provided by slab.h file which include srcu.h somewhere in its include
    hierarchy which in-turn included rcupdate.h.

    Lately, tinification effort added support to remove srcu entirely because of
    which we are encountering build errors like

    lib/assoc_array.c: In function 'assoc_array_apply_edit':
    lib/assoc_array.c:1426:2: error: implicit declaration of function 'call_rcu' [-Werror=implicit-function-declaration]
    cc1: some warnings being treated as errors

    Fix these by including rcupdate.h explicitly.

    Signed-off-by: Pranith Kumar
    Reported-by: Scott Wood

    Pranith Kumar
     

07 Jan, 2015

6 commits

  • commit 8b38694a2dc8b18374310df50174f1e4376d6824
    vhost/net: virtio 1.0 byte swap
    had this chunk:
    - heads[headcount - 1].len += datalen;
    + heads[headcount - 1].len = cpu_to_vhost32(vq, len - datalen);

    This adds datalen with the wrong sign, causing guest panics.

    Fixes: 8b38694a2dc8b18374310df50174f1e4376d6824
    Reported-by: Alex Williamson
    Suggested-by: Greg Kurz
    Signed-off-by: Michael S. Tsirkin

    Michael S. Tsirkin
     
  • Currently disable_irq() doesn't work for pinctrl-st driver, due to
    missing irq_disable hook in the driver.
    disable_irq() is required only for level-triggered interrupts, which
    is not the case normally.

    Signed-off-by: Pankaj Dev
    Signed-off-by: Patrice Chotard
    Signed-off-by: Linus Walleij

    Patrice CHOTARD
     
  • Using the sysfs inteface to inspect the pins configuration
    the system can walk around a path which acquires the same
    mutex twice.

    On STiH407 platform, for example :
    cat /sys/kernel/debug/pinctrl/920f080.pin-controller-front0/pinconf-pins
    hangs the kernel and never returns.

    With this patch the mutex is temporary freed.

    Signed-off-by: Francesco Virlinzi
    Signed-off-by: Patrice Chotard
    Signed-off-by: Linus Walleij

    Francesco VIRLINZI
     
  • Pull networking fixes from David Miller:
    "Just a pile of random fixes, including:

    1) Do not apply TSO limits to non-TSO packets, fix from Herbert Xu.

    2) MDI{,X} eeprom check in e100 driver is reversed, from John W.
    Linville.

    3) Missing error return assignments in several ethernet drivers, from
    Julia Lawall.

    4) Altera TSE device doesn't come back up after ifconfig down/up
    sequence, fix from Kostya Belezko.

    5) Add more cases to the check for whether the qmi_wwan device has a
    bogus MAC address and needs to be assigned a random one. From
    Kristian Evensen.

    6) Fix interrupt hangs in CPSW, from Felipe Balbi.

    7) Implement ndo_features_check in r8152 so that the stack doesn't
    feed GSO packets which are outside of the chip's capabilities.
    From Hayes Wang"

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (26 commits)
    qla3xxx: don't allow never end busy loop
    xen-netback: fixing the propagation of the transmit shaper timeout
    r8152: support ndo_features_check
    batman-adv: fix potential TT client + orig-node memory leak
    batman-adv: fix multicast counter when purging originators
    batman-adv: fix counter for multicast supporting nodes
    batman-adv: fix lock class for decoding hash in network-coding.c
    batman-adv: fix delayed foreign originator recognition
    batman-adv: fix and simplify condition when bonding should be used
    Revert "mac80211: Fix accounting of the tailroom-needed counter"
    net: ethernet: cpsw: fix hangs with interrupts
    enic: free all rq buffs when allocation fails
    qmi_wwan: Set random MAC on devices with buggy fw
    openvswitch: Consistently include VLAN header in flow and port stats.
    tcp: Do not apply TSO segment limit to non-TSO packets
    Altera TSE: Add missing phydev
    net/mlx4_core: Fix error flow in mlx4_init_hca()
    net/mlx4_core: Correcly update the mtt's offset in the MR re-reg flow
    qlcnic: Fix return value in qlcnic_probe()
    net: axienet: fix error return code
    ...

    Linus Torvalds
     
  • Pull IPMI fixlet from Corey Minyard:
    "Fix a compile warning"

    * tag 'for-linus-3' of git://git.code.sf.net/p/openipmi/linux-ipmi:
    ipmi: Fix compile warning with tv_usec

    Linus Torvalds
     
  • The counter variable wasn't increased at all which may stuck under
    certain circumstances.

    Signed-off-by: Andy Shevchenko
    Signed-off-by: David S. Miller

    Andy Shevchenko