20 May, 2015

1 commit

  • A non-percpu VIRQ (e.g., VIRQ_CONSOLE) may be freed on a different
    VCPU than it is bound to. This can result in a race between
    handle_percpu_irq() and removing the action in __free_irq() because
    handle_percpu_irq() does not take desc->lock. The interrupt handler
    sees a NULL action and oopses.

    Only use the percpu chip/handler for per-CPU VIRQs (like VIRQ_TIMER).

    # cat /proc/interrupts | grep virq
    40: 87246 0 xen-percpu-virq timer0
    44: 0 0 xen-percpu-virq debug0
    47: 0 20995 xen-percpu-virq timer1
    51: 0 0 xen-percpu-virq debug1
    69: 0 0 xen-dyn-virq xen-pcpu
    74: 0 0 xen-dyn-virq mce
    75: 29 0 xen-dyn-virq hvc_console

    Signed-off-by: David Vrabel
    Cc:

    David Vrabel
     

30 Apr, 2015

1 commit

  • Commit 77e32c89a711 ("clockevents: Manage device's state separately for
    the core") decouples clockevent device's modes from states. With this
    change when a Xen guest tries to resume, it won't be calling its
    set_mode op which needs to be done on each VCPU in order to make the
    hypervisor aware that we are in oneshot mode.

    This happens because clockevents_tick_resume() (which is an intermediate
    step of resuming ticks on a processor) doesn't call clockevents_set_state()
    anymore and because during suspend clockevent devices on all VCPUs (except
    for the one doing the suspend) are left in ONESHOT state. As result, during
    resume the clockevents state machine will assume that device is already
    where it should be and doesn't need to be updated.

    To avoid this problem we should suspend ticks on all VCPUs during
    suspend.

    Signed-off-by: Boris Ostrovsky
    Signed-off-by: David Vrabel

    Boris Ostrovsky
     

27 Apr, 2015

1 commit


15 Apr, 2015

1 commit

  • Originally Xen PV drivers only use single-page ring to pass along
    information. This might limit the throughput between frontend and
    backend.

    The patch extends Xenbus driver to support multi-page ring, which in
    general should improve throughput if ring is the bottleneck. Changes to
    various frontend / backend to adapt to the new interface are also
    included.

    Affected Xen drivers:
    * blkfront/back
    * netfront/back
    * pcifront/back
    * scsifront/back
    * vtpmfront

    The interface is documented, as before, in xenbus_client.c.

    Signed-off-by: Wei Liu
    Signed-off-by: Paul Durrant
    Signed-off-by: Bob Liu
    Cc: Konrad Wilk
    Cc: Boris Ostrovsky
    Signed-off-by: David Vrabel

    Wei Liu
     

16 Mar, 2015

3 commits

  • Make the IOCTL_PRIVCMD_MMAPBATCH_V2 (and older V1 version) map
    multiple frames at a time rather than one at a time, despite the pages
    being non-consecutive GFNs.

    xen_remap_foreign_mfn_array() is added which maps an array of GFNs
    (instead of a consecutive range of GFNs).

    Since per-frame errors are returned in an array, privcmd must set the
    MMAPBATCH_V1 error bits as part of the "report errors" phase, after
    all the frames are mapped.

    Migrate times are significantly improved (when using a PV toolstack
    domain). For example, for an idle 12 GiB PV guest:

    Before After
    real 0m38.179s 0m26.868s
    user 0m15.096s 0m13.652s
    sys 0m28.988s 0m18.732s

    Signed-off-by: David Vrabel
    Reviewed-by: Stefano Stabellini

    David Vrabel
     
  • Auto-translated physmap guests (arm, arm64 and x86 PVHVM/PVH) map and
    unmap foreign GFNs using the same method (updating the physmap).
    Unify the two arm and x86 implementations into one commont one.

    Note that on arm and arm64, the correct error code will be returned
    (instead of always -EFAULT) and map/unmap failure warnings are no
    longer printed. These changes are required if the foreign domain is
    paging (-ENOENT failures are expected and must be propagated up to the
    caller).

    Signed-off-by: David Vrabel
    Reviewed-by: Stefano Stabellini

    David Vrabel
     
  • The header include/xen/interface/xen.h doesn't contain all definitions
    from Xen's version of that header. Update it accordingly.

    Signed-off-by: Juergen Gross
    Reviewed-by: David Vrabel
    Signed-off-by: David Vrabel

    Juergen Gross
     

02 Mar, 2015

1 commit


24 Feb, 2015

1 commit

  • Hypercalls submitted by user space tools via the privcmd driver can
    take a long time (potentially many 10s of seconds) if the hypercall
    has many sub-operations.

    A fully preemptible kernel may deschedule such as task in any upcall
    called from a hypercall continuation.

    However, in a kernel with voluntary or no preemption, hypercall
    continuations in Xen allow event handlers to be run but the task
    issuing the hypercall will not be descheduled until the hypercall is
    complete and the ioctl returns to user space. These long running
    tasks may also trigger the kernel's soft lockup detection.

    Add xen_preemptible_hcall_begin() and xen_preemptible_hcall_end() to
    bracket hypercalls that may be preempted. Use these in the privcmd
    driver.

    When returning from an upcall, call xen_maybe_preempt_hcall() which
    adds a schedule point if if the current task was within a preemptible
    hypercall.

    Since _cond_resched() can move the task to a different CPU, clear and
    set xen_in_preemptible_hcall around the call.

    Signed-off-by: David Vrabel
    Reviewed-by: Boris Ostrovsky

    David Vrabel
     

11 Feb, 2015

1 commit

  • Pull networking updates from David Miller:

    1) More iov_iter conversion work from Al Viro.

    [ The "crypto: switch af_alg_make_sg() to iov_iter" commit was
    wrong, and this pull actually adds an extra commit on top of the
    branch I'm pulling to fix that up, so that the pre-merge state is
    ok. - Linus ]

    2) Various optimizations to the ipv4 forwarding information base trie
    lookup implementation. From Alexander Duyck.

    3) Remove sock_iocb altogether, from CHristoph Hellwig.

    4) Allow congestion control algorithm selection via routing metrics.
    From Daniel Borkmann.

    5) Make ipv4 uncached route list per-cpu, from Eric Dumazet.

    6) Handle rfs hash collisions more gracefully, also from Eric Dumazet.

    7) Add xmit_more support to r8169, e1000, and e1000e drivers. From
    Florian Westphal.

    8) Transparent Ethernet Bridging support for GRO, from Jesse Gross.

    9) Add BPF packet actions to packet scheduler, from Jiri Pirko.

    10) Add support for uniqu flow IDs to openvswitch, from Joe Stringer.

    11) New NetCP ethernet driver, from Muralidharan Karicheri and Wingman
    Kwok.

    12) More sanely handle out-of-window dupacks, which can result in
    serious ACK storms. From Neal Cardwell.

    13) Various rhashtable bug fixes and enhancements, from Herbert Xu,
    Patrick McHardy, and Thomas Graf.

    14) Support xmit_more in be2net, from Sathya Perla.

    15) Group Policy extensions for vxlan, from Thomas Graf.

    16) Remove Checksum Offload support for vxlan, from Tom Herbert.

    17) Like ipv4, support lockless transmit over ipv6 UDP sockets. From
    Vlad Yasevich.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1494+1 commits)
    crypto: fix af_alg_make_sg() conversion to iov_iter
    ipv4: Namespecify TCP PMTU mechanism
    i40e: Fix for stats init function call in Rx setup
    tcp: don't include Fast Open option in SYN-ACK on pure SYN-data
    openvswitch: Only set TUNNEL_VXLAN_OPT if VXLAN-GBP metadata is set
    ipv6: Make __ipv6_select_ident static
    ipv6: Fix fragment id assignment on LE arches.
    bridge: Fix inability to add non-vlan fdb entry
    net: Mellanox: Delete unnecessary checks before the function call "vunmap"
    cxgb4: Add support in cxgb4 to get expansion rom version via ethtool
    ethtool: rename reserved1 memeber in ethtool_drvinfo for expansion ROM version
    net: dsa: Remove redundant phy_attach()
    IB/mlx4: Reset flow support for IB kernel ULPs
    IB/mlx4: Always use the correct port for mirrored multicast attachments
    net/bonding: Fix potential bad memory access during bonding events
    tipc: remove tipc_snprintf
    tipc: nl compat add noop and remove legacy nl framework
    tipc: convert legacy nl stats show to nl compat
    tipc: convert legacy nl net id get to nl compat
    tipc: convert legacy nl net id set to nl compat
    ...

    Linus Torvalds
     

