02 Mar, 2016

1 commit


18 Feb, 2016

1 commit


11 Feb, 2016

1 commit

  • When looking up the pool_workqueue to use for an unbound workqueue,
    workqueue assumes that the target CPU is always bound to a valid NUMA
    node. However, currently, when a CPU goes offline, the mapping is
    destroyed and cpu_to_node() returns NUMA_NO_NODE.

    This has always been broken but hasn't triggered often enough before
    874bbfe600a6 ("workqueue: make sure delayed work run in local cpu").
    After the commit, workqueue forcifully assigns the local CPU for
    delayed work items without explicit target CPU to fix a different
    issue. This widens the window where CPU can go offline while a
    delayed work item is pending causing delayed work items dispatched
    with target CPU set to an already offlined CPU. The resulting
    NUMA_NO_NODE mapping makes workqueue try to queue the work item on a
    NULL pool_workqueue and thus crash.

    While 874bbfe600a6 has been reverted for a different reason making the
    bug less visible again, it can still happen. Fix it by mapping
    NUMA_NO_NODE to the default pool_workqueue from unbound_pwq_by_node().
    This is a temporary workaround. The long term solution is keeping CPU
    -> NODE mapping stable across CPU off/online cycles which is being
    worked on.

    Signed-off-by: Tejun Heo
    Reported-by: Mike Galbraith
    Cc: Tang Chen
    Cc: Rafael J. Wysocki
    Cc: Len Brown
    Cc: stable@vger.kernel.org
    Link: http://lkml.kernel.org/g/1454424264.11183.46.camel@gmail.com
    Link: http://lkml.kernel.org/g/1453702100-2597-1-git-send-email-tangchen@cn.fujitsu.com

    Tejun Heo
     

10 Feb, 2016

