28 Oct, 2016

17 commits

  • Content and employer changed.

    Link: http://lkml.kernel.org/r/1477304102-28830-1-git-send-email-martin.kepplinger@ginzinger.com
    Signed-off-by: Martin Kepplinger
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Martin Kepplinger
     
  • Reading auxv of any kernel thread results in NULL pointer dereferencing
    in auxv_read() where mm can be NULL. Fix that by checking for NULL mm
    and bailing out early. This is also the original behavior changed by
    recent commit c5317167854e ("proc: switch auxv to use of __mem_open()").

    # cat /proc/2/auxv
    Unable to handle kernel NULL pointer dereference at virtual address 000000a8
    Internal error: Oops: 17 [#1] PREEMPT SMP ARM
    CPU: 3 PID: 113 Comm: cat Not tainted 4.9.0-rc1-ARCH+ #1
    Hardware name: BCM2709
    task: ea3b0b00 task.stack: e99b2000
    PC is at auxv_read+0x24/0x4c
    LR is at do_readv_writev+0x2fc/0x37c
    Process cat (pid: 113, stack limit = 0xe99b2210)
    Call chain:
    auxv_read
    do_readv_writev
    vfs_readv
    default_file_splice_read
    splice_direct_to_actor
    do_splice_direct
    do_sendfile
    SyS_sendfile64
    ret_fast_syscall

    Fixes: c5317167854e ("proc: switch auxv to use of __mem_open()")
    Link: http://lkml.kernel.org/r/1476966200-14457-1-git-send-email-chianglungyu@gmail.com
    Signed-off-by: Leon Yu
    Acked-by: Oleg Nesterov
    Acked-by: Michal Hocko
    Cc: Al Viro
    Cc: Kees Cook
    Cc: John Stultz
    Cc: Mateusz Guzik
    Cc: Janis Danisevskis
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Leon Yu
     
  • Commit 68f24b08ee89 ("sched/core: Free the stack early if
    CONFIG_THREAD_INFO_IN_TASK") may cause the task->stack to be freed
    during kmemleak_scan() execution, leading to either a NULL pointer fault
    (if task->stack is NULL) or kmemleak accessing already freed memory.

    This patch uses the new try_get_task_stack() API to ensure that the task
    stack is not freed during kmemleak stack scanning.

    Addresses https://bugzilla.kernel.org/show_bug.cgi?id=173901.

    Fixes: 68f24b08ee89 ("sched/core: Free the stack early if CONFIG_THREAD_INFO_IN_TASK")
    Link: http://lkml.kernel.org/r/1476266223-14325-1-git-send-email-catalin.marinas@arm.com
    Signed-off-by: Catalin Marinas
    Reported-by: CAI Qian
    Tested-by: CAI Qian
    Acked-by: Michal Hocko
    Cc: Andy Lutomirski
    Cc: CAI Qian
    Cc: Hillf Danton
    Cc: Oleg Nesterov
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Catalin Marinas
     
  • KASAN uses stackdepot to memorize stacks for all kmalloc/kfree calls.
    Current stackdepot capacity is 16MB (1024 top level entries x 4 pages on
    second level). Size of each stack is (num_frames + 3) * sizeof(long).
    Which gives us ~84K stacks. This capacity was chosen empirically and it
    is enough to run kernel normally.

    However, when lots of configs are enabled and a fuzzer tries to maximize
    code coverage, it easily hits the limit within tens of minutes. I've
    tested for long a time with number of top level entries bumped 4x
    (4096). And I think I've seen overflow only once. But I don't have all
    configs enabled and code coverage has not reached maximum yet. So bump
    it 8x to 8192.

    Since we have two-level table, memory cost of this is very moderate --
    currently the top-level table is 8KB, with this patch it is 64KB, which
    is negligible under KASAN.

    Here is some approx math.

    128MB allows us to memorize ~670K stacks (assuming stack is ~200b).
    I've grepped kernel for kmalloc|kfree|kmem_cache_alloc|kmem_cache_free|
    kzalloc|kstrdup|kstrndup|kmemdup and it gives ~60K matches. Most of
    alloc/free call sites are reachable with only one stack. But some
    utility functions can have large fanout. Assuming average fanout is 5x,
    total number of alloc/free stacks is ~300K.

    Link: http://lkml.kernel.org/r/1476458416-122131-1-git-send-email-dvyukov@google.com
    Signed-off-by: Dmitry Vyukov
    Cc: Andrey Ryabinin
    Cc: Alexander Potapenko
    Cc: Joonsoo Kim
    Cc: Baozeng Ding
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Dmitry Vyukov
     
  • When building with the latent_entropy plugin, set the default
    CONFIG_FRAME_WARN to 2048, since some __init functions have many basic
    blocks that, when instrumented by the latent_entropy plugin, grow beyond
    1024 byte stack size on 32-bit builds.

    Link: http://lkml.kernel.org/r/20161018211216.GA39687@beast
    Signed-off-by: Kees Cook
    Reported-by: kbuild test robot
    Cc: Emese Revfy
    Cc: Ingo Molnar
    Cc: Michal Marek
    Cc: "Paul E. McKenney"
    Cc: Dan Williams
    Cc: Andrey Ryabinin
    Cc: Josh Poimboeuf
    Cc: Tejun Heo
    Cc: Nikolay Aleksandrov
    Cc: Dmitry Vyukov
    Cc: Shuah Khan
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Kees Cook
     
  • The use of config_enabled() is ambiguous. For config options,
    IS_ENABLED(), IS_REACHABLE(), etc. will make intention clearer.
    Sometimes config_enabled() has been used for non-config options because
    it is useful to check whether the given symbol is defined or not.

    I have been tackling on deprecating config_enabled(), and now is the
    time to finish this work.

    Some new users have appeared for v4.9-rc1, but it is trivial to replace
    them:

    - arch/x86/mm/kaslr.c
    replace config_enabled() with IS_ENABLED() because
    CONFIG_X86_ESPFIX64 and CONFIG_EFI are boolean.

    - include/asm-generic/export.h
    replace config_enabled() with __is_defined().

    Then, config_enabled() can be removed now.

    Going forward, please use IS_ENABLED(), IS_REACHABLE(), etc. for config
    options, and __is_defined() for non-config symbols.

    Link: http://lkml.kernel.org/r/1476616078-32252-1-git-send-email-yamada.masahiro@socionext.com
    Signed-off-by: Masahiro Yamada
    Acked-by: Ingo Molnar
    Acked-by: Nicolas Pitre
    Cc: Peter Oberparleiter
    Cc: Arnd Bergmann
    Cc: Kees Cook
    Cc: Michal Marek
    Cc: "H. Peter Anvin"
    Cc: Thomas Gleixner
    Cc: Thomas Garnier
    Cc: Paul Bolle
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Masahiro Yamada
     
  • When kmem accounting switched from account by default to only account if
    flagged by __GFP_ACCOUNT, IPC mqueue and messages was left out.

    The production use case at hand is that mqueues should be customizable
    via sysctls in Docker containers in a Kubernetes cluster. This can only
    be safely allowed to the users of the cluster (without the risk that
    they can cause resource shortage on a node, influencing other users'
    containers) if all resources they control are bounded, i.e. accounted
    for.

    Link: http://lkml.kernel.org/r/1476806075-1210-1-git-send-email-arozansk@redhat.com
    Signed-off-by: Aristeu Rozanski
    Reported-by: Stefan Schimanski
    Acked-by: Davidlohr Bueso
    Cc: Alexey Dobriyan
    Cc: Johannes Weiner
    Cc: Michal Hocko
    Cc: Vladimir Davydov
    Cc: Stefan Schimanski
    Cc: Michal Hocko
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Aristeu Rozanski
     
  • On large systems, when some slab caches grow to millions of objects (and
    many gigabytes), running 'cat /proc/slabinfo' can take up to 1-2
    seconds. During this time, interrupts are disabled while walking the
    slab lists (slabs_full, slabs_partial, and slabs_free) for each node,
    and this sometimes causes timeouts in other drivers (for instance,
    Infiniband).

    This patch optimizes 'cat /proc/slabinfo' by maintaining a counter for
    total number of allocated slabs per node, per cache. This counter is
    updated when a slab is created or destroyed. This enables us to skip
    traversing the slabs_full list while gathering slabinfo statistics, and
    since slabs_full tends to be the biggest list when the cache is large,
    it results in a dramatic performance improvement. Getting slabinfo
    statistics now only requires walking the slabs_free and slabs_partial
    lists, and those lists are usually much smaller than slabs_full.

    We tested this after growing the dentry cache to 70GB, and the
    performance improved from 2s to 5ms.

    Link: http://lkml.kernel.org/r/1472517876-26814-1-git-send-email-aruna.ramakrishna@oracle.com
    Signed-off-by: Aruna Ramakrishna
    Acked-by: David Rientjes
    Cc: Mike Kravetz
    Cc: Christoph Lameter
    Cc: Pekka Enberg
    Cc: David Rientjes
    Cc: Joonsoo Kim
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Aruna Ramakrishna
     
  • Recent changes to printk require KERN_CONT uses to continue logging
    messages. So add KERN_CONT where necessary.

    [akpm@linux-foundation.org: coding-style fixes]
    Fixes: 4bcc595ccd80 ("printk: reinstate KERN_CONT for printing continuation lines")
    Link: http://lkml.kernel.org/r/c7df37c8665134654a17aaeb8b9f6ace1d6db58b.1476239034.git.joe@perches.com
    Reported-by: Mark Rutland
    Signed-off-by: Joe Perches
    Acked-by: Michal Hocko
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joe Perches
     
  • As described in https://bugzilla.kernel.org/show_bug.cgi?id=177821:

    After some analysis it seems to be that the problem is in alloc_super().
    In case list_lru_init_memcg() fails it goes into destroy_super(), which
    calls list_lru_destroy().

    And in list_lru_init() we see that in case memcg_init_list_lru() fails,
    lru->node is freed, but not set NULL, which then leads list_lru_destroy()
    to believe it is initialized and call memcg_destroy_list_lru().
    memcg_destroy_list_lru() in turn can access lru->node[i].memcg_lrus,
    which is NULL.

    [akpm@linux-foundation.org: add comment]
    Signed-off-by: Alexander Polakov
    Acked-by: Vladimir Davydov
    Cc: Al Viro
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Alexander Polakov
     
  • Back in commit f56141e3e2d9 ("all arches, signal: move restart_block to
    struct task_struct"), all architectures and core code were changed to
    use task_struct::restart_block. However, when h8300 support was
    subsequently restored in v4.2, it was not updated to account for this,
    and maintains thread_info::restart_block, which is not kept in sync.

    This patch drops the redundant restart_block from thread_info, and moves
    h8300 to the common one in task_struct, ensuring that syscall restarting
    always works as expected.

    Fixes: f56141e3e2d9 ("all arches, signal: move restart_block to struct task_struct")
    Link: http://lkml.kernel.org/r/1476714934-11635-1-git-send-email-mark.rutland@arm.com
    Signed-off-by: Mark Rutland
    Cc: Andy Lutomirski
    Cc: Yoshinori Sato
    Cc: uclinux-h8-devel@lists.sourceforge.jp
    Cc: [4.2+]
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Mark Rutland
     
  • in_interrupt() returns a nonzero value when we are either in an
    interrupt or have bh disabled via local_bh_disable(). Since we are
    interested in only ignoring coverage from actual interrupts, do a proper
    check instead of just calling in_interrupt().

    As a result of this change, kcov will start to collect coverage from
    within local_bh_disable()/local_bh_enable() sections.

    Link: http://lkml.kernel.org/r/1476115803-20712-1-git-send-email-andreyknvl@google.com
    Signed-off-by: Andrey Konovalov
    Acked-by: Dmitry Vyukov
    Cc: Nicolai Stange
    Cc: Andrey Ryabinin
    Cc: Kees Cook
    Cc: James Morse
    Cc: Vegard Nossum
    Cc: Quentin Casasnovas
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Andrey Konovalov
     
  • There is a bug report that SLAB makes extreme load average due to over
    2000 kworker thread.

    https://bugzilla.kernel.org/show_bug.cgi?id=172981

    This issue is caused by kmemcg feature that try to create new set of
    kmem_caches for each memcg. Recently, kmem_cache creation is slowed by
    synchronize_sched() and futher kmem_cache creation is also delayed since
    kmem_cache creation is synchronized by a global slab_mutex lock. So,
    the number of kworker that try to create kmem_cache increases quietly.

    synchronize_sched() is for lockless access to node's shared array but
    it's not needed when a new kmem_cache is created. So, this patch rules
    out that case.

    Fixes: 801faf0db894 ("mm/slab: lockless decision to grow cache")
    Link: http://lkml.kernel.org/r/1475734855-4837-1-git-send-email-iamjoonsoo.kim@lge.com
    Reported-by: Doug Smythies
    Tested-by: Doug Smythies
    Signed-off-by: Joonsoo Kim
    Cc: Christoph Lameter
    Cc: Pekka Enberg
    Cc: David Rientjes
    Cc:
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Joonsoo Kim
     
  • Pull SCSI fixes from James Bottomley:
    "Two small fixes: one is a fatal section mismatch (reference to init
    after it's discarded) and the other two are iscsi locking fixes"

    * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
    scsi: NCR5380: no longer mark irq probing as __init
    scsi: be2iscsi: Replace _bh with _irqsave/irqrestore
    scsi: libiscsi: Fix locking in __iscsi_conn_send_pdu

    Linus Torvalds
     
  • Pull libata fixes from Tejun Heo:
    "The AHCI MSI handling change in rc1 was a bit broken and caused disk
    probing failures on some machines. These three patches should fix the
    issues"

    David Howells comments:
    "My test machine fell foul of this using a PCIe M.2-attached SSD card.
    The patches fix it for me"

    * 'for-4.9-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata:
    ahci: fix the single MSI-X case in ahci_init_one
    ahci: fix nvec check
    ahci: only try to use multi-MSI mode if there is more than 1 port

    Linus Torvalds
     
  • Pull block fixes from Jens Axboe:
    "A set of fixes for this series, most notably the fix for the blk-mq
    software queue regression in from this merge window.

    Apart from that, a fix for an unlikely hang if a queue is flooded with
    FUA requests from Ming, and a few small fixes for nbd and badblocks.
    Lastly, a rename update for the proc softirq output, since the block
    polling code was made generic"

    * 'for-linus' of git://git.kernel.dk/linux-block:
    blk-mq: update hardware and software queues for sleeping alloc
    block: flush: fix IO hang in case of flood fua req
    nbd: fix incorrect unlock of nbd->sock_lock in sock_shutdown
    badblocks: badblocks_set/clear update unacked_exist
    softirq: Display IRQ_POLL for irq-poll statistics

    Linus Torvalds
     
  • The per-zone waitqueues exist because of a scalability issue with the
    page waitqueues on some NUMA machines, but it turns out that they hurt
    normal loads, and now with the vmalloced stacks they also end up
    breaking gfs2 that uses a bit_wait on a stack object:

    wait_on_bit(&gh->gh_iflags, HIF_WAIT, TASK_UNINTERRUPTIBLE)

    where 'gh' can be a reference to the local variable 'mount_gh' on the
    stack of fill_super().

    The reason the per-zone hash table breaks for this case is that there is
    no "zone" for virtual allocations, and trying to look up the physical
    page to get at it will fail (with a BUG_ON()).

    It turns out that I actually complained to the mm people about the
    per-zone hash table for another reason just a month ago: the zone lookup
    also hurts the regular use of "unlock_page()" a lot, because the zone
    lookup ends up forcing several unnecessary cache misses and generates
    horrible code.

    As part of that earlier discussion, we had a much better solution for
    the NUMA scalability issue - by just making the page lock have a
    separate contention bit, the waitqueue doesn't even have to be looked at
    for the normal case.

    Peter Zijlstra already has a patch for that, but let's see if anybody
    even notices. In the meantime, let's fix the actual gfs2 breakage by
    simplifying the bitlock waitqueues and removing the per-zone issue.

    Reported-by: Andreas Gruenbacher
    Tested-by: Bob Peterson
    Acked-by: Mel Gorman
    Cc: Peter Zijlstra
    Cc: Andy Lutomirski
    Cc: Steven Whitehouse
    Signed-off-by: Linus Torvalds

    Linus Torvalds
     

27 Oct, 2016

1 commit

  • If we end up sleeping due to running out of requests, we should
    update the hardware and software queues in the map ctx structure.
    Otherwise we could end up having rq->mq_ctx point to the pre-sleep
    context, and risk corrupting ctx->rq_list since we'll be
    grabbing the wrong lock when inserting the request.

    Reported-by: Dave Jones
    Reported-by: Chris Mason
    Tested-by: Chris Mason
    Fixes: 63581af3f31e ("blk-mq: remove non-blocking pass in blk_mq_map_request")
    Signed-off-by: Jens Axboe

    Jens Axboe
     

26 Oct, 2016

1 commit


25 Oct, 2016

8 commits

  • We need to make sure hpriv->irq is set properly if we don't use per-port
    vectors, so switch from blindly assigning pdev->irq to using
    pci_irq_vector, which handles all interrupt types correctly.

    Signed-off-by: Christoph Hellwig
    Reported-by: Robert Richter
    Tested-by: Robert Richter
    Tested-by: David Daney
    Fixes: 0b9e2988ab22 ("ahci: use pci_alloc_irq_vectors")
    Signed-off-by: Tejun Heo

    Christoph Hellwig
     
  • Pull crypto fix from Herbert Xu:
    "This fixes a regression caused by the stack vmalloc change"

    * 'linus' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6:
    hwrng: core - Don't use a stack buffer in add_early_randomness()

    Linus Torvalds
     
  • Pull clk fixes from Stephen Boyd:
    "This is the first batch of clk driver fixes for this release.

    We have a handful of fixes for the uniphier clk driver that was
    introduced recently, as well as Kconfig option hiding, module
    autoloading markings, and a few fixes for clk_hw based registration
    patches that went in this merge window"

    * tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux:
    clk: at91: Fix a return value in case of error
    clk: uniphier: rename MIO clock to SD clock for Pro5, PXs2, LD20 SoCs
    clk: uniphier: fix memory overrun bug
    clk: hi6220: use CLK_OF_DECLARE_DRIVER for sysctrl and mediactrl clock init
    clk: mvebu: armada-37xx-periph: Fix the clock gate flag
    clk: bcm2835: Clamp the PLL's requested rate to the hardware limits.
    clk: max77686: fix number of clocks setup for clk_hw based registration
    clk: mvebu: armada-37xx-periph: Fix the clock provider registration
    clk: core: add __init decoration for CLK_OF_DECLARE_DRIVER function
    clk: mediatek: Add hardware dependency
    clk: samsung: clk-exynos-audss: Fix module autoload
    clk: uniphier: fix type of variable passed to regmap_read()
    clk: uniphier: add system clock support for sLD3 SoC

    Linus Torvalds
     
  • Pull GPIO fixes from Linus Walleij:
    "Here is a set of GPIO fixes for the v4.9 kernel series:

    - Fix up off-by one and line offset validation, info leak to
    userspace, and reject invalid flags. Those are especially valuable
    hardening patches from Lars-Peter Clausen, all tagged for stable.

    - Fix module autoload for TS4800 and ATH79.

    - Correct the IRQ handler for MPC8xxx to use handle_level_irq() as it
    (a) reacts to edges not levels and (b) even implements .irq_ack().
    We were missing IRQs here.

    - Fix the error path for acpi_dev_gpio_irq_get()

    - Fix a memory leak in the MXS driver.

    - Fix an annoying typo in the STMPE driver.

    - Put a dependency on sysfs to the mockup driver"

    * tag 'gpio-v4.9-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio:
    gpio: mpc8xxx: Correct irq handler function
    gpio: ath79: Fix module autoload
    gpio: ts4800: Fix module autoload
    gpio: GPIO_GET_LINEEVENT_IOCTL: Reject invalid line and event flags
    gpio: GPIO_GET_LINEHANDLE_IOCTL: Reject invalid line flags
    gpio: GPIOHANDLE_GET_LINE_VALUES_IOCTL: Fix information leak
    gpio: GPIO_GET_LINEEVENT_IOCTL: Validate line offset
    gpio: GPIOHANDLE_GET_LINE_VALUES_IOCTL: Fix information leak
    gpio: GPIO_GET_LINEHANDLE_IOCTL: Validate line offset
    gpio: GPIO_GET_CHIPINFO_IOCTL: Fix information leak
    gpio: GPIO_GET_CHIPINFO_IOCTL: Fix line offset validation
    gpio / ACPI: fix returned error from acpi_dev_gpio_irq_get()
    gpio: mockup: add sysfs dependency
    gpio: stmpe: || vs && typo
    gpio: mxs: Unmap region obtained by of_iomap
    gpio/board.txt: point to gpiod_set_value

    Linus Torvalds
     
  • Pull xen fixes from David Vrabel:

    - advertise control feature flags in xenstore

    - fix x86 build when XEN_PVHVM is disabled

    * tag 'for-linus-4.9-rc2-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
    xenbus: check return value of xenbus_scanf()
    xenbus: prefer list_for_each()
    x86: xen: move cpu_up functions out of ifdef
    xenbus: advertise control feature flags

    Linus Torvalds
     
  • This patch unexports the low-level __get_user_pages() function.

    Recent refactoring of the get_user_pages* functions allow flags to be
    passed through get_user_pages() which eliminates the need for access to
    this function from its one user, kvm.

    We can see that the two calls to get_user_pages() which replace
    __get_user_pages() in kvm_main.c are equivalent by examining their call
    stacks:

    get_user_page_nowait():
    get_user_pages(start, 1, flags, page, NULL)
    __get_user_pages_locked(current, current->mm, start, 1, page, NULL, NULL,
    false, flags | FOLL_TOUCH)
    __get_user_pages(current, current->mm, start, 1,
    flags | FOLL_TOUCH | FOLL_GET, page, NULL, NULL)

    check_user_page_hwpoison():
    get_user_pages(addr, 1, flags, NULL, NULL)
    __get_user_pages_locked(current, current->mm, addr, 1, NULL, NULL, NULL,
    false, flags | FOLL_TOUCH)
    __get_user_pages(current, current->mm, addr, 1, flags | FOLL_TOUCH, NULL,
    NULL, NULL)

    Signed-off-by: Lorenzo Stoakes
    Acked-by: Paolo Bonzini
    Acked-by: Michal Hocko
    Signed-off-by: Linus Torvalds

    Lorenzo Stoakes
     
  • Now that Lorenzo cleaned things up and made the FOLL_FORCE users
    explicit, it becomes obvious how some of them don't really need
    FOLL_FORCE at all.

    So remove FOLL_FORCE from the proc code that reads the command line and
    arguments from user space.

    The mem_rw() function actually does want FOLL_FORCE, because gdd (and
    possibly many other debuggers) use it as a much more convenient version
    of PTRACE_PEEKDATA, but we should consider making the FOLL_FORCE part
    conditional on actually being a ptracer. This does not actually do
    that, just moves adds a comment to that effect and moves the gup_flags
    settings next to each other.

    Signed-off-by: Linus Torvalds

    Linus Torvalds
     
  • Commit 0eadf37afc250 ("nbd: allow block mq to deal with timeouts")
    changed normal usage of nbd->sock_lock to use spin_lock/spin_unlock
    rather than the *_irq variants, but it missed this unlock in an
    error path.

    Found by Coverity, CID 1373871.

    Signed-off-by: John W. Linville
    Cc: Josef Bacik
    Cc: Jens Axboe
    Cc: Markus Pargmann
    Fixes: 0eadf37afc250 ("nbd: allow block mq to deal with timeouts")
    Signed-off-by: Jens Axboe

    John W. Linville
     

24 Oct, 2016

12 commits

  • Don't ignore errors here: Set backend state to unknown when
    unsuccessful.

    Signed-off-by: Jan Beulich
    Signed-off-by: David Vrabel

    Jan Beulich
     
  • This is more efficient than list_for_each_safe() when list modification
    is accompanied by breaking out of the loop.

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

    Jan Beulich
     
  • Three newly introduced functions are not defined when CONFIG_XEN_PVHVM is
    disabled, but are still being used:

    arch/x86/xen/enlighten.c:141:12: warning: ‘xen_cpu_up_prepare’ used but never defined
    arch/x86/xen/enlighten.c:142:12: warning: ‘xen_cpu_up_online’ used but never defined
    arch/x86/xen/enlighten.c:143:12: warning: ‘xen_cpu_dead’ used but never defined

    Fixes: 4d737042d6c4 ("xen/x86: Convert to hotplug state machine")
    Signed-off-by: Arnd Bergmann
    Signed-off-by: David Vrabel

    Arnd Bergmann
     
  • The Xen docs specify several flags which a guest can set to advertise
    which values of the xenstore control/shutdown key it will recognize.
    This patch adds code to write all the relevant feature-flag keys.

    Based-on-patch-by: Paul Durrant
    Signed-off-by: Juergen Gross
    Reviewed-by: David Vrabel
    Reviewed-by: Paul Durrant
    Signed-off-by: David Vrabel

    Juergen Gross
     
  • From the beginning of the gpio-mpc8xxx.c, the "handle_level_irq"
    has being used to handle GPIO interrupts in the PowerPC/Layerscape
    platforms. But actually, almost all PowerPC/Layerscape platforms
    assert an interrupt request upon either a high-to-low change or
    any change on the state of the signal.

    So the "handle_level_irq" is not reasonable for PowerPC/Layerscape
    GPIO interrupt, it should be "handle_edge_irq". Otherwise the system
    may lost some interrupts from the PIN's state changes.

    Signed-off-by: Liu Gang
    Signed-off-by: Linus Walleij

    Liu Gang
     
  • Linus Torvalds
     
  • Pull UBI[FS] fixes from Richard Weinberger:
    "This contains fixes for issues in both UBI and UBIFS:

    - Fallout from the merge window, refactoring UBI code introduced some
    issues.

    - Fixes for an UBIFS readdir bug which can cause getdents() to busy
    loop for ever and a bug in the UBIFS xattr code"

    * tag 'upstream-4.9-rc2' of git://git.infradead.org/linux-ubifs:
    ubifs: Abort readdir upon error
    UBI: Fix crash in try_recover_peb()
    ubi: fix swapped arguments to call to ubi_alloc_aeb
    ubifs: Fix xattr_names length in exit paths
    ubifs: Rename ubifs_rename2

    Linus Torvalds
     
  • Pull ext4 fixes from Ted Ts'o:
    "A few bug fixes and add some missing KERN_CONT annotations"

    * tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:
    ext4: add missing KERN_CONT to a few more debugging uses
    fscrypto: lock inode while setting encryption policy
    ext4: correct endianness conversion in __xattr_check_inode()
    fscrypto: make XTS tweak initialization endian-independent
    ext4: do not advertise encryption support when disabled
    jbd2: fix incorrect unlock on j_list_lock
    ext4: super.c: Update logging style using KERN_CONT

    Linus Torvalds
     
  • Pull SCSI target fixes from Nicholas Bellinger:
    "Here are the outstanding target-pending fixes for v4.9-rc2.

    This includes:

    - Fix v4.1.y+ reference leak regression with concurrent TMR
    ABORT_TASK + session shutdown. (Vaibhav Tandon)

    - Enable tcm_fc w/ SCF_USE_CPUID to avoid host exchange timeouts
    (Hannes)

    - target/user error sense handling fixes. (Andy + MNC + HCH)

    - Fix iscsi-target NOP_OUT error path iscsi_cmd descriptor leak
    (Varun)

    - Two EXTENDED_COPY SCSI status fixes for ESX VAAI (Dinesh Israni +
    Nixon Vincent)

    - Revert a v4.8 residual overflow change, that breaks sg_inq with
    small allocation lengths.

    There are a number of folks stress testing the v4.1.y regression fix
    in their environments, and more folks doing iser-target I/O stress
    testing atop recent v4.x.y code.

    There is also one v4.2.y+ RCU conversion regression related to
    explicit NodeACL configfs changes, that is still being tracked down"

    * git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending:
    target/tcm_fc: use CPU affinity for responses
    target/tcm_fc: Update debugging statements to match libfc usage
    target/tcm_fc: return detailed error in ft_sess_create()
    target/tcm_fc: print command pointer in debug message
    target: fix potential race window in target_sess_cmd_list_waiting()
    Revert "target: Fix residual overflow handling in target_complete_cmd_with_length"
    target: Don't override EXTENDED_COPY xcopy_pt_cmd SCSI status code
    target: Make EXTENDED_COPY 0xe4 failure return COPY TARGET DEVICE NOT REACHABLE
    target: Re-add missing SCF_ACK_KREF assignment in v4.1.y
    iscsi-target: fix iscsi cmd leak
    iscsi-target: fix spelling mistake "Unsolicitied" -> "Unsolicited"
    target/user: Fix comments to not refer to data ring
    target/user: Return an error if cmd data size is too large
    target/user: Use sense_reason_t in tcmu_queue_cmd_ring

    Linus Torvalds
     
  • …l/git/groeck/linux-staging

    Pull hwmon fixes from Guenter Roeck:
    "Couple of hwmon fixes:

    Fix a potential ERR_PTR dereference in max31790 driver, and handle
    temperature readings below 0 in adm9240 driver"

    * tag 'hwmon-for-linus-v4.9-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
    hwmon: (max31790) potential ERR_PTR dereference
    hwmon: (adm9240) handle temperature readings below 0

    Linus Torvalds
     
  • Pull IPMI updates from Corey Minyard:
    "A small bug fix and a new driver for acting as an IPMI device.

    I was on vacation during the merge window (a long vacation) but this
    is a bug fix that should go in and a new driver that shouldn't hurt
    anything.

    This has been in linux-next for a month or so"

    * tag 'for-linus-4.9-2' of git://git.code.sf.net/p/openipmi/linux-ipmi:
    ipmi: fix crash on reading version from proc after unregisted bmc
    ipmi/bt-bmc: remove redundant return value check of platform_get_resource()
    ipmi/bt-bmc: add a dependency on ARCH_ASPEED
    ipmi: Fix ioremap error handling in bt-bmc
    ipmi: add an Aspeed BT IPMI BMC driver

    Linus Torvalds
     
  • If the driver is built as a module, autoload won't work because the module
    alias information is not filled. So user-space can't match the registered
    device with the corresponding module.

    Export the module alias information using the MODULE_DEVICE_TABLE() macro.

    Before this patch:

    $ modinfo drivers/gpio/gpio-ath79.ko | grep alias
    $

    After this patch:

    $ modinfo drivers/gpio/gpio-ath79.ko | grep alias
    alias: of:N*T*Cqca,ar9340-gpioC*
    alias: of:N*T*Cqca,ar9340-gpio
    alias: of:N*T*Cqca,ar7100-gpioC*
    alias: of:N*T*Cqca,ar7100-gpio

    Signed-off-by: Javier Martinez Canillas
    Acked-by: Aban Bedel
    Signed-off-by: Linus Walleij

    Javier Martinez Canillas
     

23 Oct, 2016

1 commit

  • Pull timer updates from Thomas Gleixner:
    "This updates contains:

    - A revert which addresses a boot failure on ARM Sun5i platforms

    - A new clocksource driver, which has been delayed beyond rc1 due to
    an interrupt driver issue which was unearthed by this driver. The
    debugging of that issue and the discussion about the proper
    solution made this driver miss the merge window. There is no point
    in delaying it for a full cycle as it completes the basic mainline
    support for the new JCore platform and does not create any risk
    outside of that platform"

    * 'timers-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
    Revert "clocksource/drivers/timer_sun5i: Replace code by clocksource_mmio_init"
    clocksource: Add J-Core timer/clocksource driver
    of: Add J-Core timer bindings

    Linus Torvalds