28 Jan, 2015

5 commits

  • In an x86 PV guest, get_user_pages_fast() on a userspace address range
    containing foreign mappings does not work correctly because the M2P
    lookup of the MFN from a userspace PTE may return the wrong page.

    Force get_user_pages_fast() to fail on such addresses by marking the PTEs
    as special.

    If Xen has XENFEAT_gnttab_map_avail_bits (available since at least
    4.0), we can do so efficiently in the grant map hypercall. Otherwise,
    it needs to be done afterwards. This is both inefficient and racy
    (the mapping is visible to the task before we fixup the PTEs), but
    will be fine for well-behaved applications that do not use the mapping
    until after the mmap() system call returns.

    Guests with XENFEAT_auto_translated_physmap (ARM and x86 HVM or PVH)
    do not need this since get_user_pages() has always worked correctly
    for them.

    Signed-off-by: David Vrabel
    Reviewed-by: Stefano Stabellini

    David Vrabel
     
  • Introduce gnttab_unmap_refs_async() that can be used to safely unmap
    pages that may be in use (ref count > 1). If the pages are in use the
    unmap is deferred and retried later. This polling is not very clever
    but it should be good enough if the cases where the delay is necessary
    are rare.

    The initial delay is 5 ms and is increased linearly on each subsequent
    retry (to reduce load if the page is in use for a long time).

    This is needed to allow block backends using grant mapping to safely
    use network storage (block or filesystem based such as iSCSI or NFS).

    The network storage driver may complete a block request whilst there
    is a queued network packet retry (because the ack from the remote end
    races with deciding to queue the retry). The pages for the retried
    packet would be grant unmapped and the network driver (or hardware)
    would access the unmapped page.

    Signed-off-by: Jennifer Herbert
    Acked-by: Stefano Stabellini
    Signed-off-by: David Vrabel

    Jennifer Herbert
     
  • Use the "foreign" page flag to mark pages that have a grant map. Use
    page->private to store information of the grant (the granting domain
    and the grant reference).

    Signed-off-by: Jennifer Herbert
    Reviewed-by: Stefano Stabellini
    Signed-off-by: David Vrabel

    Jennifer Herbert
     
  • Add gnttab_alloc_pages() and gnttab_free_pages() to allocate/free pages
    suitable to for granted maps.

    Signed-off-by: David Vrabel
    Reviewed-by: Stefano Stabellini

    David Vrabel
     
  • When unmapping grants, instead of converting the kernel map ops to
    unmap ops on the fly, pre-populate the set of unmap ops.

    This allows the grant unmap for the kernel mappings to be trivially
    batched in the future.

    Signed-off-by: David Vrabel
    Reviewed-by: Stefano Stabellini

    David Vrabel
     