3 commits

  • Workqueue used to guarantee local execution for work items queued
    without explicit target CPU. The guarantee is gone now which can
    break some usages in subtle ways. To flush out those cases, this
    patch implements a debug feature which forces round-robin CPU
    selection for all such work items.

    The debug feature defaults to off and can be enabled with a kernel
    parameter. The default can be flipped with a debug config option.

    If you hit this commit during bisection, please refer to 041bd12e272c
    ("Revert "workqueue: make sure delayed work run in local cpu"") for
    more information and ping me.

    Signed-off-by: Tejun Heo

    Tejun Heo
     
  • WORK_CPU_UNBOUND work items queued to a bound workqueue always run
    locally. This is a good thing normally, but not when the user has
    asked us to keep unbound work away from certain CPUs. Round robin
    these to wq_unbound_cpumask CPUs instead, as perturbation avoidance
    trumps performance.

    tj: Cosmetic and comment changes. WARN_ON_ONCE() dropped from empty
    (wq_unbound_cpumask AND cpu_online_mask). If we want that, it
    should be done when config changes.

    Signed-off-by: Mike Galbraith
    Signed-off-by: Tejun Heo

    Mike Galbraith
     
  • This reverts commit 874bbfe600a660cba9c776b3957b1ce393151b76.

    Workqueue used to implicity guarantee that work items queued without
    explicit CPU specified are put on the local CPU. Recent changes in
    timer broke the guarantee and led to vmstat breakage which was fixed
    by 176bed1de5bf ("vmstat: explicitly schedule per-cpu work on the CPU
    we need it to run on").

    vmstat is the most likely to expose the issue and it's quite possible
    that there are other similar problems which are a lot more difficult
    to trigger. As a preventive measure, 874bbfe600a6 ("workqueue: make
    sure delayed work run in local cpu") was applied to restore the local
    CPU guarnatee. Unfortunately, the change exposed a bug in timer code
    which got fixed by 22b886dd1018 ("timers: Use proper base migration in
    add_timer_on()"). Due to code restructuring, the commit couldn't be
    backported beyond certain point and stable kernels which only had
    874bbfe600a6 started crashing.

    The local CPU guarantee was accidental more than anything else and we
    want to get rid of it anyway. As, with the vmstat case fixed,
    874bbfe600a6 is causing more problems than it's fixing, it has been
    decided to take the chance and officially break the guarantee by
    reverting the commit. A debug feature will be added to force foreign
    CPU assignment to expose cases relying on the guarantee and fixes for
    the individual cases will be backported to stable as necessary.

    Signed-off-by: Tejun Heo
    Fixes: 874bbfe600a6 ("workqueue: make sure delayed work run in local cpu")
    Link: http://lkml.kernel.org/g/20160120211926.GJ10810@quack.suse.cz
    Cc: stable@vger.kernel.org
    Cc: Mike Galbraith
    Cc: Henrique de Moraes Holschuh
    Cc: Daniel Bilik
    Cc: Jan Kara
    Cc: Shaohua Li
    Cc: Sasha Levin
    Cc: Ben Hutchings
    Cc: Thomas Gleixner
    Cc: Daniel Bilik
    Cc: Jiri Slaby
    Cc: Michal Hocko

    Tejun Heo
     

30 Jan, 2016

1 commit

  • fca839c00a12 ("workqueue: warn if memory reclaim tries to flush
    !WQ_MEM_RECLAIM workqueue") implemented flush dependency warning which
    triggers if a PF_MEMALLOC task or WQ_MEM_RECLAIM workqueue tries to
    flush a !WQ_MEM_RECLAIM workquee.

    This assumes that workqueues marked with WQ_MEM_RECLAIM sit in memory
    reclaim path and making it depend on something which may need more
    memory to make forward progress can lead to deadlocks. Unfortunately,
    workqueues created with the legacy create*_workqueue() interface
    always have WQ_MEM_RECLAIM regardless of whether they are depended
    upon memory reclaim or not. These spurious WQ_MEM_RECLAIM markings
    cause spurious triggering of the flush dependency checks.

    WARNING: CPU: 0 PID: 6 at kernel/workqueue.c:2361 check_flush_dependency+0x138/0x144()
    workqueue: WQ_MEM_RECLAIM deferwq:deferred_probe_work_func is flushing !WQ_MEM_RECLAIM events:lru_add_drain_per_cpu
    ...
    Workqueue: deferwq deferred_probe_work_func
    [] (unwind_backtrace) from [] (show_stack+0x10/0x14)
    [] (show_stack) from [] (dump_stack+0x94/0xd4)
    [] (dump_stack) from [] (warn_slowpath_common+0x80/0xb0)
    [] (warn_slowpath_common) from [] (warn_slowpath_fmt+0x30/0x40)
    [] (warn_slowpath_fmt) from [] (check_flush_dependency+0x138/0x144)
    [] (check_flush_dependency) from [] (flush_work+0x50/0x15c)
    [] (flush_work) from [] (lru_add_drain_all+0x130/0x180)
    [] (lru_add_drain_all) from [] (migrate_prep+0x8/0x10)
    [] (migrate_prep) from [] (alloc_contig_range+0xd8/0x338)
    [] (alloc_contig_range) from [] (cma_alloc+0xe0/0x1ac)
    [] (cma_alloc) from [] (__alloc_from_contiguous+0x38/0xd8)
    [] (__alloc_from_contiguous) from [] (__dma_alloc+0x240/0x278)
    [] (__dma_alloc) from [] (arm_dma_alloc+0x54/0x5c)
    [] (arm_dma_alloc) from [] (dmam_alloc_coherent+0xc0/0xec)
    [] (dmam_alloc_coherent) from [] (ahci_port_start+0x150/0x1dc)
    [] (ahci_port_start) from [] (ata_host_start.part.3+0xc8/0x1c8)
    [] (ata_host_start.part.3) from [] (ata_host_activate+0x50/0x148)
    [] (ata_host_activate) from [] (ahci_host_activate+0x44/0x114)
    [] (ahci_host_activate) from [] (ahci_platform_init_host+0x1d8/0x3c8)
    [] (ahci_platform_init_host) from [] (tegra_ahci_probe+0x448/0x4e8)
    [] (tegra_ahci_probe) from [] (platform_drv_probe+0x50/0xac)
    [] (platform_drv_probe) from [] (driver_probe_device+0x214/0x2c0)
    [] (driver_probe_device) from [] (bus_for_each_drv+0x60/0x94)
    [] (bus_for_each_drv) from [] (__device_attach+0xb0/0x114)
    [] (__device_attach) from [] (bus_probe_device+0x84/0x8c)
    [] (bus_probe_device) from [] (deferred_probe_work_func+0x68/0x98)
    [] (deferred_probe_work_func) from [] (process_one_work+0x120/0x3f8)
    [] (process_one_work) from [] (worker_thread+0x38/0x55c)
    [] (worker_thread) from [] (kthread+0xdc/0xf4)
    [] (kthread) from [] (ret_from_fork+0x14/0x3c)

    Fix it by marking workqueues created via create*_workqueue() with
    __WQ_LEGACY and disabling flush dependency checks on them.

    Signed-off-by: Tejun Heo
    Reported-and-tested-by: Thierry Reding
    Link: http://lkml.kernel.org/g/20160126173843.GA11115@ulmo.nvidia.com
    Fixes: fca839c00a12 ("workqueue: warn if memory reclaim tries to flush !WQ_MEM_RECLAIM workqueue")

    Tejun Heo
     

25 Jan, 2016

11 commits

  • Linus Torvalds
     
  • Pull MIPS updates from Ralf Baechle:
    "This is the main pull request for MIPS for 4.5 plus some 4.4 fixes.

    The executive summary:

    - ATH79 platform improvments, use DT bindings for the ATH79 USB PHY.
    - Avoid useless rebuilds for zboot.
    - jz4780: Add NEMC, BCH and NAND device tree nodes
    - Initial support for the MicroChip's DT platform. As all the device
    drivers are missing this is still of limited use.
    - Some Loongson3 cleanups.
    - The unavoidable whitespace polishing.
    - Reduce clock skew when synchronizing the CPU cycle counters on CPU
    startup.
    - Add MIPS R6 fixes.
    - Lots of cleanups across arch/mips as fallout from KVM.
    - Lots of minor fixes and changes for IEEE 754-2008 support to the
    FPU emulator / fp-assist software.
    - Minor Ralink, BCM47xx and bcm963xx platform support improvments.
    - Support SMP on BCM63168"

    * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus: (84 commits)
    MIPS: zboot: Add support for serial debug using the PROM
    MIPS: zboot: Avoid useless rebuilds
    MIPS: BMIPS: Enable ARCH_WANT_OPTIONAL_GPIOLIB
    MIPS: bcm63xx: nvram: Remove unused bcm63xx_nvram_get_psi_size() function
    MIPS: bcm963xx: Update bcm_tag field image_sequence
    MIPS: bcm963xx: Move extended flash address to bcm_tag header file
    MIPS: bcm963xx: Move Broadcom BCM963xx image tag data structure
    MIPS: bcm63xx: nvram: Use nvram structure definition from header file
    MIPS: bcm963xx: Add Broadcom BCM963xx board nvram data structure
    MAINTAINERS: Add KVM for MIPS entry
    MIPS: KVM: Add missing newline to kvm_err()
    MIPS: Move KVM specific opcodes into asm/inst.h
    MIPS: KVM: Use cacheops.h definitions
    MIPS: Break down cacheops.h definitions
    MIPS: Use EXCCODE_ constants with set_except_vector()
    MIPS: Update trap codes
    MIPS: Move Cause.ExcCode trap codes to mipsregs.h
    MIPS: KVM: Make kvm_mips_{init,exit}() static
    MIPS: KVM: Refactor added offsetof()s
    MIPS: KVM: Convert EXPORT_SYMBOL to _GPL
    ...

    Linus Torvalds
     
  • …linux-platform-drivers-x86

    Pull x86 platform driver updates from Darren Hart:
    "Emergency travel prevented me from completing my final testing on this
    until today. Nothing here that couldn't wait until RC1 fixes, but I
    thought it best to get it out sooner rather than later as it does
    contain a build warning fix.

    Summary:

    A build warning fix, MAINTAINERS cleanup, and a new DMI quirk:

    ideapad-laptop:
    - Add Lenovo Yoga 700 to no_hw_rfkill dmi list

    MAINTAINERS:
    - Combine multiple telemetry entries

    intel_telemetry_debugfs:
    - Fix unused warnings in telemetry debugfs"

    * tag 'platform-drivers-x86-v4.5-2' of git://git.infradead.org/users/dvhart/linux-platform-drivers-x86:
    ideapad-laptop: Add Lenovo Yoga 700 to no_hw_rfkill dmi list
    MAINTAINERS: Combine multiple telemetry entries
    intel_telemetry_debugfs: Fix unused warnings in telemetry debugfs

    Linus Torvalds
     
  • Pull thermal management updates from Zhang Rui:
    "The top merge commit was re-generated yesterday because two topic
    branches were dropped from this pull request in the last minute due to
    some unaddressed comments. All the other material has been in
    linux-next for quite a while.

    Specifics:

    - Enhance thermal core to handle unexpected device cooling states
    after fresh boot and system resume. From Zhang Rui and Chen Yu.

    - Several fixes and cleanups on Rockchip and RCAR thermal drivers.
    From Caesar Wang and Kuninori Morimoto.

    - Add Broxton support for Intel processor thermal reporting device
    driver. From Amy Wiles"

    * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/rzhang/linux:
    thermal: trip_point_temp_store() calls thermal_zone_device_update()
    thermal: rcar: rcar_thermal_get_temp() return error if strange temp
    thermal: rcar: check irq possibility in rcar_thermal_irq_xxx()
    thermal: rcar: check every rcar_thermal_update_temp() return value
    thermal: rcar: move rcar_thermal_dt_ids to upside
    thermal: rockchip: Support the RK3399 SoCs in thermal driver
    thermal: rockchip: Support the RK3228 SoCs in thermal driver
    dt-bindings: rockchip-thermal: Support the RK3228/RK3399 SoCs compatible
    thermal: rockchip: fix a trivial typo
    Thermal: Enable Broxton SoC thermal reporting device
    thermal: constify pch_dev_ops structure
    Thermal: do thermal zone update after a cooling device registered
    Thermal: handle thermal zone device properly during system sleep
    Thermal: initialize thermal zone device correctly

    Linus Torvalds
     
  • Pull 9p updates from Eric Van Hensbergen:
    "Sorry for the last minute pull request, there's was a change that
    didn't get pulled into for-next until two weeks ago and I wanted to
    give it some bake time.

    Summary:

    Rework and error handling fixes, primarily in the fscatch and fd
    transports"

    * tag 'for-linus-4.5-merge-window' of git://git.kernel.org/pub/scm/linux/kernel/git/ericvh/v9fs:
    fs/9p: use fscache mutex rather than spinlock
    9p: trans_fd, bail out if recv fcall if missing
    9p: trans_fd, read rework to use p9_parse_header
    net/9p: Add device name details on error

    Linus Torvalds
     
  • Pull Ceph updates from Sage Weil:
    "The two main changes are aio support in CephFS, and a series that
    fixes several issues in the authentication key timeout/renewal code.

    On top of that are a variety of cleanups and minor bug fixes"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client:
    libceph: remove outdated comment
    libceph: kill off ceph_x_ticket_handler::validity
    libceph: invalidate AUTH in addition to a service ticket
    libceph: fix authorizer invalidation, take 2
    libceph: clear messenger auth_retry flag if we fault
    libceph: fix ceph_msg_revoke()
    libceph: use list_for_each_entry_safe
    ceph: use i_size_{read,write} to get/set i_size
    ceph: re-send AIO write request when getting -EOLDSNAP error
    ceph: Asynchronous IO support
    ceph: Avoid to propagate the invalid page point
    ceph: fix double page_unlock() in page_mkwrite()
    rbd: delete an unnecessary check before rbd_dev_destroy()
    libceph: use list_next_entry instead of list_entry_next
    ceph: ceph_frag_contains_value can be boolean
    ceph: remove unused functions in ceph_frag.h

    Linus Torvalds
     
  • Pull SMB3 fixes from Steve French:
    "A collection of CIFS/SMB3 fixes.

    It includes a couple bug fixes, a few for improved debugging of
    cifs.ko and some improvements to the way cifs does key generation.

    I do have some additional bug fixes I expect in the next week or two
    (to address a problem found by xfstest, and some fixes for SMB3.11
    dialect, and a couple patches that just came in yesterday that I am
    reviewing)"

    * 'for-next' of git://git.samba.org/sfrench/cifs-2.6:
    cifs_dbg() outputs an uninitialized buffer in cifs_readdir()
    cifs: fix race between call_async() and reconnect()
    Prepare for encryption support (first part). Add decryption and encryption key generation. Thanks to Metze for helping with this.
    cifs: Allow using O_DIRECT with cache=loose
    cifs: Make echo interval tunable
    cifs: Check uniqueid for SMB2+ and return -ESTALE if necessary
    Print IP address of unresponsive server
    cifs: Ratelimit kernel log messages

    Linus Torvalds
     
  • Like the Yoga 900 models the Lenovo Yoga 700 does not have a
    hw rfkill switch, and trying to read the hw rfkill switch through the
    ideapad module causes it to always reported blocking breaking wifi.

    This commit adds the Lenovo Yoga 700 to the no_hw_rfkill dmi list, fixing
    the wifi breakage.

    BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1295272
    Tested-by:
    Cc: stable@vger.kernel.org
    Signed-off-by: Josh Boyer
    Signed-off-by: Darren Hart

    Josh Boyer
     
  • This patch combines all the telemetry file entries in MAINTAINERS via
    wildcard.

    Signed-off-by: Souvik Kumar Chakravarty
    Signed-off-by: Darren Hart

    Souvik Kumar Chakravarty
     
  • This patch fixes compile time warnings when CONFIG_PM_SLEEP
    is undefined. In this case sleep related counters are unused.

    Signed-off-by: Souvik Kumar Chakravarty
    Signed-off-by: Darren Hart

    Souvik Kumar Chakravarty
     
  • If we detect that there is nothing to do just set the flag and do not
    check if it was already set before. Races really do not matter. If the
    flag is set by any code then the shepherd will start dealing with the
    situation and reenable the vmstat workers when necessary again.

    Since commit 0eb77e988032 ("vmstat: make vmstat_updater deferrable again
    and shut down on idle") quiet_vmstat might update cpu_stat_off and mark
    a particular cpu to be handled by vmstat_shepherd. This might trigger a
    VM_BUG_ON in vmstat_update because the work item might have been
    sleeping during the idle period and see the cpu_stat_off updated after
    the wake up. The VM_BUG_ON is therefore misleading and no more
    appropriate. Moreover it doesn't really suite any protection from real
    bugs because vmstat_shepherd will simply reschedule the vmstat_work
    anytime it sees a particular cpu set or vmstat_update would do the same
    from the worker context directly. Even when the two would race the
    result wouldn't be incorrect as the counters update is fully idempotent.

    Reported-by: Sasha Levin
    Signed-off-by: Christoph Lameter
    Acked-by: Michal Hocko
    Cc: Johannes Weiner
    Cc: Tetsuo Handa
    Cc: Andrew Morton
    Signed-off-by: Linus Torvalds

    Christoph Lameter
     

24 Jan, 2016

22 commits

  • Ralf Baechle
     
  • As most platforms implement the PROM serial interface prom_putchar()
    add a simple bridge to allow re-using this code for zboot.

    Signed-off-by: Alban Bedel
    Cc: Alex Smith
    Cc: Andrew Bresticker
    Cc: Wu Zhangjin
    Cc: linux-mips@linux-mips.org
    Cc: linux-kernel@vger.kernel.org
    Patchwork: https://patchwork.linux-mips.org/patch/11811/
    Signed-off-by: Ralf Baechle

    Alban Bedel
     
  • Add dummy.o to the targets list, and fill targets automatically from
    $(vmlinuzobjs) to avoid having to maintain two lists.

    When building with XZ compression copy ashldi3.c to the build
    directory to use a different object file for the kernel and zboot.
    Without this the same object file need to be build with different
    flags which cause a rebuild at every run.

    Signed-off-by: Alban Bedel
    Cc: linux-mips@linux-mips.org
    Cc: Alex Smith
    Cc: Wu Zhangjin
    Cc: Andrew Bresticker
    Cc: linux-kernel@vger.kernel.org
    Patchwork: https://patchwork.linux-mips.org/patch/11810/
    Signed-off-by: Ralf Baechle

    Alban Bedel
     
  • Allow BMIPS_GENERIC supported platforms to build GPIO controller
    drivers.

    Signed-off-by: Florian Fainelli
    Reviewed-by: Dragan Stancevic
    Cc: cernekee@gmail.com
    Cc: jaedon.shin@gmail.com
    Cc: gregory.0xf0@gmail.com
    Cc: Florian Fainelli
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/12019/
    Signed-off-by: Ralf Baechle

    Florian Fainelli
     
  • Remove bcm63xx_nvram_get_psi_size() as it now has no users.

    Signed-off-by: Simon Arlott
    Cc: David Woodhouse
    Cc: Brian Norris
    Cc: Kevin Cernekee
    Cc: Florian Fainelli
    Cc: Jonas Gorski
    Cc: Linux Kernel Mailing List
    Cc: MIPS Mailing List
    Cc: MTD Maling List
    Patchwork: https://patchwork.linux-mips.org/patch/11836/
    Signed-off-by: Ralf Baechle

    Simon Arlott
     
  • The "dual_image" and "inactive_flag" fields should be merged into a single
    "image_sequence" field.

    Signed-off-by: Simon Arlott
    Cc: David Woodhouse
    Cc: Brian Norris
    Cc: Kevin Cernekee
    Cc: Florian Fainelli
    Cc: Jonas Gorski
    Cc: Linux Kernel Mailing List
    Cc: MIPS Mailing List
    Cc: MTD Maling List
    Patchwork: https://patchwork.linux-mips.org/patch/11834/
    Signed-off-by: Ralf Baechle

    Simon Arlott
     
  • The extended flash address needs to be subtracted from bcm_tag flash
    image offsets. Move this value to the bcm_tag header file.

    Renamed define name to consistently use bcm963xx for flash layout
    which should be considered a property of the board and not the SoC
    (i.e. bcm63xx could theoretically be used on a board without CFE
    or any flash).

    Signed-off-by: Simon Arlott
    Cc: David Woodhouse
    Cc: Brian Norris
    Cc: Kevin Cernekee
    Cc: Florian Fainelli
    Cc: Jonas Gorski
    Cc: Linux Kernel Mailing List
    Cc: MIPS Mailing List
    Cc: MTD Maling List
    Patchwork: https://patchwork.linux-mips.org/patch/11833/
    Signed-off-by: Ralf Baechle

    Simon Arlott
     
  • Move Broadcom BCM963xx image tag data structure to include/linux/
    so that drivers outside of mach-bcm63xx can use it.

    Signed-off-by: Simon Arlott
    Cc: David Woodhouse
    Cc: Brian Norris
    Cc: Kevin Cernekee
    Cc: Florian Fainelli
    Cc: Jonas Gorski
    Cc: Linux Kernel Mailing List
    Cc: MIPS Mailing List
    Cc: MTD Maling List
    Patchwork: https://patchwork.linux-mips.org/patch/11832/
    Signed-off-by: Ralf Baechle

    Simon Arlott
     
  • Use the common definition of the nvram structure from the header file
    include/linux/bcm963xx_nvram.h instead of maintaining a separate copy.

    Read the version 5 size of nvram data from memory and then call the
    new checksum verification function from the header file.

    Signed-off-by: Simon Arlott
    Cc: David Woodhouse
    Cc: Brian Norris
    Cc: Kevin Cernekee
    Cc: Florian Fainelli
    Cc: Jonas Gorski
    Cc: Linux Kernel Mailing List
    Cc: MIPS Mailing List
    Cc: MTD Maling List
    Patchwork: https://patchwork.linux-mips.org/patch/11831/
    Signed-off-by: Ralf Baechle

    Simon Arlott
     
  • Broadcom BCM963xx boards have multiple nvram variants across different
    SoCs with additional checksum fields added whenever the size of the
    nvram was extended.

    Add this structure as a header file so that multiple drivers can use it.

    Signed-off-by: Simon Arlott
    Cc: David Woodhouse
    Cc: Brian Norris
    Cc: Kevin Cernekee
    Cc: Florian Fainelli
    Cc: Jonas Gorski
    Cc: Linux Kernel Mailing List
    Cc: MIPS Mailing List
    Cc: MTD Maling List
    Patchwork: https://patchwork.linux-mips.org/patch/11830/
    Signed-off-by: Ralf Baechle

    Simon Arlott
     
  • Pull rdma updates from Doug Ledford:
    "Initial roundup of 4.5 merge window patches

    - Remove usage of ib_query_device and instead store attributes in
    ib_device struct

    - Move iopoll out of block and into lib, rename to irqpoll, and use
    in several places in the rdma stack as our new completion queue
    polling library mechanism. Update the other block drivers that
    already used iopoll to use the new mechanism too.

    - Replace the per-entry GID table locks with a single GID table lock

    - IPoIB multicast cleanup

    - Cleanups to the IB MR facility

    - Add support for 64bit extended IB counters

    - Fix for netlink oops while parsing RDMA nl messages

    - RoCEv2 support for the core IB code

    - mlx4 RoCEv2 support

    - mlx5 RoCEv2 support

    - Cross Channel support for mlx5

    - Timestamp support for mlx5

    - Atomic support for mlx5

    - Raw QP support for mlx5

    - MAINTAINERS update for mlx4/mlx5

    - Misc ocrdma, qib, nes, usNIC, cxgb3, cxgb4, mlx4, mlx5 updates

    - Add support for remote invalidate to the iSER driver (pushed
    through the RDMA tree due to dependencies, acknowledged by nab)

    - Update to NFSoRDMA (pushed through the RDMA tree due to
    dependencies, acknowledged by Bruce)"

    * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma: (169 commits)
    IB/mlx5: Unify CQ create flags check
    IB/mlx5: Expose Raw Packet QP to user space consumers
    {IB, net}/mlx5: Move the modify QP operation table to mlx5_ib
    IB/mlx5: Support setting Ethernet priority for Raw Packet QPs
    IB/mlx5: Add Raw Packet QP query functionality
    IB/mlx5: Add create and destroy functionality for Raw Packet QP
    IB/mlx5: Refactor mlx5_ib_qp to accommodate other QP types
    IB/mlx5: Allocate a Transport Domain for each ucontext
    net/mlx5_core: Warn on unsupported events of QP/RQ/SQ
    net/mlx5_core: Add RQ and SQ event handling
    net/mlx5_core: Export transport objects
    IB/mlx5: Expose CQE version to user-space
    IB/mlx5: Add CQE version 1 support to user QPs and SRQs
    IB/mlx5: Fix data validation in mlx5_ib_alloc_ucontext
    IB/sa: Fix netlink local service GFP crash
    IB/srpt: Remove redundant wc array
    IB/qib: Improve ipoib UD performance
    IB/mlx4: Advertise RoCE v2 support
    IB/mlx4: Create and use another QP1 for RoCEv2
    IB/mlx4: Enable send of RoCE QP1 packets with IP/UDP headers
    ...

    Linus Torvalds
     
  • I've pretty much been maintaining KVM for MIPS for a while now. Lets
    make it more official (and make sure I get Cc'd on relevant patches).

    Signed-off-by: James Hogan
    Cc: Paolo Bonzini
    Cc: Gleb Natapov
    Cc: linux-mips@linux-mips.org
    Cc: kvm@vger.kernel.org
    Patchwork: https://patchwork.linux-mips.org/patch/11898/
    Signed-off-by: Ralf Baechle

    James Hogan
     
  • Add missing newline to end of kvm_err string when guest PMAP couldn't be
    allocated.

    Signed-off-by: James Hogan
    Cc: Gleb Natapov
    Cc: Paolo Bonzini
    Cc: kvm@vger.kernel.org
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/11896/
    Signed-off-by: Ralf Baechle

    James Hogan
     
  • The header arch/mips/kvm/opcode.h defines a few extra opcodes which
    aren't in arch/mips/include/uapi/asm/inst.h. There's nothing KVM
    specific about them, so lets move them into inst.h where they belong and
    delete the header.

    Note that mfmcz_op is renamed to mfmc0_op to match the instruction set
    manual, and wait_op was already added to inst.h in commit b0a3eae2b943
    ("MIPS: inst.h: define COP0 wait op"), merged in v3.16-rc1.

    Signed-off-by: James Hogan
    Cc: Paolo Bonzini
    Cc: Gleb Natapov
    Cc: linux-mips@linux-mips.org
    Cc: kvm@vger.kernel.org
    Patchwork: https://patchwork.linux-mips.org/patch/11895/
    Signed-off-by: Ralf Baechle

    James Hogan
     
  • Drop the custom cache operation code definitions used by KVM for
    emulating guest CACHE instructions, and switch to use the existing
    definitions in .

    Signed-off-by: James Hogan
    Cc: Paolo Bonzini
    Cc: Gleb Natapov
    Cc: kvm@vger.kernel.org
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/11893/
    Signed-off-by: Ralf Baechle

    James Hogan
     
  • Most of the cache op codes defined in cacheops.h are split into a 2-bit
    cache identifier, and a 3-bit cache op code which does largely the same
    thing semantically regardless of the cache identifier.

    To allow the use of these definitions by KVM for decoding cache ops,
    break the definitions down into parts where it makes sense to do so, and
    add masks for the Cache and Op field within the cache op.

    Signed-off-by: James Hogan
    Cc: linux-mips@linux-mips.org
    Cc: Paolo Bonzini
    Cc: Gleb Natapov
    Cc: kvm@vger.kernel.org
    Patchwork: https://patchwork.linux-mips.org/patch/11892/
    Signed-off-by: Ralf Baechle

    James Hogan
     
  • The first argument to set_except_vector is the ExcCode, which we now
    have definitions for. Lets make use of them.

    Signed-off-by: James Hogan
    Cc: Paolo Bonzini
    Cc: Gleb Natapov
    Cc: linux-mips@linux-mips.org
    Cc: kvm@vger.kernel.org
    Patchwork: https://patchwork.linux-mips.org/patch/11894/
    Signed-off-by: Ralf Baechle

    James Hogan
     
  • Add a few missing trap codes.

    [ralf@linux-mips.org: Drop removal of exception codes. I don't care what
    the incomplete architecture spec says; it can't change existing hardware
    and VCEI is supported indeed.]

    Signed-off-by: James Hogan
    Cc: linux-mips@linux-mips.org
    Cc: Paolo Bonzini
    Cc: Gleb Natapov
    Cc: kvm@vger.kernel.org
    Patchwork: https://patchwork.linux-mips.org/patch/11890/
    Signed-off-by: Ralf Baechle

    James Hogan
     
  • Move the Cause.ExcCode trap code definitions from kvm_host.h to
    mipsregs.h, since they describe architectural bits rather than KVM
    specific constants, and change the prefix from T_ to EXCCODE_.

    Signed-off-by: James Hogan
    Cc: Paolo Bonzini
    Cc: Gleb Natapov
    Cc: linux-mips@linux-mips.org
    Cc: kvm@vger.kernel.org
    Patchwork: https://patchwork.linux-mips.org/patch/11891/
    Signed-off-by: Ralf Baechle

    James Hogan
     
  • The module init and exit functions have no need to be global, so make
    them static.

    Signed-off-by: James Hogan
    Cc: Paolo Bonzini
    Cc: Gleb Natapov
    Cc: kvm@vger.kernel.org
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/11889/
    Signed-off-by: Ralf Baechle

    James Hogan
     
  • When calculating the offsets into the commpage for dynamically
    translated mtc0/mfc0 guest instructions, multiple offsetof()s are added
    together to find the offset of the specific register in the mips_coproc,
    within the commpage.

    Simplify each of these cases to a single offsetof() to find the offset
    of the specific register within the commpage.

    Signed-off-by: James Hogan
    Cc: Paolo Bonzini
    Cc: Gleb Natapov
    Cc: linux-mips@linux-mips.org
    Cc: kvm@vger.kernel.org
    Patchwork: https://patchwork.linux-mips.org/patch/11888/
    Signed-off-by: Ralf Baechle

    James Hogan
     
  • Export symbols only to GPL modules to match other KVM symbols in
    virt/kvm/ and arch/*/kvm/.

    Signed-off-by: James Hogan
    Cc: Paolo Bonzini
    Cc: Gleb Natapov
    Cc: linux-mips@linux-mips.org
    Cc: kvm@vger.kernel.org
    Patchwork: https://patchwork.linux-mips.org/patch/11887/
    Signed-off-by: Ralf Baechle

    James Hogan