20 Aug, 2015

4 commits

  • Currently, the event channel rebind code is gated with the presence of
    the vector callback.

    The virtual interrupt controller on ARM has the concept of per-CPU
    interrupt (PPI) which allow us to support per-VCPU event channel.
    Therefore there is no need of vector callback for ARM.

    Xen is already using a free PPI to notify the guest VCPU of an event.
    Furthermore, the xen code initialization in Linux (see
    arch/arm/xen/enlighten.c) is requesting correctly a per-CPU IRQ.

    Introduce new helper xen_support_evtchn_rebind to allow architecture
    decide whether rebind an event is support or not. It will always return
    true on ARM and keep the same behavior on x86.

    This is also allow us to drop the usage of xen_have_vector_callback
    entirely in the ARM code.

    Signed-off-by: Julien Grall
    Signed-off-by: David Vrabel

    Julien Grall
     
  • Note: This patch is based on original work of Arianna's internship for
    GNOME's Outreach Program for Women.

    Only one hardware queue is used now, so there is no significant
    performance change

    The legacy non-mq code is deleted completely which is the same as other
    drivers like virtio, mtip, and nvme.

    Also dropped one unnecessary holding of info->io_lock when calling
    blk_mq_stop_hw_queues().

    Signed-off-by: Arianna Avanzini
    Signed-off-by: Bob Liu
    Reviewed-by: Christoph Hellwig
    Acked-by: Jens Axboe
    Signed-off-by: David Vrabel

    Bob Liu
     
  • This code is used only when CONFIG_PREEMPT=n and only in non-atomic
    context: xen_in_preemptible_hcall is set only in
    privcmd_ioctl_hypercall(). Thus preempt_count is zero and
    should_resched() is equal to need_resched().

    Signed-off-by: Konstantin Khlebnikov
    Signed-off-by: David Vrabel

    Konstantin Khlebnikov
     
  • xen_has_pv_devices() has no parameters, so use the normal void
    parameter convention to make it match the prototype in the header file
    include/xen/platform_pci.h.

    Signed-off-by: Colin Ian King
    Signed-off-by: David Vrabel

    Colin Ian King
     

17 Aug, 2015