15 Jan, 2015

1 commit


14 Jan, 2015

1 commit


13 Jan, 2015

1 commit

  • Using the native code here can't work properly, as the hypervisor would
    normally have cleared the two reason bits by the time Dom0 gets to see
    the NMI (if passed to it at all). There's a shared info field for this,
    and there's an existing hook to use - just fit the two together. This
    is particularly relevant so that NMIs intended to be handled by APEI /
    GHES actually make it to the respective handler.

    Note that the hook can (and should) be used irrespective of whether
    being in Dom0, as accessing port 0x61 in a DomU would be even worse,
    while the shared info field would just hold zero all the time. Note
    further that hardware NMI handling for PVH doesn't currently work
    anyway due to missing code in the hypervisor (but it is expected to
    work the native rather than the PV way).

    Signed-off-by: Jan Beulich
    Reviewed-by: Boris Ostrovsky
    Signed-off-by: David Vrabel

    Jan Beulich
     

04 Dec, 2014

2 commits


06 Oct, 2014

1 commit


03 Oct, 2014

1 commit

  • To be able to use an initially unmapped initrd with xen the following
    header files must be synced to a newer version from the xen tree:

    include/xen/interface/elfnote.h
    include/xen/interface/xen.h

    As the KEXEC and DUMPCORE related ELFNOTES are not relevant for the
    kernel they are omitted from elfnote.h.

    Signed-off-by: Juergen Gross
    Signed-off-by: David Vrabel

    Juergen Gross
     

