Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Sync up with Linus #50

Merged
merged 33 commits into from
Mar 17, 2015
Merged

Sync up with Linus #50

merged 33 commits into from
Mar 17, 2015

Commits on Feb 14, 2015

  1. regmap-irq: set IRQF_ONESHOT flag to ensure IRQ request

    Since commit 1c6c695 ("genirq: Reject
    bogus threaded irq requests") threaded IRQs without a primary handler
    need to be requested with IRQF_ONESHOT, otherwise the request will fail.
    
    The %irq_flags flag is used to request the threaded IRQ and is also a
    parameter of the caller.  Hence, we cannot be sure that IRQF_ONESHOT is
    set.  This change avoids the potentially missing flag by setting
    IRQF_ONESHOT when requesting the threaded IRQ.
    
    Generated by: scripts/coccinelle/misc/irqf_oneshot.cocci
    
    Signed-off-by: Valentin Rothberg <Valentin.Rothberg@lip6.fr>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Valentin Rothberg authored and broonie committed Feb 14, 2015
    Configuration menu
    Copy the full SHA
    09cadf6 View commit details
    Browse the repository at this point in the history

Commits on Mar 4, 2015

  1. regmap: Skip read-only registers in regcache_sync()

    regcache_sync() spews warnings when a value was cached for a read-only
    register as it tries to write all registers no matter whether they are
    writable or not.  This patch adds regmap_wrtieable() checks for
    avoiding it in regcache_sync_block_single() and regcache_block_raw().
    
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    tiwai authored and broonie committed Mar 4, 2015
    Configuration menu
    Copy the full SHA
    4ceba98 View commit details
    Browse the repository at this point in the history

Commits on Mar 5, 2015

  1. virtio_console: init work unconditionally

    when multiport is off, we don't initialize config work,
    but we then cancel uninitialized control_work on freeze.
    
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
    Reviewed-by: Amit Shah <amit.shah@redhat.com>
    Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
    Cc: stable@kernel.org
    mstsirkin authored and rustyrussell committed Mar 5, 2015
    Configuration menu
    Copy the full SHA
    4f6e24e View commit details
    Browse the repository at this point in the history
  2. virtio_console: avoid config access from irq

    when multiport is off, virtio console invokes config access from irq
    context, config access is blocking on s390.
    Fix this up by scheduling work from config irq - similar to what we do
    for multiport configs.
    
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
    Reviewed-by: Amit Shah <amit.shah@redhat.com>
    Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
    Cc: stable@kernel.org
    mstsirkin authored and rustyrussell committed Mar 5, 2015
    Configuration menu
    Copy the full SHA
    eeb8a7e View commit details
    Browse the repository at this point in the history

Commits on Mar 7, 2015

  1. regmap: regcache-rbtree: Fix present bitmap resize

    When inserting a new register into a block at the lower end the present
    bitmap is currently shifted into the wrong direction. The effect of this is
    that the bitmap becomes corrupted and registers which are present might be
    reported as not present and vice versa.
    
    Fix this by shifting left rather than right.
    
    Fixes: 472fdec("regmap: rbtree: Reduce number of nodes, take 2")
    Reported-by: Daniel Baluta <daniel.baluta@gmail.com>
    Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Cc: stable@vger.kernel.org
    larsclausen authored and broonie committed Mar 7, 2015
    Configuration menu
    Copy the full SHA
    328f494 View commit details
    Browse the repository at this point in the history
  2. Merge remote-tracking branches 'regmap/fix/irq', 'regmap/fix/rbtree' …

    …and 'regmap/fix/sync' into regmap-linus
    broonie committed Mar 7, 2015
    Configuration menu
    Copy the full SHA
    7d720ee View commit details
    Browse the repository at this point in the history

Commits on Mar 8, 2015

  1. regulator: Only enable disabled regulators on resume

    The _regulator_do_enable() call ought to be a no-op when called on an
    already-enabled regulator.  However, as an optimization
    _regulator_enable() doesn't call _regulator_do_enable() on an already
    enabled regulator.  That means we never test the case of calling
    _regulator_do_enable() during normal usage and there may be hidden
    bugs or warnings.  We have seen warnings issued by the tps65090 driver
    and bugs when using the GPIO enable pin.
    
    Let's match the same optimization that _regulator_enable() in
    regulator_suspend_finish().  That may speed up suspend/resume and also
    avoids exposing hidden bugs.
    
    [Use much clearer commit message from Doug Anderson]
    
    Signed-off-by: Javier Martinez Canillas <javier.martinez@collabora.co.uk>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Cc: stable@vger.kernel.org
    Javier Martinez Canillas authored and broonie committed Mar 8, 2015
    Configuration menu
    Copy the full SHA
    0548bf4 View commit details
    Browse the repository at this point in the history
  2. regulator: core: Fix enable GPIO reference counting

    Normally _regulator_do_enable() isn't called on an already-enabled
    rdev.  That's because the main caller, _regulator_enable() always
    calls _regulator_is_enabled() and only calls _regulator_do_enable() if
    the rdev was not already enabled.
    
    However, there is one caller of _regulator_do_enable() that doesn't
    check: regulator_suspend_finish().  While we might want to make
    regulator_suspend_finish() behave more like _regulator_enable(), it's
    probably also a good idea to make _regulator_do_enable() robust if it
    is called on an already enabled rdev.
    
    At the moment, _regulator_do_enable() is _not_ robust for already
    enabled rdevs if we're using an ena_pin.  Each time
    _regulator_do_enable() is called for an rdev using an ena_pin the
    reference count of the ena_pin is incremented even if the rdev was
    already enabled.  This is not as intended because the ena_pin is for
    something else: for keeping track of how many active rdevs there are
    sharing the same ena_pin.
    
    Here's how the reference counting works here:
    
    * Each time _regulator_enable() is called we increment
      rdev->use_count, so _regulator_enable() calls need to be balanced
      with _regulator_disable() calls.
    
    * There is no explicit reference counting in _regulator_do_enable()
      which is normally just a warapper around rdev->desc->ops->enable()
      with code for supporting delays.  It's not expected that the
      "ops->enable()" call do reference counting.
    
    * Since regulator_ena_gpio_ctrl() does have reference counting
      (handling the sharing of the pin amongst multiple rdevs), we
      shouldn't call it if the current rdev is already enabled.
    
    Note that as part of this we cleanup (remove) the initting of
    ena_gpio_state in regulator_register().  In _regulator_do_enable(),
    _regulator_do_disable() and _regulator_is_enabled() is is clear that
    ena_gpio_state should be the state of whether this particular rdev has
    requested the GPIO be enabled.  regulator_register() was initting it
    as the actual state of the pin.
    
    Fixes: 967cfb1 ("regulator: core: manage enable GPIO list")
    Signed-off-by: Doug Anderson <dianders@chromium.org>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Cc: stable@vger.kernel.org
    dianders authored and broonie committed Mar 8, 2015
    Configuration menu
    Copy the full SHA
    29d62ec View commit details
    Browse the repository at this point in the history

Commits on Mar 10, 2015

  1. virtio_balloon: set DRIVER_OK before using device

    virtio spec requires that all drivers set DRIVER_OK
    before using devices. While balloon isn't yet
    included in the virtio 1 spec, previous spec versions
    also required this.
    
    virtio balloon might violate this rule: probe calls
    kthread_run before setting DRIVER_OK, which might run
    immediately and cause balloon to inflate/deflate.
    
    To fix, call virtio_device_ready before running the kthread.
    
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
    Cc: stable@kernel.org
    mstsirkin authored and rustyrussell committed Mar 10, 2015
    Configuration menu
    Copy the full SHA
    88660f7 View commit details
    Browse the repository at this point in the history
  2. virtio_blk: typo fix

    Now that QEmu reuses linux virtio headers, we noticed
    a typo in the exported virtio block header. Fix it up.
    
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
    mstsirkin authored and rustyrussell committed Mar 10, 2015
    Configuration menu
    Copy the full SHA
    7e41a9d View commit details
    Browse the repository at this point in the history
  3. virtio_blk: fix comment for virtio 1.0

    Fix up comment to match virtio 1.0 logic:
    virtio_blk_outhdr isn't the first elements anymore,
    the only requirement is that it comes first in
    the s/g list.
    
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
    mstsirkin authored and rustyrussell committed Mar 10, 2015
    Configuration menu
    Copy the full SHA
    0fa2a56 View commit details
    Browse the repository at this point in the history
  4. virtio-balloon: do not call blocking ops when !TASK_RUNNING

    virtio balloon has this code:
            wait_event_interruptible(vb->config_change,
                                     (diff = towards_target(vb)) != 0
                                     || vb->need_stats_update
                                     || kthread_should_stop()
                                     || freezing(current));
    
    Which is a problem because towards_target() call might block after
    wait_event_interruptible sets task state to TAST_INTERRUPTIBLE, causing
    the task_struct::state collision typical of nesting of sleeping
    primitives
    
    See also http://lwn.net/Articles/628628/ or Thomas's
    bug report
    http://article.gmane.org/gmane.linux.kernel.virtualization/24846
    for a fuller explanation.
    
    To fix, rewrite using wait_woken.
    
    Cc: stable@vger.kernel.org
    Reported-by: Thomas Huth <thuth@linux.vnet.ibm.com>
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
    Tested-by: Thomas Huth <thuth@linux.vnet.ibm.com>
    Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com>
    Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
    mstsirkin authored and rustyrussell committed Mar 10, 2015
    Configuration menu
    Copy the full SHA
    3d2a377 View commit details
    Browse the repository at this point in the history

Commits on Mar 11, 2015

  1. kvm: move advertising of KVM_CAP_IRQFD to common code

    POWER supports irqfds but forgot to advertise them.  Some userspace does
    not check for the capability, but others check it---thus they work on
    x86 and s390 but not POWER.
    
    To avoid that other architectures in the future make the same mistake, let
    common code handle KVM_CAP_IRQFD the same way as KVM_CAP_IRQFD_RESAMPLE.
    
    Reported-and-tested-by: Greg Kurz <gkurz@linux.vnet.ibm.com>
    Cc: stable@vger.kernel.org
    Fixes: 297e210
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
    bonzini authored and matosatti committed Mar 11, 2015
    Configuration menu
    Copy the full SHA
    dc9be0f View commit details
    Browse the repository at this point in the history
  2. arm64: KVM: Fix stage-2 PGD allocation to have per-page refcounting

    We're using __get_free_pages with to allocate the guest's stage-2
    PGD. The standard behaviour of this function is to return a set of
    pages where only the head page has a valid refcount.
    
    This behaviour gets us into trouble when we're trying to increment
    the refcount on a non-head page:
    
    page:ffff7c00cfb693c0 count:0 mapcount:0 mapping:          (null) index:0x0
    flags: 0x4000000000000000()
    page dumped because: VM_BUG_ON_PAGE((*({ __attribute__((unused)) typeof((&page->_count)->counter) __var = ( typeof((&page->_count)->counter)) 0; (volatile typeof((&page->_count)->counter) *)&((&page->_count)->counter); })) <= 0)
    BUG: failure at include/linux/mm.h:548/get_page()!
    Kernel panic - not syncing: BUG!
    CPU: 1 PID: 1695 Comm: kvm-vcpu-0 Not tainted 4.0.0-rc1+ #3825
    Hardware name: APM X-Gene Mustang board (DT)
    Call trace:
    [<ffff80000008a09c>] dump_backtrace+0x0/0x13c
    [<ffff80000008a1e8>] show_stack+0x10/0x1c
    [<ffff800000691da8>] dump_stack+0x74/0x94
    [<ffff800000690d78>] panic+0x100/0x240
    [<ffff8000000a0bc4>] stage2_get_pmd+0x17c/0x2bc
    [<ffff8000000a1dc4>] kvm_handle_guest_abort+0x4b4/0x6b0
    [<ffff8000000a420c>] handle_exit+0x58/0x180
    [<ffff80000009e7a4>] kvm_arch_vcpu_ioctl_run+0x114/0x45c
    [<ffff800000099df4>] kvm_vcpu_ioctl+0x2e0/0x754
    [<ffff8000001c0a18>] do_vfs_ioctl+0x424/0x5c8
    [<ffff8000001c0bfc>] SyS_ioctl+0x40/0x78
    CPU0: stopping
    
    A possible approach for this is to split the compound page using
    split_page() at allocation time, and change the teardown path to
    free one page at a time.  It turns out that alloc_pages_exact() and
    free_pages_exact() does exactly that.
    
    While we're at it, the PGD allocation code is reworked to reduce
    duplication.
    
    This has been tested on an X-Gene platform with a 4kB/48bit-VA host
    kernel, and kvmtool hacked to place memory in the second page of
    the hardware PGD (PUD for the host kernel). Also regression-tested
    on a Cubietruck (Cortex-A7).
    
     [ Reworked to use alloc_pages_exact() and free_pages_exact() and to
       return pointers directly instead of by reference as arguments
        - Christoffer ]
    
    Reported-by: Mark Rutland <mark.rutland@arm.com>
    Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
    Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
    Marc Zyngier authored and chazy committed Mar 11, 2015
    Configuration menu
    Copy the full SHA
    a987370 View commit details
    Browse the repository at this point in the history
  3. arm64: KVM: Do not use pgd_index to index stage-2 pgd

    The kernel's pgd_index macro is designed to index a normal, page
    sized array. KVM is a bit diffferent, as we can use concatenated
    pages to have a bigger address space (for example 40bit IPA with
    4kB pages gives us an 8kB PGD.
    
    In the above case, the use of pgd_index will always return an index
    inside the first 4kB, which makes a guest that has memory above
    0x8000000000 rather unhappy, as it spins forever in a page fault,
    whist the host happilly corrupts the lower pgd.
    
    The obvious fix is to get our own kvm_pgd_index that does the right
    thing(tm).
    
    Tested on X-Gene with a hacked kvmtool that put memory at a stupidly
    high address.
    
    Reviewed-by: Christoffer Dall <christoffer.dall@linaro.org>
    Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
    Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
    Marc Zyngier authored and chazy committed Mar 11, 2015
    Configuration menu
    Copy the full SHA
    04b8dc8 View commit details
    Browse the repository at this point in the history
  4. arm64: KVM: Fix outdated comment about VTCR_EL2.PS

    Commit 87366d8 ("arm64: Add boot time configuration of
    Intermediate Physical Address size") removed the hardcoded setting
    of VTCR_EL2.PS to use ID_AA64MMFR0_EL1.PARange instead, but didn't
    remove the (now rather misleading) comment.
    
    Fix the comments to match reality (at least for the next few minutes).
    
    Acked-by: Christoffer Dall <christoffer.dall@linaro.org>
    Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
    Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
    Marc Zyngier authored and chazy committed Mar 11, 2015
    Configuration menu
    Copy the full SHA
    84ed741 View commit details
    Browse the repository at this point in the history

Commits on Mar 13, 2015

  1. kvm: x86: i8259: return initialized data on invalid-size read

    If data is read from PIC with invalid access size, the return data stays
    uninitialized even though success is returned.
    
    Fix this by always initializing the data.
    
    Signed-off-by: Petr Matousek <pmatouse@redhat.com>
    Reported-by: Nadav Amit <nadav.amit@gmail.com>
    Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
    pmatouse authored and matosatti committed Mar 13, 2015
    Configuration menu
    Copy the full SHA
    c1a6bff View commit details
    Browse the repository at this point in the history
  2. 9p/trans_virtio: fix hot-unplug

    On device hot-unplug, 9p/virtio currently will kfree channel while
    it might still be in use.
    
    Of course, it might stay used forever, so it's an extremely ugly hack,
    but it seems better than use-after-free that we have now.
    
    [ Unused variable removed, whitespace cleanup, msg single-lined --RR ]
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
    mstsirkin authored and rustyrussell committed Mar 13, 2015
    Configuration menu
    Copy the full SHA
    8051a2a View commit details
    Browse the repository at this point in the history
  3. virtio_rpmsg: set DRIVER_OK before using device

    virtio spec requires that all drivers set DRIVER_OK
    before using devices. While rpmsg isn't yet
    included in the virtio 1 spec, previous spec versions
    also required this.
    
    virtio rpmsg violates this rule: is calls kick
    before setting DRIVER_OK.
    
    The fix isn't trivial since simply calling virtio_device_ready earlier
    would mean we might get an interrupt in parallel with adding buffers.
    
    Instead, split kick out to prepare+notify calls.  prepare before
    virtio_device_ready - when we know we won't get interrupts. notify right
    afterwards.
    
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
    Acked-by: Ohad Ben-Cohen <ohad@wizery.com>
    Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
    mstsirkin authored and rustyrussell committed Mar 13, 2015
    Configuration menu
    Copy the full SHA
    71e4b8b View commit details
    Browse the repository at this point in the history
  4. virtio_mmio: generation support

    virtio_mmio currently lacks generation support which
    makes multi-byte field access racy.
    Fix by getting the value at offset 0xfc for version 2
    devices. Nothing we can do for version 1, so return
    generation id 0.
    
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
    mstsirkin authored and rustyrussell committed Mar 13, 2015
    Configuration menu
    Copy the full SHA
    87e7bf1 View commit details
    Browse the repository at this point in the history
  5. uapi/virtio_scsi: allow overriding CDB/SENSE size

    QEMU wants to use virtio scsi structures with
    a different VIRTIO_SCSI_CDB_SIZE/VIRTIO_SCSI_SENSE_SIZE,
    let's add ifdefs to allow overriding them.
    
    Keep the old defines under new names:
    VIRTIO_SCSI_CDB_DEFAULT_SIZE/VIRTIO_SCSI_SENSE_DEFAULT_SIZE,
    since that's what these values really are:
    defaults for cdb/sense size fields.
    
    Suggested-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
    mstsirkin authored and rustyrussell committed Mar 13, 2015
    Configuration menu
    Copy the full SHA
    a4994b8 View commit details
    Browse the repository at this point in the history
  6. arm/arm64: KVM: fix missing unlock on error in kvm_vgic_create()

    Add the missing unlock before return from function kvm_vgic_create()
    in the error handling case.
    
    Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
    Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
    Wei Yongjun authored and chazy committed Mar 13, 2015
    Configuration menu
    Copy the full SHA
    b52104e View commit details
    Browse the repository at this point in the history
  7. KVM: VMX: Set msr bitmap correctly if vcpu is in guest mode

    In commit 3af18d9 ("KVM: nVMX: Prepare for using hardware MSR bitmap"),
    we are setting MSR_BITMAP in prepare_vmcs02 if we should use hardware. This
    is not enough since the field will be modified by following vmx_set_efer.
    
    Fix this by setting vmx_msr_bitmap_nested in vmx_set_msr_bitmap if vcpu is
    in guest mode.
    
    Signed-off-by: Wincy Van <fanwenyi0529@gmail.com>
    Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
    Wincy Van authored and matosatti committed Mar 13, 2015
    Configuration menu
    Copy the full SHA
    670125b View commit details
    Browse the repository at this point in the history

Commits on Mar 14, 2015

  1. arm/arm64: KVM: Keep elrsr/aisr in sync with software model

    There is an interesting bug in the vgic code, which manifests itself
    when the KVM run loop has a signal pending or needs a vmid generation
    rollover after having disabled interrupts but before actually switching
    to the guest.
    
    In this case, we flush the vgic as usual, but we sync back the vgic
    state and exit to userspace before entering the guest.  The consequence
    is that we will be syncing the list registers back to the software model
    using the GICH_ELRSR and GICH_EISR from the last execution of the guest,
    potentially overwriting a list register containing an interrupt.
    
    This showed up during migration testing where we would capture a state
    where the VM has masked the arch timer but there were no interrupts,
    resulting in a hung test.
    
    Cc: Marc Zyngier <marc.zyngier@arm.com>
    Reported-by: Alex Bennee <alex.bennee@linaro.org>
    Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
    Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
    Acked-by: Marc Zyngier <marc.zyngier@arm.com>
    Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
    chazy committed Mar 14, 2015
    Configuration menu
    Copy the full SHA
    ae70593 View commit details
    Browse the repository at this point in the history

Commits on Mar 16, 2015

  1. regulator: tps65910: Add missing #include <linux/of.h>

    drivers/regulator/tps65910-regulator.c: In function ‘tps65910_parse_dt_reg_data’:
    drivers/regulator/tps65910-regulator.c:1018: error: implicit declaration of function ‘of_get_child_by_name’
    drivers/regulator/tps65910-regulator.c:1018: warning: assignment makes pointer from integer without a cast
    drivers/regulator/tps65910-regulator.c:1034: error: implicit declaration of function ‘of_node_put’
    drivers/regulator/tps65910-regulator.c:1056: error: implicit declaration of function ‘of_property_read_u32’
    
    Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
    Signed-off-by: Mark Brown <broonie@kernel.org>
    geertu authored and broonie committed Mar 16, 2015
    Configuration menu
    Copy the full SHA
    d16da51 View commit details
    Browse the repository at this point in the history
  2. Merge remote-tracking branches 'regulator/fix/gpio-enable' and 'regul…

    …ator/fix/tps65910' into regulator-linus
    broonie committed Mar 16, 2015
    Configuration menu
    Copy the full SHA
    8ca8f32 View commit details
    Browse the repository at this point in the history
  3. Merge tag 'kvm-arm-fixes-4.0-rc5' of git://git.kernel.org/pub/scm/lin…

    …ux/kernel/git/kvmarm/kvmarm
    
    Fixes for KVM/ARM for 4.0-rc5.
    
    Fixes page refcounting issues in our Stage-2 page table management code,
    fixes a missing unlock in a gicv3 error path, and fixes a race that can
    cause lost interrupts if signals are pending just prior to entering the
    guest.
    Marcelo Tosatti authored and matosatti committed Mar 16, 2015
    Configuration menu
    Copy the full SHA
    f710a12 View commit details
    Browse the repository at this point in the history

Commits on Mar 17, 2015

  1. virtio_mmio: fix access width for mmio

    Going over the virtio mmio code, I noticed that it doesn't correctly
    access modern device config values using "natural" accessors: it uses
    readb to get/set them byte by byte, while the virtio 1.0 spec explicitly states:
    
    	4.2.2.2 Driver Requirements: MMIO Device Register Layout
    
    	...
    
    	The driver MUST only use 32 bit wide and aligned reads and writes to
    	access the control registers described in table 4.1.
    	For the device-specific configuration space, the driver MUST use
    	8 bit wide accesses for 8 bit wide fields, 16 bit wide and aligned
    	accesses for 16 bit wide fields and 32 bit wide and aligned accesses for
    	32 and 64 bit wide fields.
    
    Borrow code from virtio_pci_modern to do this correctly.
    
    Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
    Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
    mstsirkin authored and rustyrussell committed Mar 17, 2015
    Configuration menu
    Copy the full SHA
    704a0b5 View commit details
    Browse the repository at this point in the history
  2. pagemap: do not leak physical addresses to non-privileged userspace

    As pointed by recent post[1] on exploiting DRAM physical imperfection,
    /proc/PID/pagemap exposes sensitive information which can be used to do
    attacks.
    
    This disallows anybody without CAP_SYS_ADMIN to read the pagemap.
    
    [1] http://googleprojectzero.blogspot.com/2015/03/exploiting-dram-rowhammer-bug-to-gain.html
    
    [ Eventually we might want to do anything more finegrained, but for now
      this is the simple model.   - Linus ]
    
    Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
    Acked-by: Konstantin Khlebnikov <khlebnikov@openvz.org>
    Acked-by: Andy Lutomirski <luto@amacapital.net>
    Cc: Pavel Emelyanov <xemul@parallels.com>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: Mark Seaborn <mseaborn@chromium.org>
    Cc: stable@vger.kernel.org
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    kiryl authored and torvalds committed Mar 17, 2015
    Configuration menu
    Copy the full SHA
    ab676b7 View commit details
    Browse the repository at this point in the history
  3. Merge git://git.kernel.org/pub/scm/virt/kvm/kvm

    Pull kvm fixes from Marcelo Tosatti:
     "KVM bug fixes (ARM and x86)"
    
    * git://git.kernel.org/pub/scm/virt/kvm/kvm:
      arm/arm64: KVM: Keep elrsr/aisr in sync with software model
      KVM: VMX: Set msr bitmap correctly if vcpu is in guest mode
      arm/arm64: KVM: fix missing unlock on error in kvm_vgic_create()
      kvm: x86: i8259: return initialized data on invalid-size read
      arm64: KVM: Fix outdated comment about VTCR_EL2.PS
      arm64: KVM: Do not use pgd_index to index stage-2 pgd
      arm64: KVM: Fix stage-2 PGD allocation to have per-page refcounting
      kvm: move advertising of KVM_CAP_IRQFD to common code
    torvalds committed Mar 17, 2015
    Configuration menu
    Copy the full SHA
    2fc6775 View commit details
    Browse the repository at this point in the history
  4. Merge tag 'virtio-next-for-linus' of git://git.kernel.org/pub/scm/lin…

    …ux/kernel/git/rusty/linux
    
    Pull virtio fixes from Rusty Russell:
     "Not entirely surprising: the ongoing QEMU work on virtio 1.0 has
      revealed more minor issues with our virtio 1.0 drivers just introduced
      in the kernel.
    
      (I would normally use my fixes branch for this, but there were a batch
      of them...)"
    
    * tag 'virtio-next-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux:
      virtio_mmio: fix access width for mmio
      uapi/virtio_scsi: allow overriding CDB/SENSE size
      virtio_mmio: generation support
      virtio_rpmsg: set DRIVER_OK before using device
      9p/trans_virtio: fix hot-unplug
      virtio-balloon: do not call blocking ops when !TASK_RUNNING
      virtio_blk: fix comment for virtio 1.0
      virtio_blk: typo fix
      virtio_balloon: set DRIVER_OK before using device
      virtio_console: avoid config access from irq
      virtio_console: init work unconditionally
    torvalds committed Mar 17, 2015
    Configuration menu
    Copy the full SHA
    4d272f9 View commit details
    Browse the repository at this point in the history
  5. Merge tag 'regmap-v4.0-rc4' of git://git.kernel.org/pub/scm/linux/ker…

    …nel/git/broonie/regmap
    
    Pull regmap fixes from Mark Brown:
     "A few things here:
    
       - a change from Lars to fix insertion of cache values at the start of
         rather than end of a rbtree block.  This hadn't been noticed before
         since almost everything lists registers in ascending order.
    
       - a fix from Takashi for spurious warnings during cache sync with
         read once registers, a problem which can be very noticeable on
         devices that it affects.
    
       - a fix from Valentin for a tighening of the oneshot IRQ request
         interface which would have broken affected devices"
    
    * tag 'regmap-v4.0-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap:
      regmap: regcache-rbtree: Fix present bitmap resize
      regmap: Skip read-only registers in regcache_sync()
      regmap-irq: set IRQF_ONESHOT flag to ensure IRQ request
    torvalds committed Mar 17, 2015
    Configuration menu
    Copy the full SHA
    529d2eb View commit details
    Browse the repository at this point in the history
  6. Merge tag 'regulator-fix-v4.0-rc4' of git://git.kernel.org/pub/scm/li…

    …nux/kernel/git/broonie/regulator
    
    Pull regulator fixes from Mark Brown:
     "The two main fixes here from Javier and Doug both fix issues seen on
      the Exynos-based ARM Chromebooks with reference counting of GPIO
      regulators over system suspend.  The GPIO enable code didn't properly
      take account of this case (a full analysis is in Doug's commit log).
    
      This is fixed by both fixing the reference counting directly and by
      making the resume code skip enables it doesn't need to do.  We could
      skip the change in the resume code but it's a very simple change and
      adds extra robustness against problems in other drivers"
    
    * tag 'regulator-fix-v4.0-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator:
      regulator: tps65910: Add missing #include <linux/of.h>
      regulator: core: Fix enable GPIO reference counting
      regulator: Only enable disabled regulators on resume
    torvalds committed Mar 17, 2015
    Configuration menu
    Copy the full SHA
    8e6e44f View commit details
    Browse the repository at this point in the history