20 Dec, 2014

5 commits

  • Pull x86 MPX fixes from Thomas Gleixner:
    "Three updates for the new MPX infrastructure:
    - Use the proper error check in the trap handler
    - Add a proper config option for it
    - Bring documentation up to date"

    * 'x86-mpx-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86, mpx: Give MPX a real config option prompt
    x86, mpx: Update documentation
    x86_64/traps: Fix always true condition

    Linus Torvalds
     
  • Pull x86 fix from Ingo Molnar:
    "This contains a single TLS ABI validation fix from Andy Lutomirski"

    * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    x86/tls: Don't validate lm in set_thread_area() after all

    Linus Torvalds
     
  • Pull perf fixes and cleanups from Ingo Molnar:
    "A kernel fix plus mostly tooling fixes, but also some tooling
    restructuring and cleanups"

    * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (39 commits)
    perf: Fix building warning on ARM 32
    perf symbols: Fix use after free in filename__read_build_id
    perf evlist: Use roundup_pow_of_two
    tools: Adopt roundup_pow_of_two
    perf tools: Make the mmap length autotuning more robust
    tools: Adopt rounddown_pow_of_two and deps
    tools: Adopt fls_long and deps
    tools: Move bitops.h from tools/perf/util to tools/
    tools: Introduce asm-generic/bitops.h
    tools lib: Move asm-generic/bitops/find.h code to tools/include and tools/lib
    tools: Whitespace prep patches for moving bitops.h
    tools: Move code originally from asm-generic/atomic.h into tools/include/asm-generic/
    tools: Move code originally from linux/log2.h to tools/include/linux/
    tools: Move __ffs implementation to tools/include/asm-generic/bitops/__ffs.h
    perf evlist: Do not use hard coded value for a mmap_pages default
    perf trace: Let the perf_evlist__mmap autosize the number of pages to use
    perf evlist: Improve the strerror_mmap method
    perf evlist: Clarify sterror_mmap variable names
    perf evlist: Fixup brown paper bag on "hint" for --mmap-pages cmdline arg
    perf trace: Provide a better explanation when mmap fails
    ...

    Linus Torvalds
     
  • Pull second batch of powerpc updates from Michael Ellerman:
    "The highlight is the series that reworks the idle management on
    powernv, which allows us to use deeper idle states on those machines.

    There's the fix from Anton for the "BUG at kernel/smpboot.c:134!"
    problem.

    An i2c driver for powernv. This is acked by Wolfram Sang, and he
    asked that we take it through the powerpc tree.

    A fix for audit from rgb at Red Hat, acked by Paul Moore who is one of
    the audit maintainers.

    A patch from Ben to export the symbol map of our OPAL firmware as a
    sysfs file, so that tools can use it.

    Also some CXL fixes, a couple of powerpc perf fixes, a fix for
    smt-enabled, and the patch to add __force to get_user() so we can use
    bitwise types"

    * tag 'powerpc-3.19-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mpe/linux:
    powerpc/powernv: Ignore smt-enabled on Power8 and later
    powerpc/uaccess: Allow get_user() with bitwise types
    powerpc/powernv: Expose OPAL firmware symbol map
    powernv/powerpc: Add winkle support for offline cpus
    powernv/cpuidle: Redesign idle states management
    powerpc/powernv: Enable Offline CPUs to enter deep idle states
    powerpc/powernv: Switch off MMU before entering nap/sleep/rvwinkle mode
    i2c: Driver to expose PowerNV platform i2c busses
    powerpc: add little endian flag to syscall_get_arch()
    power/perf/hv-24x7: Use kmem_cache_free() instead of kfree
    powerpc/perf/hv-24x7: Use per-cpu page buffer
    cxl: Unmap MMIO regions when detaching a context
    cxl: Add timeout to process element commands
    cxl: Change contexts_lock to a mutex to fix sleep while atomic bug
    powerpc: Secondary CPUs must set cpu_callin_map after setting active and online

    Linus Torvalds
     
  • I'm leaving Red Hat at the end of December 2014, so remove all
    references to my soon-to-be-dead address.

    (There are some references left in the tree, that need additional
    changes, I'll send those through the AGP maintainers).

    Signed-off-by: Dave Jones
    Signed-off-by: Linus Torvalds

    Dave Jones
     

19 Dec, 2014

35 commits

  • Commit 85c116a6cb91 ("perf callchain: Make get_srcline fall back to sym+offset")
    introduces asprintf() call and matches '%ld' to a u64 argument, which is
    incorrect on ARM:

    CC /home/wn/util/srcline.o
    util/srcline.c: In function 'get_srcline':
    util/srcline.c:297:6: error: format '%ld' expects argument of type 'long int', but argument 4 has type 'u64' [-Werror=format]
    cc1: all warnings being treated as errors
    make[1]: *** [/home/wn/util/srcline.o] Error 1

    In addition, all users of get_srcline() use u64 addr, and libbfd
    also use 64 bit bfd_vma as address. This patch also fix
    prototype of get_srcline() and addr2line() to use u64 addr
    instead of unsigned long.

    Signed-off-by: Wang Nan
    Acked-by: Namhyung Kim
    Cc:
    Cc:
    Cc:
    Cc:
    Cc:
    Link: http://lkml.kernel.org/r/1418710746-35943-1-git-send-email-wangnan0@huawei.com
    Signed-off-by: Ingo Molnar

    Wang Nan
     
  • Pull module updates from Rusty Russell:
    "The exciting thing here is the getting rid of stop_machine on module
    removal. This is possible by using a simple atomic_t for the counter,
    rather than our fancy per-cpu counter: it turns out that no one is
    doing a module increment per net packet, so the slowdown should be in
    the noise"

    * tag 'modules-next-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux:
    param: do not set store func without write perm
    params: cleanup sysfs allocation
    kernel:module Fix coding style errors and warnings.
    module: Remove stop_machine from module unloading
    module: Replace module_ref with atomic_t refcnt
    lib/bug: Use RCU list ops for module_bug_list
    module: Unlink module with RCU synchronizing instead of stop_machine
    module: Wait for RCU synchronizing before releasing a module

    Linus Torvalds
     
  • Pull virtio fixes from Michael S Tsirkin:
    "virtio 1.0 related fixes

    Most importantly, this fixes using virtio_pci as a module.

    Further, the big virtio 1.0 conversion missed a couple of places.
    This fixes them up.

    This isn't 100% sparse-clean yet because on many architectures
    get_user triggers sparse warnings when used with __bitwise tag (when
    same tag is on both pointer and value read).

    I posted a patchset to fix it up by adding __force on all arches that
    don't already have it (many do), when that's merged these warnings
    will go away"

    * tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost:
    virtio_pci: restore module attributes
    mic/host: fix up virtio 1.0 APIs
    vringh: update for virtio 1.0 APIs
    vringh: 64 bit features
    tools/virtio: add virtio 1.0 in vringh_test
    tools/virtio: add virtio 1.0 in virtio_test
    tools/virtio: enable -Werror
    tools/virtio: 64 bit features
    tools/virtio: fix vringh test
    tools/virtio: more stubs
    virtio: core support for config generation
    virtio_pci: add VIRTIO_PCI_NO_LEGACY
    virtio_pci: move probe to common file
    virtio_pci_common.h: drop VIRTIO_PCI_NO_LEGACY
    virtio_config: fix virtio_cread_bytes
    virtio: set VIRTIO_CONFIG_S_FEATURES_OK on restore

    Linus Torvalds
     
  • Pull more ACPI and power management updates from Rafael Wysocki:
    "These are regression fixes (leds-gpio, ACPI backlight driver,
    operating performance points library, ACPI device enumeration
    messages, cpupower tool), other bug fixes (ACPI EC driver, ACPI device
    PM), some cleanups in the operating performance points (OPP)
    framework, continuation of CONFIG_PM_RUNTIME elimination, a couple of
    minor intel_pstate driver changes, a new MAINTAINERS entry for it and
    an ACPI fan driver change needed for better support of thermal
    management in user space.

    Specifics:

    - Fix a regression in leds-gpio introduced by a recent commit that
    inadvertently changed the name of one of the properties used by the
    driver (Fabio Estevam).

    - Fix a regression in the ACPI backlight driver introduced by a
    recent fix that missed one special case that had to be taken into
    account (Aaron Lu).

    - Drop the level of some new kernel messages from the ACPI core
    introduced by a recent commit to KERN_DEBUG which they should have
    used from the start and drop some other unuseful KERN_ERR messages
    printed by ACPI (Rafael J Wysocki).

    - Revert an incorrect commit modifying the cpupower tool (Prarit
    Bhargava).

    - Fix two regressions introduced by recent commits in the OPP library
    and clean up some existing minor issues in that code (Viresh
    Kumar).

    - Continue to replace CONFIG_PM_RUNTIME with CONFIG_PM throughout the
    tree (or drop it where that can be done) in order to make it
    possible to eliminate CONFIG_PM_RUNTIME (Rafael J Wysocki, Ulf
    Hansson, Ludovic Desroches).

    There will be one more "CONFIG_PM_RUNTIME removal" batch after this
    one, because some new uses of it have been introduced during the
    current merge window, but that should be sufficient to finally get
    rid of it.

    - Make the ACPI EC driver more robust against race conditions related
    to GPE handler installation failures (Lv Zheng).

    - Prevent the ACPI device PM core code from attempting to disable
    GPEs that it has not enabled which confuses ACPICA and makes it
    report errors unnecessarily (Rafael J Wysocki).

    - Add a "force" command line switch to the intel_pstate driver to
    make it possible to override the blacklisting of some systems in
    that driver if needed (Ethan Zhao).

    - Improve intel_pstate code documentation and add a MAINTAINERS entry
    for it (Kristen Carlson Accardi).

    - Make the ACPI fan driver create cooling device interfaces witn
    names that reflect the IDs of the ACPI device objects they are
    associated with, except for "generic" ACPI fans (PNP ID "PNP0C0B").

    That's necessary for user space thermal management tools to be able
    to connect the fans with the parts of the system they are supposed
    to be cooling properly. From Srinivas Pandruvada"

    * tag 'pm+acpi-3.19-rc1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (32 commits)
    MAINTAINERS: add entry for intel_pstate
    ACPI / video: update the skip case for acpi_video_device_in_dod()
    power / PM: Eliminate CONFIG_PM_RUNTIME
    NFC / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
    SCSI / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
    ACPI / EC: Fix unexpected ec_remove_handlers() invocations
    Revert "tools: cpupower: fix return checks for sysfs_get_idlestate_count()"
    tracing / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
    x86 / PM: Replace CONFIG_PM_RUNTIME in io_apic.c
    PM: Remove the SET_PM_RUNTIME_PM_OPS() macro
    mmc: atmel-mci: use SET_RUNTIME_PM_OPS() macro
    PM / Kconfig: Replace PM_RUNTIME with PM in dependencies
    ARM / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
    sound / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
    phy / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
    video / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
    tty / PM: Replace CONFIG_PM_RUNTIME with CONFIG_PM
    spi: Replace CONFIG_PM_RUNTIME with CONFIG_PM
    ACPI / PM: Do not disable wakeup GPEs that have not been enabled
    ACPI / utils: Drop error messages from acpi_evaluate_reference()
    ...

    Linus Torvalds
     
  • …/linux-platform-drivers-x86

    Pull x86 platform driver update from Darren Hart:
    - thinkpad-acpi: Switch to software mute, cleanups
    - acerhdf: Bang-bang thermal governor, new models, cleanups
    - dell-laptop: New keyboard backlight support and documentation
    - toshiba_acpi: Keyboard backlight updates, hotkey handling
    - dell-wmi: Keypress filtering, WMI event processing
    - eeepc-laptop: Multiple cleanups, improved error handling, documentation
    - hp_wireless: Inform the user if hp_wireless_input_setup()/add() fails
    - misc: Code cleanups, quirks, various new IDs

    * tag 'platform-drivers-x86-v3.19-1' of git://git.infradead.org/users/dvhart/linux-platform-drivers-x86: (33 commits)
    platform/x86/acerhdf: Still depends on THERMAL
    Documentation: Add entry for dell-laptop sysfs interface
    acpi: Remove _OSI(Linux) for ThinkPads
    thinkpad-acpi: Try to use full software mute control
    acerhdf: minor clean up
    acerhdf: added critical trip point
    acerhdf: Use bang-bang thermal governor
    acerhdf: Adding support for new models
    acerhdf: Adding support for "manual mode"
    dell-smo8800: Add more ACPI ids and change description of driver
    platform: x86: dell-laptop: Add support for keyboard backlight
    toshiba_acpi: Add keyboard backlight mode change event
    toshiba_acpi: Change notify funtion to handle more events
    toshiba_acpi: Move hotkey enabling code to its own function
    dell-wmi: Don't report keypresses on keybord illumination change
    dell-wmi: Don't report keypresses for radio state changes
    hp_wireless: Inform the user if hp_wireless_input_setup()/add() fails
    toshiba-acpi: Add missing ID (TOS6207)
    Sony-laptop: Deletion of an unnecessary check before the function call "pci_dev_put"
    platform: x86: Deletion of checks before backlight_device_unregister()
    ...

    Linus Torvalds
     
  • Pull small watchdog update from Wim Van Sebroeck:
    - fix the argument of watchdog_active() in imx2_wdt
    - Add power management support to the imx2_wdt watchdog.

    * git://www.linux-watchdog.org/linux-watchdog:
    watchdog: imx2_wdt: Fix the argument of watchdog_active()
    watchdog: imx2_wdt: Add power management support.

    Linus Torvalds
     
  • Pull second set of media updates from Mauro Carvalho Chehab:

    - Move drivers for really old legacy hardware to staging. Those are
    using obsolete media kAPIs and are for hardware that nobody uses for
    years. Simply not worth porting them to the new kAPIs. Of course,
    if anyone pops up to fix, we can move them back from there

    - While not too late, do some API fixups at the new colorspace API,
    added for v3.19

    - Some improvements for rcar_vin driver

    - Some fixups at cx88 and vivid drivers

    - Some Documentation fixups

    * tag 'media/v3.19-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media:
    [media] bq/c-qcam, w9966, pms: move to staging in preparation for removal
    [media] tlg2300: move to staging in preparation for removal
    [media] vino/saa7191: move to staging in preparation for removal
    [media] MAINTAINERS: vivi -> vivid
    [media] cx88: remove leftover start_video_dma() call
    [media] cx88: add missing alloc_ctx support
    [media] v4l2-ioctl: WARN_ON if querycap didn't fill device_caps
    [media] vivid: fix CROP_BOUNDS typo for video output
    [media] DocBook media: update version number and document changes
    [media] vivid.txt: document new controls
    [media] DocBook media: add missing ycbcr_enc and quantization fields
    [media] v4l2-mediabus.h: use two __u16 instead of two __u32
    [media] rcar_vin: Fix interrupt enable in progressive
    [media] rcar_vin: Enable VSYNC field toggle mode
    [media] rcar_vin: Add scaling support
    [media] rcar_vin: Add DT support for r8a7793 and r8a7794 SoCs
    [media] rcar_vin: Add YUYV capture format support

    Linus Torvalds
     
  • Pull infiniband updates from Roland Dreier:
    "Main batch of InfiniBand/RDMA changes for 3.19:

    - On-demand paging support in core midlayer and mlx5 driver. This
    lets userspace create non-pinned memory regions and have the
    adapter HW trigger page faults.
    - iSER and IPoIB updates and fixes.
    - Low-level HW driver updates for cxgb4, mlx4 and ocrdma.
    - Other miscellaneous fixes"

    * tag 'rdma-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland/infiniband: (56 commits)
    IB/mlx5: Implement on demand paging by adding support for MMU notifiers
    IB/mlx5: Add support for RDMA read/write responder page faults
    IB/mlx5: Handle page faults
    IB/mlx5: Page faults handling infrastructure
    IB/mlx5: Add mlx5_ib_update_mtt to update page tables after creation
    IB/mlx5: Changes in memory region creation to support on-demand paging
    IB/mlx5: Implement the ODP capability query verb
    mlx5_core: Add support for page faults events and low level handling
    mlx5_core: Re-add MLX5_DEV_CAP_FLAG_ON_DMND_PG flag
    IB/srp: Allow newline separator for connection string
    IB/core: Implement support for MMU notifiers regarding on demand paging regions
    IB/core: Add support for on demand paging regions
    IB/core: Add flags for on demand paging support
    IB/core: Add support for extended query device caps
    IB/mlx5: Add function to read WQE from user-space
    IB/core: Add umem function to read data from user-space
    IB/core: Replace ib_umem's offset field with a full address
    IB/mlx5: Enhance UMR support to allow partial page table update
    IB/mlx5: Remove per-MR pas and dma pointers
    RDMA/ocrdma: Always resolve destination mac from GRH for UD QPs
    ...

    Linus Torvalds
     
  • Merge misc patches from Andrew Morton:
    "A few stragglers"

    * emailed patches from Andrew Morton :
    tools/testing/selftests/Makefile: alphasort the TARGETS list
    mm/zsmalloc: adjust order of functions
    ocfs2: fix journal commit deadlock
    ocfs2/dlm: fix race between dispatched_work and dlm_lockres_grab_inflight_worker
    ocfs2: reflink: fix slow unlink for refcounted file
    mm/memory.c:do_shared_fault(): add comment
    .mailmap: Santosh Shilimkar has moved
    .mailmap: update akpm@osdl.org
    lib/show_mem.c: add cma reserved information
    fs/proc/meminfo.c: include cma info in proc/meminfo
    mm: cma: split cma-reserved in dmesg log
    hfsplus: fix longname handling
    mm/mempolicy.c: remove unnecessary is_valid_nodemask()

    Linus Torvalds
     
  • This list is supposed to be sorted, to reduce patch collisions.

    Cc: Shuah Khan
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • Currently functions in zsmalloc.c does not arranged in a readable and
    reasonable sequence. With the more and more functions added, we may
    meet below inconvenience. For example:

    Current functions:

    void zs_init()
    {
    }

    static void get_maxobj_per_zspage()
    {
    }

    Then I want to add a func_1() which is called from zs_init(), and this
    new added function func_1() will used get_maxobj_per_zspage() which is
    defined below zs_init().

    void func_1()
    {
    get_maxobj_per_zspage()
    }

    void zs_init()
    {
    func_1()
    }

    static void get_maxobj_per_zspage()
    {
    }

    This will cause compiling issue. So we must add a declaration:

    static void get_maxobj_per_zspage();

    before func_1() if we do not put get_maxobj_per_zspage() before
    func_1().

    In addition, puting module_[init|exit] functions at the bottom of the
    file conforms to our habit.

    So, this patch ajusts function sequence as:

    /* helper functions */
    ...
    obj_location_to_handle()
    ...

    /* Some exported functions */
    ...

    zs_map_object()
    zs_unmap_object()

    zs_malloc()
    zs_free()

    zs_init()
    zs_exit()

    Signed-off-by: Ganesh Mahendran
    Cc: Nitin Gupta
    Acked-by: Minchan Kim
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ganesh Mahendran
     
  • For buffer write, page lock will be got in write_begin and released in
    write_end, in ocfs2_write_end_nolock(), before it unlock the page in
    ocfs2_free_write_ctxt(), it calls ocfs2_run_deallocs(), this will ask
    for the read lock of journal->j_trans_barrier. Holding page lock and
    ask for journal->j_trans_barrier breaks the locking order.

    This will cause a deadlock with journal commit threads, ocfs2cmt will
    get write lock of journal->j_trans_barrier first, then it wakes up
    kjournald2 to do the commit work, at last it waits until done. To
    commit journal, kjournald2 needs flushing data first, it needs get the
    cache page lock.

    Since some ocfs2 cluster locks are holding by write process, this
    deadlock may hung the whole cluster.

    unlock pages before ocfs2_run_deallocs() can fix the locking order, also
    put unlock before ocfs2_commit_trans() to make page lock is unlocked
    before j_trans_barrier to preserve unlocking order.

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

    Junxiao Bi
     
  • Commit ac4fef4d23ed ("ocfs2/dlm: do not purge lockres that is queued for
    assert master") may have the following possible race case:

    dlm_dispatch_assert_master dlm_wq
    ========================================================================
    queue_work(dlm->quedlm_worker,
    &dlm->dispatched_work);
    dispatch work,
    dlm_lockres_drop_inflight_worker
    *BUG_ON(res->inflight_assert_workers == 0)*
    dlm_lockres_grab_inflight_worker
    inflight_assert_workers++

    So ensure inflight_assert_workers to be increased first.

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

    Joseph Qi
     
  • When running ocfs2 test suite multiple nodes reflink stress test, for a
    4 nodes cluster, every unlink() for refcounted file needs about 700s.

    The slow unlink is caused by the contention of refcount tree lock since
    all nodes are unlink files using the same refcount tree. When the
    unlinking file have many extents(over 1600 in our test), most of the
    extents has refcounted flag set. In ocfs2_commit_truncate(), it will
    execute the following call trace for every extents. This means it needs
    get and released refcount tree lock about 1600 times. And when several
    nodes are do this at the same time, the performance will be very low.

    ocfs2_remove_btree_range()
    -- ocfs2_lock_refcount_tree()
    ---- ocfs2_refcount_lock()
    ------ __ocfs2_cluster_lock()

    ocfs2_refcount_lock() is costly, move it to ocfs2_commit_truncate() to
    do lock/unlock once can improve a lot performance.

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

    Junxiao Bi
     
  • Belatedly document the changes in commit f0c6d4d295e4 ("mm: introduce
    do_shared_fault() and drop do_fault()").

    Cc: Andi Kleen
    Cc: Bob Liu
    Cc: Dave Hansen
    Cc: "Kirill A. Shutemov"
    Cc: Matthew Wilcox
    Cc: Mel Gorman
    Cc: Naoya Horiguchi
    Cc: Rik van Riel
    Cc: Sasha Levin
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • Add my new email address along with kernel.org email id

    Signed-off-by: Santosh Shilimkar
    Signed-off-by: Santosh Shilimkar
    Cc: Joe Perches
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Santosh Shilimkar
     
  • Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrew Morton
     
  • Add cma reserved information which is currently shown as a part of total
    reserved only. This patch is continuation of our previous cma patches
    related to this.

    https://lkml.org/lkml/2014/10/20/64
    https://lkml.org/lkml/2014/10/22/383

    [akpm@linux-foundation.org: remove hopefully-unneeded ifdefs]
    Signed-off-by: Vishnu Pratap Singh
    Cc: David Rientjes
    Cc: KOSAKI Motohiro
    Cc: Mel Gorman
    Cc: Xishi Qiu
    Cc: Pintu Kumar
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Vishnu Pratap Singh
     
  • This patch include CMA info (CMATotal, CMAFree) in /proc/meminfo.
    Currently, in a CMA enabled system, if somebody wants to know the total
    CMA size declared, there is no way to tell, other than the dmesg or
    /var/log/messages logs.

    With this patch we are showing the CMA info as part of meminfo, so that it
    can be determined at any point of time. This will be populated only when
    CMA is enabled.

    Below is the sample output from a ARM based device with RAM:512MB and CMA:16MB.

    MemTotal: 471172 kB
    MemFree: 111712 kB
    MemAvailable: 271172 kB
    .
    .
    .
    CmaTotal: 16384 kB
    CmaFree: 6144 kB

    This patch also fix below checkpatch errors that were found during these changes.

    ERROR: space required after that ',' (ctx:ExV)
    199: FILE: fs/proc/meminfo.c:199:
    + ,atomic_long_read(&num_poisoned_pages) << (PAGE_SHIFT - 10)
    ^

    ERROR: space required after that ',' (ctx:ExV)
    202: FILE: fs/proc/meminfo.c:202:
    + ,K(global_page_state(NR_ANON_TRANSPARENT_HUGEPAGES) *
    ^

    ERROR: space required after that ',' (ctx:ExV)
    206: FILE: fs/proc/meminfo.c:206:
    + ,K(totalcma_pages)
    ^

    total: 3 errors, 0 warnings, 2 checks, 236 lines checked

    Signed-off-by: Pintu Kumar
    Signed-off-by: Vishnu Pratap Singh
    Acked-by: Michal Nazarewicz
    Cc: Rafael Aquini
    Cc: Jerome Marchand
    Cc: Marek Szyprowski
    Cc: Joonsoo Kim
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Pintu Kumar
     
  • When the system boots up, in the dmesg logs we can see the memory
    statistics along with total reserved as below. Memory: 458840k/458840k
    available, 65448k reserved, 0K highmem

    When CMA is enabled, still the total reserved memory remains the same.
    However, the CMA memory is not considered as reserved. But, when we see
    /proc/meminfo, the CMA memory is part of free memory. This creates
    confusion. This patch corrects the problem by properly subtracting the
    CMA reserved memory from the total reserved memory in dmesg logs.

    Below is the dmesg snapshot from an arm based device with 512MB RAM and
    12MB single CMA region.

    Before this change:
    Memory: 458840k/458840k available, 65448k reserved, 0K highmem

    After this change:
    Memory: 458840k/458840k available, 53160k reserved, 12288k cma-reserved, 0K highmem

    Signed-off-by: Pintu Kumar
    Signed-off-by: Vishnu Pratap Singh
    Acked-by: Michal Nazarewicz
    Cc: Rafael Aquini
    Cc: Jerome Marchand
    Cc: Marek Szyprowski
    Cc: Joonsoo Kim
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Pintu Kumar
     
  • Longname is not correctly handled by hfsplus driver. If an attempt to
    create a longname(>255) file/directory is made, it succeeds by creating a
    file/directory with HFSPLUS_MAX_STRLEN and incorrect catalog key. Thus
    leaving the volume in an inconsistent state. This patch fixes this issue.

    Although lookup is always called first to create a negative entry, so just
    doing a check in lookup would probably fix this issue. I choose to
    propagate error to other iops as well.

    Please NOTE: I have factored out hfsplus_cat_build_key_with_cnid from
    hfsplus_cat_build_key, to avoid unncessary branching.

    Thanks a lot.

    TEST:
    ------
    dir="TEST_DIR"
    cdir=`pwd`
    name255="_123456789_123456789_123456789_123456789_123456789_123456789\
    _123456789_123456789_123456789_123456789_123456789_123456789_123456789\
    _123456789_123456789_123456789_123456789_123456789_123456789_123456789\
    _123456789_123456789_123456789_123456789_123456789_1234"
    name256="${name255}5"

    mkdir $dir
    cd $dir
    touch $name255
    rm -f $name255
    touch $name256
    ls -la
    cd $cdir
    rm -rf $dir

    RESULT:
    -------
    [sougata@ultrabook tmp]$ cdir=`pwd`
    [sougata@ultrabook tmp]$
    name255="_123456789_123456789_123456789_123456789_123456789_123456789\
    > _123456789_123456789_123456789_123456789_123456789_123456789_123456789\
    > _123456789_123456789_123456789_123456789_123456789_123456789_123456789\
    > _123456789_123456789_123456789_123456789_123456789_1234"
    [sougata@ultrabook tmp]$ name256="${name255}5"
    [sougata@ultrabook tmp]$
    [sougata@ultrabook tmp]$ mkdir $dir
    [sougata@ultrabook tmp]$ cd $dir
    [sougata@ultrabook TEST_DIR]$ touch $name255
    [sougata@ultrabook TEST_DIR]$ rm -f $name255
    [sougata@ultrabook TEST_DIR]$ touch $name256
    [sougata@ultrabook TEST_DIR]$ ls -la
    ls: cannot access
    _123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_1234:
    No such file or directory
    total 0
    drwxrwxr-x 1 sougata sougata 3 Feb 20 19:56 .
    drwxrwxrwx 1 root root 6 Feb 20 19:56 ..
    -????????? ? ? ? ? ?
    _123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_123456789_1234
    [sougata@ultrabook TEST_DIR]$ cd $cdir
    [sougata@ultrabook tmp]$ rm -rf $dir
    rm: cannot remove `TEST_DIR': Directory not empty

    -ENAMETOOLONG returned from hfsplus_asc2uni was not propaged to iops.
    This allowed hfsplus to create files/directories with HFSPLUS_MAX_STRLEN
    and incorrect keys, leaving the FS in an inconsistent state. This patch
    fixes this issue.

    Signed-off-by: Sougata Santra
    Reviewed-by: Christoph Hellwig
    Cc: Vyacheslav Dubeyko
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Sougata Santra
     
  • When nodes is true, nsc->mask2 has already been filtered by nsc->mask1,
    which has already factored in node_states[N_MEMORY].

    Signed-off-by: Zhihui Zhang
    Cc: Mel Gorman
    Cc: Oleg Nesterov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Zhihui Zhang
     
  • Pull networking fixes from David Miller:

    1) Fix NBMA tunnel mac header handling in GRE, from Timo Teräs.

    2) Fix a NAPI race in the fec driver, from Nimrod Andy.

    3) The new IFF_VNET_LE bit is outside the size of the flags member it
    is stored in (which is 16-bits), store the state locally in the
    drivers. From Michael S Tsirkin.

    4) We are kicking the tires with the new wireless maintainership
    situation. Bluetooth fixes via Johan Hedberg, and mac80211 fixes
    from Johannes Berg.

    5) Fix locking and leaks in geneve driver, from Jesse Gross.

    6) Make netlink TX mmap code always copy, so we don't have to be
    potentially exposed to the user changing the underlying contents
    from underneath us.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (63 commits)
    be2net: Fix incorrect setting of tunnel offload flag in netdev features
    bnx2x: fix typos in "configure"
    xen-netback: support frontends without feature-rx-notify again
    MAINTAINERS: changes for wireless
    cxgb4: Fix decoding QSA module for ethtool get settings
    geneve: Fix races between socket add and release.
    geneve: Remove socket and offload handlers at destruction.
    netlink: Don't reorder loads/stores before marking mmap netlink frame as available
    netlink: Always copy on mmap TX.
    Bluetooth: Fix bug with filter in service discovery optimization
    mac80211: free management frame keys when removing station
    net: Disallow providing non zero VLAN ID for NIC drivers FDB add flow
    net/mlx4: Cache line CQE/EQE stride fixes
    net: fec: Fix NAPI race
    xen-netfront: use napi_complete() correctly to prevent Rx stalling
    ip_tunnel: Add missing validation of encap type to ip_tunnel_encap_setup()
    ip_tunnel: Add sanity checks to ip_tunnel_encap_add_ops()
    net: Allow FIXED_PHY to be modular.
    if_tun: drop broken IFF_VNET_LE
    macvtap: drop broken IFF_VNET_LE
    ...

    Linus Torvalds
     
  • Pull sparc fix from David Miller:
    "Sparc32 locking bug fix from Andreas Larsson"

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/sparc:
    sparc32: destroy_context() and switch_mm() needs to disable interrupts.

    Linus Torvalds
     
  • Pull arch/arc updates from Vineet Gupta:
    "Minor updates for ARC for 3.19"

    * tag 'arc-3.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/vgupta/arc:
    ARC: rename default defconfig
    ARC: [nsimosci] move peripherals to match model to FPGA
    ARC: document memory clobber in irq control macros
    ARC: R-M-W assist locks only needed for !LLSC
    ARC: add power management options

    Linus Torvalds
     
  • Pull arch/nios2 fixes from Ley Foon Tan:
    - add definition of ioremap_wc to io.h to fix build error from make
    allmodconfig
    - fix make defconfig
    - fix sparse error

    * tag 'nios2-fixes-v3.19' of git://git.rocketboards.org/linux-socfpga-next:
    nios2/uaccess: fix sparse errors
    nios2: enable "make defconfig"
    nios2: add definition of ioremap_wc to io.h

    Linus Torvalds
     
  • Pull KVM update from Paolo Bonzini:
    "3.19 changes for KVM:

    - spring cleaning: removed support for IA64, and for hardware-
    assisted virtualization on the PPC970

    - ARM, PPC, s390 all had only small fixes

    For x86:
    - small performance improvements (though only on weird guests)
    - usual round of hardware-compliancy fixes from Nadav
    - APICv fixes
    - XSAVES support for hosts and guests. XSAVES hosts were broken
    because the (non-KVM) XSAVES patches inadvertently changed the KVM
    userspace ABI whenever XSAVES was enabled; hence, this part is
    going to stable. Guest support is just a matter of exposing the
    feature and CPUID leaves support"

    * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (179 commits)
    KVM: move APIC types to arch/x86/
    KVM: PPC: Book3S: Enable in-kernel XICS emulation by default
    KVM: PPC: Book3S HV: Improve H_CONFER implementation
    KVM: PPC: Book3S HV: Fix endianness of instruction obtained from HEIR register
    KVM: PPC: Book3S HV: Remove code for PPC970 processors
    KVM: PPC: Book3S HV: Tracepoints for KVM HV guest interactions
    KVM: PPC: Book3S HV: Simplify locking around stolen time calculations
    arch: powerpc: kvm: book3s_paired_singles.c: Remove unused function
    arch: powerpc: kvm: book3s_pr.c: Remove unused function
    arch: powerpc: kvm: book3s.c: Remove some unused functions
    arch: powerpc: kvm: book3s_32_mmu.c: Remove unused function
    KVM: PPC: Book3S HV: Check wait conditions before sleeping in kvmppc_vcore_blocked
    KVM: PPC: Book3S HV: ptes are big endian
    KVM: PPC: Book3S HV: Fix inaccuracies in ICP emulation for H_IPI
    KVM: PPC: Book3S HV: Fix KSM memory corruption
    KVM: PPC: Book3S HV: Fix an issue where guest is paused on receiving HMI
    KVM: PPC: Book3S HV: Fix computation of tlbie operand
    KVM: PPC: Book3S HV: Add missing HPTE unlock
    KVM: PPC: BookE: Improve irq inject tracepoint
    arm/arm64: KVM: Require in-kernel vgic for the arch timers
    ...

    Linus Torvalds
     
  • Commit 69111bac42f5 ("powerpc: Replace __get_cpu_var uses") introduced
    compile breakage to the e500 target by introducing invalid automatically
    created C syntax.

    Fix up the breakage and make the code compile again.

    Signed-off-by: Alexander Graf
    Signed-off-by: Paolo Bonzini
    Signed-off-by: Linus Torvalds

    Alexander Graf
     
  • …kernel/git/jberg/mac80211

    Johannes Berg says:

    ====================
    pull-request: mac80211 2014-12-18

    Also from me a first pull request - we have a number of really old
    issues that happened to crop up now with new work (or just more testing)
    in the right areas as well as some small bugs newly introduced in 3.19.

    Let me know if there are any problems.
    ====================

    Signed-off-by: David S. Miller <davem@davemloft.net>

    David S. Miller
     
  • Johan Hedberg says:

    ====================
    pull request: bluetooth 2014-12-17

    Here's the first direct (i.e. skipping the wireless tree) bluetooth pull
    request for you, intended for 3.19. It's just one patch: a fix from
    Marcel for for remote service discovery filtering which also fixes a
    'used uninitialized' compiler warning.

    Please let me know if there are any issues pulling. Thanks.
    ====================

    Signed-off-by: David S. Miller

    David S. Miller
     
  • While reviewing the code of umount_tree I realized that when we append
    to a preexisting unmounted list we do not change pprev of the former
    first item in the list.

    Which means later in namespace_unlock hlist_del_init(&mnt->mnt_hash) on
    the former first item of the list will stomp unmounted.first leaving
    it set to some random mount point which we are likely to free soon.

    This isn't likely to hit, but if it does I don't know how anyone could
    track it down.

    [ This happened because we don't have all the same operations for
    hlist's as we do for normal doubly-linked lists. In particular,
    list_splice() is easy on our standard doubly-linked lists, while
    hlist_splice() doesn't exist and needs both start/end entries of the
    hlist. And commit 38129a13e6e7 incorrectly open-coded that missing
    hlist_splice().

    We should think about making these kinds of "mindless" conversions
    easier to get right by adding the missing hlist helpers - Linus ]

    Fixes: 38129a13e6e71f666e0468e99fdd932a687b4d7e switch mnt_hash to hlist
    Cc: stable@vger.kernel.org
    Signed-off-by: "Eric W. Biederman"
    Signed-off-by: Linus Torvalds

    Eric W. Biederman
     
  • An earlier commit to resolve an issue with encapsulation offloads missed
    setting a bit in the outer netdev features flag. This results in loss of TSO
    feature on a VxLAN interface.

    Fixes: 630f4b70 ("Export tunnel offloads only when a VxLAN tunnel is created")

    Signed-off-by: Sriharsha Basavapatna
    Signed-off-by: David S. Miller

    Sriharsha Basavapatna
     
  • Noticed when debugging ptp.

    Signed-off-by: Jiri Benc
    Signed-off-by: David S. Miller

    Jiri Benc
     
  • Commit bc96f648df1bbc2729abbb84513cf4f64273a1f1 (xen-netback: make
    feature-rx-notify mandatory) incorrectly assumed that there were no
    frontends in use that did not support this feature. But the frontend
    driver in MiniOS does not and since this is used by (qemu) stubdoms,
    these stopped working.

    Netback sort of works as-is in this mode except:

    - If there are no Rx requests and the internal Rx queue fills, only
    the drain timeout will wake the thread. The default drain timeout
    of 10 s would give unacceptable pauses.

    - If an Rx stall was detected and the internal Rx queue is drained,
    then the Rx thread would never wake.

    Handle these two cases (when feature-rx-notify is disabled) by:

    - Reducing the drain timeout to 30 ms.

    - Disabling Rx stall detection.

    Reported-by: John
    Tested-by: John
    Signed-off-by: David Vrabel
    Reviewed-by: Wei Liu
    Signed-off-by: David S. Miller

    David Vrabel
     
  • Load balancing can be triggered in the critical sections protected by
    srmmu_context_spinlock in destroy_context() and switch_mm() and can hang
    the cpu waiting for the rq lock of another cpu that in turn has called
    switch_mm hangning on srmmu_context_spinlock leading to deadlock.

    So, disable interrupt while taking srmmu_context_spinlock in
    destroy_context() and switch_mm() so we don't deadlock.

    See also commit 77b838fa1ef0 ("[SPARC64]: destroy_context() needs to disable
    interrupts.")

    Signed-off-by: Andreas Larsson
    Signed-off-by: David S. Miller

    Andreas Larsson