23 Sep, 2014

2 commits

  • Add the definition of pvSCSI protocol used between the pvSCSI frontend
    in a XEN domU and the pvSCSI backend in a XEN driver domain (usually
    Dom0).

    This header was originally provided by Fujitsu for Xen based on Linux
    2.6.18. Changes are:
    - Added comments.
    - Adapt to Linux style guide.
    - Add support for larger SG-lists by putting them in an own granted
    page.
    - Remove stale definitions.

    Signed-off-by: Juergen Gross
    Signed-off-by: David Vrabel

    Juergen Gross
     
  • Export bind_interdomain_evtchn_to_irq() so drivers can use threaded
    interrupt handlers with:

    irq = bind_interdomain_evtchn_to_irq(remote_dom, remote_port);
    if (irq < 0)
    /* error */
    ret = request_threaded_irq(...);

    Signed-off-by: Juergen Gross
    Acked-by: Konrad Rzeszutek Wilk
    Signed-off-by: David Vrabel

    Juergen Gross
     

12 Sep, 2014

1 commit

  • The flag tells us that the hypervisor maps a grant page to guest
    physical address == machine address of the page in addition to the
    normal grant mapping address. It is needed to properly issue cache
    maintenance operation at the completion of a DMA operation involving a
    foreign grant.

    Signed-off-by: Stefano Stabellini
    Tested-by: Denis Schneider

    Stefano Stabellini
     

08 Aug, 2014

1 commit

  • Pull Xen updates from David Vrabel:
    - remove unused V2 grant table support
    - note that Konrad is xen-blkkback/front maintainer
    - add 'xen_nopv' option to disable PV extentions for x86 HVM guests
    - misc minor cleanups

    * tag 'stable/for-linus-3.17-rc0-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
    xen-pciback: Document the 'quirks' sysfs file
    xen/pciback: Fix error return code in xen_pcibk_attach()
    xen/events: drop negativity check of unsigned parameter
    xen/setup: Remove Identity Map Debug Message
    xen/events/fifo: remove a unecessary use of BM()
    xen/events/fifo: ensure all bitops are properly aligned even on x86
    xen/events/fifo: reset control block and local HEADs on resume
    xen/arm: use BUG_ON
    xen/grant-table: remove support for V2 tables
    x86/xen: safely map and unmap grant frames when in atomic context
    MAINTAINERS: Make me the Xen block subsystem (front and back) maintainer
    xen: Introduce 'xen_nopv' to disable PV extensions for HVM guests.

    Linus Torvalds
     

05 Aug, 2014

1 commit

  • Pull EFI changes from Ingo Molnar:
    "Main changes in this cycle are:

    - arm64 efi stub fixes, preservation of FP/SIMD registers across
    firmware calls, and conversion of the EFI stub code into a static
    library - Ard Biesheuvel

    - Xen EFI support - Daniel Kiper

    - Support for autoloading the efivars driver - Lee, Chun-Yi

    - Use the PE/COFF headers in the x86 EFI boot stub to request that
    the stub be loaded with CONFIG_PHYSICAL_ALIGN alignment - Michael
    Brown

    - Consolidate all the x86 EFI quirks into one file - Saurabh Tangri

    - Additional error logging in x86 EFI boot stub - Ulf Winkelvos

    - Support loading initrd above 4G in EFI boot stub - Yinghai Lu

    - EFI reboot patches for ACPI hardware reduced platforms"

    * 'x86-efi-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (31 commits)
    efi/arm64: Handle missing virtual mapping for UEFI System Table
    arch/x86/xen: Silence compiler warnings
    xen: Silence compiler warnings
    x86/efi: Request desired alignment via the PE/COFF headers
    x86/efi: Add better error logging to EFI boot stub
    efi: Autoload efivars
    efi: Update stale locking comment for struct efivars
    arch/x86: Remove efi_set_rtc_mmss()
    arch/x86: Replace plain strings with constants
    xen: Put EFI machinery in place
    xen: Define EFI related stuff
    arch/x86: Remove redundant set_bit(EFI_MEMMAP) call
    arch/x86: Remove redundant set_bit(EFI_SYSTEM_TABLES) call
    efi: Introduce EFI_PARAVIRT flag
    arch/x86: Do not access EFI memory map if it is not available
    efi: Use early_mem*() instead of early_io*()
    arch/ia64: Define early_memunmap()
    x86/reboot: Add EFI reboot quirk for ACPI Hardware Reduced flag
    efi/reboot: Allow powering off machines using EFI
    efi/reboot: Add generic wrapper around EfiResetSystem()
    ...

    Linus Torvalds
     