7 commits

  • Linus Torvalds
     
  • Pull ARM SoC fixes from Olof Johansson:
    "A smallish batch of fixes, a little more than expected this late, but
    all fixes are contained to their platforms and seem reasonably low
    risk:

    - a somewhat large SMP fix for ux500 that still seemed warranted to
    include here
    - OMAP DT fixes for pbias regulator specification that broke due to
    some DT reshuffling
    - PCIe IRQ routing bugfix for i.MX
    - networking fixes for keystone
    - runtime PM for OMAP GPMC
    - a couple of error path bug fixes for exynos"

    * tag 'armsoc-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc:
    ARM: dts: keystone: Fix the mdio bindings by moving it to soc specific file
    ARM: dts: keystone: fix the clock node for mdio
    memory: omap-gpmc: Don't try to save uninitialized GPMC context
    ARM: imx6: correct i.MX6 PCIe interrupt routing
    ARM: ux500: add an SMP enablement type and move cpu nodes
    ARM: dts: dra7: Fix broken pbias device creation
    ARM: dts: OMAP5: Fix broken pbias device creation
    ARM: dts: OMAP4: Fix broken pbias device creation
    ARM: dts: omap243x: Fix broken pbias device creation
    ARM: EXYNOS: fix double of_node_put() on error path
    ARM: EXYNOS: Fix potentian kfree() of ro memory

    Linus Torvalds
     
  • Pull MIPS bugfix from Ralf Baechle:
    "Only a single MIPS fix - the math when invoking syscall_trace_enter
    was wrong"

    * 'upstream' of git://git.linux-mips.org/pub/scm/ralf/upstream-linus:
    MIPS: Fix seccomp syscall argument for MIPS64

    Linus Torvalds
     
  • Merge x86 fixes from Ingo Molnar:
    "Two followup fixes related to the previous LDT fix"

    Also applied a further FPU emulation fix from Andy Lutomirski to the
    branch before actually merging it.

    * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
    x86/ldt: Further fix FPU emulation
    x86/ldt: Correct FPU emulation access to LDT
    x86/ldt: Correct LDT access in single stepping logic

    Linus Torvalds
     
  • The previous fix confused a selector with a segment prefix. Fix it.

    Compile-tested only.

    Cc: stable@vger.kernel.org
    Cc: Juergen Gross
    Reported-by: Linus Torvalds
    Fixes: 4809146b86c3 ("x86/ldt: Correct FPU emulation access to LDT")
    Signed-off-by: Andy Lutomirski
    Signed-off-by: Linus Torvalds

    Andy Lutomirski
     
  • fuse_dev_ioctl() performed fuse_get_dev() on a user-supplied fd,
    leading to a type confusion issue. Fix it by checking file->f_op.

    Signed-off-by: Jann Horn
    Acked-by: Miklos Szeredi
    Signed-off-by: Linus Torvalds

    Jann Horn
     
  • …nel/git/ssantosh/linux-keystone into fixes

    ARM: Couple of Keysyone MDIO DTS fixes for 4.2-rc6+

    These are necessary to get the NIC card working on all Keystone
    EVMs. Couple of boards are broken without these two fixes.

    * tag 'keystone-dts-late-fixes-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/ssantosh/linux-keystone:
    ARM: dts: keystone: Fix the mdio bindings by moving it to soc specific file
    ARM: dts: keystone: fix the clock node for mdio

    Signed-off-by: Olof Johansson <olof@lixom.net>

    Olof Johansson
     

16 Aug, 2015

2 commits

  • Commit 4c21b8fd8f14 ("MIPS: seccomp: Handle indirect system calls (o32)")
    fixed indirect system calls on O32 but it also introduced a bug for MIPS64
    where it erroneously modified the v0 (syscall) register with the assumption
    that the sycall offset hasn't been taken into consideration. This breaks
    seccomp on MIPS64 n64 and n32 ABIs. We fix this by replacing the addition
    with a move instruction.

    Fixes: 4c21b8fd8f14 ("MIPS: seccomp: Handle indirect system calls (o32)")
    Cc: # 3.15+
    Reviewed-by: James Hogan
    Signed-off-by: Markos Chandras
    Cc: linux-mips@linux-mips.org
    Patchwork: https://patchwork.linux-mips.org/patch/10951/
    Signed-off-by: Ralf Baechle

    Markos Chandras
     
  • Pull SCSI fixes from James Bottomley:
    "This has two libfc fixes for bugs causing rare crashes, one iscsi fix
    for a potential hang on shutdown, and a fix for an I/O blocksize issue
    which caused a regression"

    * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
    sd: Fix maximum I/O size for BLOCK_PC requests
    libfc: Fix fc_fcp_cleanup_each_cmd()
    libfc: Fix fc_exch_recv_req() error path
    libiscsi: Fix host busy blocking during connection teardown

    Linus Torvalds
     

15 Aug, 2015