31 Jul, 2014

1 commit


30 Jul, 2014

1 commit

  • arch_gnttab_map_frames() and arch_gnttab_unmap_frames() are called in
    atomic context but were calling alloc_vm_area() which might sleep.

    Also, if a driver attempts to allocate a grant ref from an interrupt
    and the table needs expanding, then the CPU may already by in lazy MMU
    mode and apply_to_page_range() will BUG when it tries to re-enable
    lazy MMU mode.

    These two functions are only used in PV guests.

    Introduce arch_gnttab_init() to allocates the virtual address space in
    advance.

    Avoid the use of apply_to_page_range() by using saving and using the
    array of PTE addresses from the alloc_vm_area() call (which ensures
    that the required page tables are pre-allocated).

    Signed-off-by: David Vrabel
    Signed-off-by: Konrad Rzeszutek Wilk

    David Vrabel
     

19 Jul, 2014

3 commits

  • Add inline keyword to silence the following compiler
    warnings if xen_efi_probe() is not used:

    CC arch/x86/xen/setup.o
    In file included from arch/x86/xen/xen-ops.h:7:0,
    from arch/x86/xen/setup.c:31:
    include/xen/xen-ops.h:43:35: warning: ‘xen_efi_probe’ defined but not used [-Wunused-function]

    Signed-off-by: Daniel Kiper
    Reviewed-by: Konrad Rzeszutek Wilk
    Signed-off-by: Matt Fleming

    Daniel Kiper
     
  • This patch enables EFI usage under Xen dom0. Standard EFI Linux
    Kernel infrastructure cannot be used because it requires direct
    access to EFI data and code. However, in dom0 case it is not possible
    because above mentioned EFI stuff is fully owned and controlled
    by Xen hypervisor. In this case all calls from dom0 to EFI must
    be requested via special hypercall which in turn executes relevant
    EFI code in behalf of dom0.

    When dom0 kernel boots it checks for EFI availability on a machine.
    If it is detected then artificial EFI system table is filled.
    Native EFI callas are replaced by functions which mimics them
    by calling relevant hypercall. Later pointer to EFI system table
    is passed to standard EFI machinery and it continues EFI subsystem
    initialization taking into account that there is no direct access
    to EFI boot services, runtime, tables, structures, etc. After that
    system runs as usual.

    This patch is based on Jan Beulich and Tang Liang work.

    Signed-off-by: Jan Beulich
    Signed-off-by: Tang Liang
    Signed-off-by: Daniel Kiper
    Reviewed-by: David Vrabel
    Acked-by: Stefano Stabellini

    Daniel Kiper
     
  • Define constants and structures which are needed to properly
    execute EFI related hypercall in Xen dom0.

    This patch is based on Jan Beulich and Tang Liang work.

    Signed-off-by: Jan Beulich
    Signed-off-by: Tang Liang
    Signed-off-by: Daniel Kiper
    Reviewed-by: David Vrabel
    Acked-by: Stefano Stabellini
    Signed-off-by: Matt Fleming

    Daniel Kiper
     

15 Jul, 2014

2 commits

  • Since 11c7ff17c9b6dbf3a4e4f36be30ad531a6cf0ec9 (xen/grant-table: Force
    to use v1 of grants.) the code for V2 grant tables is not used.

    Signed-off-by: David Vrabel
    Signed-off-by: Konrad Rzeszutek Wilk

    David Vrabel
     
  • arch_gnttab_map_frames() and arch_gnttab_unmap_frames() are called in
    atomic context but were calling alloc_vm_area() which might sleep.

    Also, if a driver attempts to allocate a grant ref from an interrupt
    and the table needs expanding, then the CPU may already by in lazy MMU
    mode and apply_to_page_range() will BUG when it tries to re-enable
    lazy MMU mode.

    These two functions are only used in PV guests.

    Introduce arch_gnttab_init() to allocates the virtual address space in
    advance.

    Avoid the use of apply_to_page_range() by using saving and using the
    array of PTE addresses from the alloc_vm_area() call.

    N.B. 'alloc_vm_area' pre-allocates the pagetable so there is no need
    to worry about having to do a PGD/PUD/PMD walk (like apply_to_page_range
    does) and we can instead do set_pte.

    Signed-off-by: David Vrabel
    Signed-off-by: Konrad Rzeszutek Wilk
    ----
    [v2: Add comment about alloc_vm_area]
    [v3: Fix compile error found by 0-day bot]

    David Vrabel
     

13 Jun, 2014

1 commit

  • Pull networking updates from David Miller:

    1) Seccomp BPF filters can now be JIT'd, from Alexei Starovoitov.

    2) Multiqueue support in xen-netback and xen-netfront, from Andrew J
    Benniston.

    3) Allow tweaking of aggregation settings in cdc_ncm driver, from Bjørn
    Mork.

    4) BPF now has a "random" opcode, from Chema Gonzalez.

    5) Add more BPF documentation and improve test framework, from Daniel
    Borkmann.

    6) Support TCP fastopen over ipv6, from Daniel Lee.

    7) Add software TSO helper functions and use them to support software
    TSO in mvneta and mv643xx_eth drivers. From Ezequiel Garcia.

    8) Support software TSO in fec driver too, from Nimrod Andy.

    9) Add Broadcom SYSTEMPORT driver, from Florian Fainelli.

    10) Handle broadcasts more gracefully over macvlan when there are large
    numbers of interfaces configured, from Herbert Xu.

    11) Allow more control over fwmark used for non-socket based responses,
    from Lorenzo Colitti.

    12) Do TCP congestion window limiting based upon measurements, from Neal
    Cardwell.

    13) Support busy polling in SCTP, from Neal Horman.

    14) Allow RSS key to be configured via ethtool, from Venkata Duvvuru.

    15) Bridge promisc mode handling improvements from Vlad Yasevich.

    16) Don't use inetpeer entries to implement ID generation any more, it
    performs poorly, from Eric Dumazet.

    * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next: (1522 commits)
    rtnetlink: fix userspace API breakage for iproute2 < v3.9.0
    tcp: fixing TLP's FIN recovery
    net: fec: Add software TSO support
    net: fec: Add Scatter/gather support
    net: fec: Increase buffer descriptor entry number
    net: fec: Factorize feature setting
    net: fec: Enable IP header hardware checksum
    net: fec: Factorize the .xmit transmit function
    bridge: fix compile error when compiling without IPv6 support
    bridge: fix smatch warning / potential null pointer dereference
    via-rhine: fix full-duplex with autoneg disable
    bnx2x: Enlarge the dorq threshold for VFs
    bnx2x: Check for UNDI in uncommon branch
    bnx2x: Fix 1G-baseT link
    bnx2x: Fix link for KR with swapped polarity lane
    sctp: Fix sk_ack_backlog wrap-around problem
    net/core: Add VF link state control policy
    net/fsl: xgmac_mdio is dependent on OF_MDIO
    net/fsl: Make xgmac_mdio read error message useful
    net_sched: drr: warn when qdisc is not work conserving
    ...

    Linus Torvalds
     

05 Jun, 2014

1 commit


03 Jun, 2014