18 commits

  • Pull KVM fixes from Paolo Bonzini:
    "Just two very small & simple patches"

    * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
    KVM: x86: Use adjustment in guest cycles when handling MSR_IA32_TSC_ADJUST
    KVM: x86: zero IDT limit on entry to SMM

    Linus Torvalds
     
  • Merge fixes from Andrew Morton:
    "11 fixes"

    * emailed patches from Andrew Morton :
    Update maintainers for DRM STI driver
    mm: cma: mark cma_bitmap_maxno() inline in header
    zram: fix pool name truncation
    memory-hotplug: fix wrong edge when hot add a new node
    .mailmap: Andrey Ryabinin has moved
    ipc/sem.c: update/correct memory barriers
    mm/hwpoison: fix panic due to split huge zero page
    ipc,sem: remove uneeded sem_undo_list lock usage in exit_sem()
    ipc,sem: fix use after free on IPC_RMID after a task using same semaphore set exits
    mm/hwpoison: fix fail isolate hugetlbfs page w/ refcount held
    mm/hwpoison: fix page refcount of unknown non LRU page

    Linus Torvalds
     
  • Pull clock fix from Stephen Boyd:
    "A one-liner for a regression found in the PXA clock driver"

    * tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux:
    clk: pxa: pxa3xx: fix CKEN register access

    Linus Torvalds
     
  • Add Vincent Abriou and myself as maintainers.

    Signed-off-by: Benjamin Gaignard
    Cc: Vincent Abriou
    Cc: Dave Airlie
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Benjamin Gaignard
     
  • cma_bitmap_maxno() was marked as static and not static inline, which can
    cause warnings about this function not being used if this file is included
    in a file that does not call that function, and violates the conventions
    used elsewhere. The two options are to move the function implementation
    back to mm/cma.c or make it inline here, and it's simple enough for the
    latter to make sense.

    Signed-off-by: Gregory Fong
    Cc: Joonsoo Kim
    Cc: Sasha Levin
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Gregory Fong
     
  • zram_meta_alloc() constructs a pool name for zs_create_pool() call as

    snprintf(pool_name, sizeof(pool_name), "zram%d", device_id);

    However, it defines pool name buffer to be only 8 bytes long (minus
    trailing zero), which means that we can have only 1000 pool names: zram0
    -- zram999.

    With CONFIG_ZSMALLOC_STAT enabled an attempt to create a device zram1000
    can fail if device zram100 already exists, because snprintf() will
    truncate new pool name to zram100 and pass it debugfs_create_dir(),
    causing:

    debugfs dir creation failed
    zram: Error creating memory pool

    ... and so on.

    Fix it by passing zram->disk->disk_name to zram_meta_alloc() instead of
    divice_id. We construct zram%d name earlier and keep it as a ->disk_name,
    no need to snprintf() it again.

    Signed-off-by: Sergey Senozhatsky
    Cc: Minchan Kim
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Sergey Senozhatsky
     
  • When we add a new node, the edge of memory may be wrong.

    e.g. system has 4 nodes, and node3 is movable, node3 mem:[24G-32G],

    1. hotremove the node3,
    2. then hotadd node3 with a part of memory, mem:[26G-30G],
    3. call hotadd_new_pgdat()
    free_area_init_node()
    get_pfn_range_for_nid()
    4. it will return wrong start_pfn and end_pfn, because we have not
    update the memblock.

    This patch also fixes a BUG_ON during hot-addition, please see
    http://marc.info/?l=linux-kernel&m=142961156129456&w=2

    Signed-off-by: Xishi Qiu
    Cc: Yasuaki Ishimatsu
    Cc: Kamezawa Hiroyuki
    Cc: Taku Izumi
    Cc: Tang Chen
    Cc: Gu Zheng
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Xishi Qiu
     
  • Update my email address.

    Signed-off-by: Andrey Ryabinin
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrey Ryabinin
     
  • sem_lock() did not properly pair memory barriers:

    !spin_is_locked() and spin_unlock_wait() are both only control barriers.
    The code needs an acquire barrier, otherwise the cpu might perform read
    operations before the lock test.

    As no primitive exists inside and since it seems
    noone wants another primitive, the code creates a local primitive within
    ipc/sem.c.

    With regards to -stable:

    The change of sem_wait_array() is a bugfix, the change to sem_lock() is a
    nop (just a preprocessor redefinition to improve the readability). The
    bugfix is necessary for all kernels that use sem_wait_array() (i.e.:
    starting from 3.10).

    Signed-off-by: Manfred Spraul
    Reported-by: Oleg Nesterov
    Acked-by: Peter Zijlstra (Intel)
    Cc: "Paul E. McKenney"
    Cc: Kirill Tkhai
    Cc: Ingo Molnar
    Cc: Josh Poimboeuf
    Cc: Davidlohr Bueso
    Cc: [3.10+]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Manfred Spraul
     
  • Bug:

    ------------[ cut here ]------------
    kernel BUG at mm/huge_memory.c:1957!
    invalid opcode: 0000 [#1] SMP
    Modules linked in: snd_hda_codec_hdmi i915 rpcsec_gss_krb5 snd_hda_codec_realtek snd_hda_codec_generic nfsv4 dns_re
    CPU: 2 PID: 2576 Comm: test_huge Not tainted 4.2.0-rc5-mm1+ #27
    Hardware name: Dell Inc. OptiPlex 7020/0F5C5X, BIOS A03 01/08/2015
    task: ffff880204e3d600 ti: ffff8800db16c000 task.ti: ffff8800db16c000
    RIP: split_huge_page_to_list+0xdb/0x120
    Call Trace:
    memory_failure+0x32e/0x7c0
    madvise_hwpoison+0x8b/0x160
    SyS_madvise+0x40/0x240
    ? do_page_fault+0x37/0x90
    entry_SYSCALL_64_fastpath+0x12/0x71
    Code: ff f0 41 ff 4c 24 30 74 0d 31 c0 48 83 c4 08 5b 41 5c 41 5d c9 c3 4c 89 e7 e8 e2 58 fd ff 48 83 c4 08 31 c0
    RIP split_huge_page_to_list+0xdb/0x120
    RSP
    ---[ end trace aee7ce0df8e44076 ]---

    Testcase:

    #define _GNU_SOURCE
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include

    #define MB 1024*1024

    int main(void)
    {
    char *mem;

    posix_memalign((void **)&mem, 2 * MB, 200 * MB);

    madvise(mem, 200 * MB, MADV_HWPOISON);

    free(mem);

    return 0;
    }

    Huge zero page is allocated if page fault w/o FAULT_FLAG_WRITE flag.
    The get_user_pages_fast() which called in madvise_hwpoison() will get
    huge zero page if the page is not allocated before. Huge zero page is a
    tranparent huge page, however, it is not an anonymous page.
    memory_failure will split the huge zero page and trigger
    BUG_ON(is_huge_zero_page(page));

    After commit 98ed2b0052e6 ("mm/memory-failure: give up error handling
    for non-tail-refcounted thp"), memory_failure will not catch non anon
    thp from madvise_hwpoison path and this bug occur.

    Fix it by catching non anon thp in memory_failure in order to not split
    huge zero page in madvise_hwpoison path.

    After this patch:

    Injecting memory failure for page 0x202800 at 0x7fd8ae800000
    MCE: 0x202800: non anonymous thp
    [...]

    [akpm@linux-foundation.org: remove second split, per Wanpeng]
    Signed-off-by: Wanpeng Li
    Acked-by: Naoya Horiguchi
    Signed-off-by: Andrew Morton

    Signed-off-by: Linus Torvalds

    Wanpeng Li
     
  • After we acquire the sma->sem_perm lock in exit_sem(), we are protected
    against a racing IPC_RMID operation. Also at that point, we are the last
    user of sem_undo_list. Therefore it isn't required that we acquire or use
    ulp->lock.

    Signed-off-by: Herton R. Krzesinski
    Acked-by: Manfred Spraul
    Cc: Davidlohr Bueso
    Cc: Rafael Aquini
    CC: Aristeu Rozanski
    Cc: David Jeffery
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Herton R. Krzesinski
     
  • The current semaphore code allows a potential use after free: in
    exit_sem we may free the task's sem_undo_list while there is still
    another task looping through the same semaphore set and cleaning the
    sem_undo list at freeary function (the task called IPC_RMID for the same
    semaphore set).

    For example, with a test program [1] running which keeps forking a lot
    of processes (which then do a semop call with SEM_UNDO flag), and with
    the parent right after removing the semaphore set with IPC_RMID, and a
    kernel built with CONFIG_SLAB, CONFIG_SLAB_DEBUG and
    CONFIG_DEBUG_SPINLOCK, you can easily see something like the following
    in the kernel log:

    Slab corruption (Not tainted): kmalloc-64 start=ffff88003b45c1c0, len=64
    000: 6b 6b 6b 6b 6b 6b 6b 6b 00 6b 6b 6b 6b 6b 6b 6b kkkkkkkk.kkkkkkk
    010: ff ff ff ff 6b 6b 6b 6b ff ff ff ff ff ff ff ff ....kkkk........
    Prev obj: start=ffff88003b45c180, len=64
    000: 00 00 00 00 ad 4e ad de ff ff ff ff 5a 5a 5a 5a .....N......ZZZZ
    010: ff ff ff ff ff ff ff ff c0 fb 01 37 00 88 ff ff ...........7....
    Next obj: start=ffff88003b45c200, len=64
    000: 00 00 00 00 ad 4e ad de ff ff ff ff 5a 5a 5a 5a .....N......ZZZZ
    010: ff ff ff ff ff ff ff ff 68 29 a7 3c 00 88 ff ff ........h). 8b 84 24 88 03 00 00 49 8d 8c 24 60 05 00 00 8b 53 04 48 89
    RIP [] spin_dump+0x53/0xc0
    RSP
    ---[ end trace 783ebb76612867a0 ]---
    NMI watchdog: BUG: soft lockup - CPU#3 stuck for 22s! [test:18053]
    Modules linked in: 8021q mrp garp stp llc nf_conntrack_ipv4 nf_defrag_ipv4 ip6t_REJECT nf_reject_ipv6 nf_conntrack_ipv6 nf_defrag_ipv6 xt_state nf_conntrack ip6table_filter ip6_tables binfmt_misc ppdev input_leds joydev parport_pc parport floppy serio_raw virtio_balloon virtio_rng virtio_console virtio_net iosf_mbi crct10dif_pclmul crc32_pclmul ghash_clmulni_intel pcspkr qxl ttm drm_kms_helper drm snd_hda_codec_generic i2c_piix4 snd_hda_intel snd_hda_codec snd_hda_core snd_hwdep snd_seq snd_seq_device snd_pcm snd_timer snd soundcore crc32c_intel virtio_pci virtio_ring virtio pata_acpi ata_generic [last unloaded: speedstep_lib]
    CPU: 3 PID: 18053 Comm: test Tainted: G D 4.2.0-rc5+ #1
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.8.1-20150318_183358- 04/01/2014
    RIP: native_read_tsc+0x0/0x20
    Call Trace:
    ? delay_tsc+0x40/0x70
    __delay+0xf/0x20
    do_raw_spin_lock+0x96/0x140
    _raw_spin_lock+0xe/0x10
    sem_lock_and_putref+0x11/0x70
    SYSC_semtimedop+0x7bf/0x960
    ? handle_mm_fault+0xbf6/0x1880
    ? dequeue_task_fair+0x79/0x4a0
    ? __do_page_fault+0x19a/0x430
    ? kfree_debugcheck+0x16/0x40
    ? __do_page_fault+0x19a/0x430
    ? __audit_syscall_entry+0xa8/0x100
    ? do_audit_syscall_entry+0x66/0x70
    ? syscall_trace_enter_phase1+0x139/0x160
    SyS_semtimedop+0xe/0x10
    SyS_semop+0x10/0x20
    entry_SYSCALL_64_fastpath+0x12/0x71
    Code: 47 10 83 e8 01 85 c0 89 47 10 75 08 65 48 89 3d 1f 74 ff 7e c9 c3 0f 1f 44 00 00 55 48 89 e5 e8 87 17 04 00 66 90 c9 c3 0f 1f 00 48 89 e5 0f 31 89 c1 48 89 d0 48 c1 e0 20 89 c9 48 09 c8 c9
    Kernel panic - not syncing: softlockup: hung tasks

    I wasn't able to trigger any badness on a recent kernel without the
    proper config debugs enabled, however I have softlockup reports on some
    kernel versions, in the semaphore code, which are similar as above (the
    scenario is seen on some servers running IBM DB2 which uses semaphore
    syscalls).

    The patch here fixes the race against freeary, by acquiring or waiting
    on the sem_undo_list lock as necessary (exit_sem can race with freeary,
    while freeary sets un->semid to -1 and removes the same sem_undo from
    list_proc or when it removes the last sem_undo).

    After the patch I'm unable to reproduce the problem using the test case
    [1].

    [1] Test case used below:

    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include
    #include

    #define NSEM 1
    #define NSET 5

    int sid[NSET];

    void thread()
    {
    struct sembuf op;
    int s;
    uid_t pid = getuid();

    s = rand() % NSET;
    op.sem_num = pid % NSEM;
    op.sem_op = 1;
    op.sem_flg = SEM_UNDO;

    semop(sid[s], &op, 1);
    exit(EXIT_SUCCESS);
    }

    void create_set()
    {
    int i, j;
    pid_t p;
    union {
    int val;
    struct semid_ds *buf;
    unsigned short int *array;
    struct seminfo *__buf;
    } un;

    /* Create and initialize semaphore set */
    for (i = 0; i < NSET; i++) {
    sid[i] = semget(IPC_PRIVATE , NSEM, 0644 | IPC_CREAT);
    if (sid[i] < 0) {
    perror("semget");
    exit(EXIT_FAILURE);
    }
    }
    un.val = 0;
    for (i = 0; i < NSET; i++) {
    for (j = 0; j < NSEM; j++) {
    if (semctl(sid[i], j, SETVAL, un) < 0)
    perror("semctl");
    }
    }

    /* Launch threads that operate on semaphore set */
    for (i = 0; i < NSEM * NSET * NSET; i++) {
    p = fork();
    if (p < 0)
    perror("fork");
    if (p == 0)
    thread();
    }

    /* Free semaphore set */
    for (i = 0; i < NSET; i++) {
    if (semctl(sid[i], NSEM, IPC_RMID))
    perror("IPC_RMID");
    }

    /* Wait for forked processes to exit */
    while (wait(NULL)) {
    if (errno == ECHILD)
    break;
    };
    }

    int main(int argc, char **argv)
    {
    pid_t p;

    srand(time(NULL));

    while (1) {
    p = fork();
    if (p < 0) {
    perror("fork");
    exit(EXIT_FAILURE);
    }
    if (p == 0) {
    create_set();
    goto end;
    }

    /* Wait for forked processes to exit */
    while (wait(NULL)) {
    if (errno == ECHILD)
    break;
    };
    }
    end:
    return 0;
    }

    [akpm@linux-foundation.org: use normal comment layout]
    Signed-off-by: Herton R. Krzesinski
    Acked-by: Manfred Spraul
    Cc: Davidlohr Bueso
    Cc: Rafael Aquini
    CC: Aristeu Rozanski
    Cc: David Jeffery
    Cc:
    Signed-off-by: Andrew Morton

    Signed-off-by: Linus Torvalds

    Herton R. Krzesinski
     
  • Hugetlbfs pages will get a refcount in get_any_page() or
    madvise_hwpoison() if soft offlining through madvise. The refcount which
    is held by the soft offline path should be released if we fail to isolate
    hugetlbfs pages.

    Fix it by reducing the refcount for both isolation success and failure.

    Signed-off-by: Wanpeng Li
    Acked-by: Naoya Horiguchi
    Cc: [3.9+]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Wanpeng Li
     
  • After trying to drain pages from pagevec/pageset, we try to get reference
    count of the page again, however, the reference count of the page is not
    reduced if the page is still not on LRU list.

    Fix it by adding the put_page() to drop the page reference which is from
    __get_any_page().

    Signed-off-by: Wanpeng Li
    Acked-by: Naoya Horiguchi
    Cc: [3.9+]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Wanpeng Li
     
  • Pull timer fix from Ingo Molnar:
    "A single clocksource driver suspend/resume fix"

    * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    clockevents/drivers/sh_cmt: Only perform clocksource suspend/resume if enabled

    Linus Torvalds
     
  • Pull perf fixes from Ingo Molnar:
    "Misc fixes: PMU driver corner cases, tooling fixes, and an 'AUX'
    (Intel PT) race related core fix"

    * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    perf/x86/intel/cqm: Do not access cpu_data() from CPU_UP_PREPARE handler
    perf/x86/intel: Fix memory leak on hot-plug allocation fail
    perf: Fix PERF_EVENT_IOC_PERIOD migration race
    perf: Fix double-free of the AUX buffer
    perf: Fix fasync handling on inherited events
    perf tools: Fix test build error when bindir contains double slash
    perf stat: Fix transaction lenght metrics
    perf: Fix running time accounting

    Linus Torvalds
     
  • Pull locking fix from Ingo Molnar:
    "A single fix for a locking self-test crash"

    * 'locking-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    locking/pvqspinlock: Fix kernel panic in locking-selftest

    Linus Torvalds
     
  • Pull drm fixes from Dave Airlie:
    "Back from holidays, found these in the cracks: one nouveau revert, one
    vmwgfx locking fix and a bunch of exynos fixes"

    * 'drm-fixes' of git://people.freedesktop.org/~airlied/linux:
    Revert "drm/nouveau/fifo/gk104: kick channels when deactivating them"
    drm/vmwgfx: Fix execbuf locking issues
    drm/exynos/fimc: fix runtime pm support
    drm/exynos/mixer: always update INT_EN cache
    drm/exynos/mixer: correct vsync configuration sequence
    drm/exynos/mixer: fix interrupt clearing
    drm/exynos/hdmi: fix edid memory leak
    drm/exynos: gsc: fix wrong bitwise operation for swap detection

    Linus Torvalds
     

14 Aug, 2015

9 commits

  • This reverts commit 1addc1264852

    This commit seems to cause crashes in gk104_fifo_intr_runlist() by
    returning 0xbad0da00 when register 0x2a00 is read. Since this commit was
    intended for GM20B which is not completely supported yet, let's revert
    it for the time being.

    Reported-by: Eric Biggers
    Signed-off-by: Alexandre Courbot
    Tested-by: Afzal Mohammed
    Signed-off-by: Dave Airlie

    Alexandre Courbot
     
  • This addresses two issues that cause problems with viewperf maya-03 in
    situation with memory pressure.

    The first issue causes attempts to unreserve buffers if batched
    reservation fails due to, for example, a signal pending. While previously
    the ttm_eu api was resistant against this type of error, it is no longer
    and the lockdep code will complain about attempting to unreserve buffers
    that are not reserved. The issue is resolved by avoid calling
    ttm_eu_backoff_reservation in the buffer reserve error path.

    The second issue is that the binding_mutex may be held when user-space
    fence objects are created and hence during memory reclaims. This may cause
    recursive attempts to grab the binding mutex. The issue is resolved by not
    holding the binding mutex across fence creation and submission.

    Signed-off-by: Thomas Hellstrom
    Reviewed-by: Sinclair Yeh
    Cc:
    Signed-off-by: Dave Airlie

    Thomas Hellstrom
     
  • …/daeinki/drm-exynos into drm-fixes

    This pull request fixes memory leak and some issues related to
    mixer and gscaler driver issues.

    * 'exynos-drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/daeinki/drm-exynos:
    drm/exynos/fimc: fix runtime pm support
    drm/exynos/mixer: always update INT_EN cache
    drm/exynos/mixer: correct vsync configuration sequence
    drm/exynos/mixer: fix interrupt clearing
    drm/exynos/hdmi: fix edid memory leak
    drm/exynos: gsc: fix wrong bitwise operation for swap detection

    Dave Airlie
     
  • Pull ARM fixes from Russell King:
    "Another few small ARM fixes, mostly addressing some VDSO issues"

    * 'fixes' of git://ftp.arm.linux.org.uk/~rmk/linux-arm:
    ARM: 8410/1: VDSO: fix coarse clock monotonicity regression
    ARM: 8409/1: Mark ret_fast_syscall as a function
    ARM: 8408/1: Fix the secondary_startup function in Big Endian case
    ARM: 8405/1: VDSO: fix regression with toolchains lacking ld.bfd executable

    Linus Torvalds
     
  • Commit 3f5159a9221f ("x86/asm/entry/32: Update -ENOSYS handling to match
    the 64-bit logic") broke the ENOSYS handling for the 32-bit compat case.
    The proper error return value was never loaded into %rax, except if
    things just happened to go through the audit paths, which ended up
    reloading the return value.

    This moves the loading or %rax into the normal system call path, just to
    make sure the error case triggers it. It's kind of sad, since it adds a
    useless instruction to reload the register to the fast path, but it's
    not like that single load from the stack is going to be noticeable.

    Reported-by: David Drysdale
    Tested-by: Kees Cook
    Acked-by: Andy Lutomirski
    Cc: Denys Vlasenko
    Cc: Ingo Molnar
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • Pull device mapper fixes from Mike Snitzer:

    - two stable fixes for corruption seen in a snapshot of thinp metadata;
    metadata snapshots aren't widely used but help provide a consistent
    view of the metadata associated with an active thin-pool.

    - a dm-cache fix for the 4.2 "default" policy switch from "mq" to "smq"

    * tag 'dm-4.2-fixes-5' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm:
    dm cache policy smq: move 'dm-cache-default' module alias to SMQ
    dm btree: add ref counting ops for the leaves of top level btrees
    dm thin metadata: delete btrees when releasing metadata snapshot

    Linus Torvalds
     
  • Pull xen block driver fixes from Jens Axboe:
    "A few small bug fixes for xen-blk{front,back} that have been sitting
    over my vacation"

    * 'for-linus' of git://git.kernel.dk/linux-block:
    xen-blkback: replace work_pending with work_busy in purge_persistent_gnt()
    xen-blkfront: don't add indirect pages to list when !feature_persistent
    xen-blkfront: introduce blkfront_gather_backend_features()

    Linus Torvalds
     
  • Pull xen bug fixes from David Vrabel:

    - revert a fix from 4.2-rc5 that was causing lots of WARNING spam.

    - fix a memory leak affecting backends in HVM guests.

    - fix PV domU hang with certain configurations.

    * tag 'for-linus-4.2-rc6-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
    xen/xenbus: Don't leak memory when unmapping the ring on HVM backend
    Revert "xen/events/fifo: Handle linked events when closing a port"
    x86/xen: build "Xen PV" APIC driver for domU as well

    Linus Torvalds
     
  • This reverts commits 9a036b93a344 ("x86/signal/64: Remove 'fs' and 'gs'
    from sigcontext") and c6f2062935c8 ("x86/signal/64: Fix SS handling for
    signals delivered to 64-bit programs").

    They were cleanups, but they break dosemu by changing the signal return
    behavior (and removing 'fs' and 'gs' from the sigcontext struct - while
    not actually changing any behavior - causes build problems).

    Reported-and-tested-by: Stas Sergeev
    Acked-by: Andy Lutomirski
    Cc: Ingo Molnar
    Cc: stable@vger.kernel.org
    Signed-off-by: Linus Torvalds

    Linus Torvalds