1 commit

  • Pull block driver changes from Jens Axboe:
    "Now that the core bits are in, here's the pull request for the driver
    related changes for 3.16. Nothing out of the ordinary here, mostly
    business as usual. There are a few pulls of for-3.16/core into this
    branch, which were done when the blk-mq was modified after the
    mtip32xx conversion was put in.

    The pull request contains:

    - skd and cciss converted to use pci_enable_msix_exact(). From
    Alexander Gordeev.

    - A few mtip32xx fixes from Asai @ Micron.

    - The conversion of mtip32xx from make_request_fn to blk-mq, and a
    later small fix for that conversion on quiescing for non-queued IO.
    From me.

    - A fix for bsg to use an exported function to check whether this
    driver is request based or not. Needed updating for blk-mq, which
    is request based, but does not have a request_fn hook. From me.

    - Small floppy bug fix from Jiri.

    - A series of cleanups for the cdrom uniform layer from Joe Perches.
    Gets rid of various old ugly macros, making the code conform more
    to the modern coding style.

    - A series of patches for drbd from the drbd crew (Lars Ellenberg and
    Philipp Reisner).

    - A use-after-free fix for null_blk from Ming Lei.

    - Also from Ming Lei is a performance patch for virtio-blk, which can
    net us a 3x win on kvm platforms where world notification is
    expensive.

    - Ming Lei also fixed a stall issue in virtio-blk, due to a race
    between queue start/stop and resource limits.

    - A small batch of fixes for xen-blk{back,front} from Olaf Hering and
    Valentin Priescu"

    * 'for-3.16/drivers' of git://git.kernel.dk/linux-block: (54 commits)
    block: virtio_blk: don't hold spin lock during world switch
    xen-blkback: defer freeing blkif to avoid blocking xenwatch
    xen blkif.h: fix comment typo in discard-alignment
    xen/blkback: disable discard feature if requested by toolstack
    xen-blkfront: remove type check from blkfront_setup_discard
    floppy: do not corrupt bio.bi_flags when reading block 0
    mtip32xx: move error handling to service thread
    virtio_blk: fix race between start and stop queue
    mtip32xx: stop block hardware queues before quiescing IO
    mtip32xx: blk_mq_init_queue() returns an ERR_PTR
    mtip32xx: convert to use blk-mq
    cdrom: Remove unnecessary prototype for cdrom_get_disc_info
    cdrom: Remove unnecessary prototype for cdrom_mrw_exit
    cdrom: Remove cdrom_count_tracks prototype
    cdrom: Remove cdrom_get_next_writeable prototype
    cdrom: Remove cdrom_get_last_written prototype
    cdrom: Move mmc_ioctls above cdrom_ioctl to remove unnecessary prototype
    cdrom: Remove unnecessary sanitize_format prototype
    cdrom: Remove unnecessary check_for_audio_disc prototype
    cdrom: Remove prototype for open_for_data
    ...

    Linus Torvalds
     

29 May, 2014

1 commit


13 May, 2014

1 commit

  • New architectures currently have to provide implementations of 5 different
    functions: xen_arch_pre_suspend(), xen_arch_post_suspend(),
    xen_arch_hvm_post_suspend(), xen_mm_pin_all(), and xen_mm_unpin_all().

    Refactor the suspend code to only require xen_arch_pre_suspend() and
    xen_arch_post_suspend().

    Signed-off-by: David Vrabel
    Reviewed-by: Boris Ostrovsky

    David Vrabel
     

24 Apr, 2014

1 commit

  • As part of this make the usual change to xen_ulong_t in place of unsigned long.
    This change has no impact on x86.

    The Linux definition of struct multicall_entry.result differs from the Xen
    definition, I think for good reasons, and used a long rather than an unsigned
    long. Therefore introduce a xen_long_t, which is a long on x86 architectures
    and a signed 64-bit integer on ARM.

    Use uint32_t nr_calls on x86 for consistency with the ARM definition.

    Build tested on amd64 and i386 builds. Runtime tested on ARM.

    Signed-off-by: Ian Campbell
    Cc: Stefano Stabellini
    Cc: Konrad Rzeszutek Wilk
    Cc: Boris Ostrovsky
    Signed-off-by: David Vrabel

    Ian Campbell