12 Mar, 2020

4 commits

  • Previously, blk_cleanup_queue has called blk_set_queue_dying to set the
    flag, no need to do it again.

    Signed-off-by: Guoqing Jiang
    Reviewed-by: Nikolay Borisov
    Reviewed-by: Bart Van Assche
    Reviewed-by: Chaitanya Kulkarni
    Signed-off-by: Jens Axboe

    Guoqing Jiang
     
  • Use the two functions to simplify code.

    Signed-off-by: Guoqing Jiang
    Reviewed-by: Nikolay Borisov
    Reviewed-by: Bart Van Assche
    Reviewed-by: Chaitanya Kulkarni
    Signed-off-by: Jens Axboe

    Guoqing Jiang
     
  • Since the later description mentioned "checked against the new queue
    limits", so make the change to avoid confusion.

    Signed-off-by: Guoqing Jiang
    Reviewed-by: Chaitanya Kulkarni
    Reviewed-by: Bart Van Assche
    Signed-off-by: Jens Axboe

    Guoqing Jiang
     
  • There is a potential race between ioc_release_fn() and
    ioc_clear_queue() as shown below, due to which below kernel
    crash is observed. It also can result into use-after-free
    issue.

    context#1: context#2:
    ioc_release_fn() __ioc_clear_queue() gets the same icq
    ->spin_lock(&ioc->lock); ->spin_lock(&ioc->lock);
    ->ioc_destroy_icq(icq);
    ->list_del_init(&icq->q_node);
    ->call_rcu(&icq->__rcu_head,
    icq_free_icq_rcu);
    ->spin_unlock(&ioc->lock);
    ->ioc_destroy_icq(icq);
    ->hlist_del_init(&icq->ioc_node);
    This results into below crash as this memory
    is now used by icq->__rcu_head in context#1.
    There is a chance that icq could be free'd
    as well.

    22150.386550: Unable to handle kernel write to read-only memory
    at virtual address ffffffaa8d31ca50
    ...
    Call trace:
    22150.607350: ioc_destroy_icq+0x44/0x110
    22150.611202: ioc_clear_queue+0xac/0x148
    22150.615056: blk_cleanup_queue+0x11c/0x1a0
    22150.619174: __scsi_remove_device+0xdc/0x128
    22150.623465: scsi_forget_host+0x2c/0x78
    22150.627315: scsi_remove_host+0x7c/0x2a0
    22150.631257: usb_stor_disconnect+0x74/0xc8
    22150.635371: usb_unbind_interface+0xc8/0x278
    22150.639665: device_release_driver_internal+0x198/0x250
    22150.644897: device_release_driver+0x24/0x30
    22150.649176: bus_remove_device+0xec/0x140
    22150.653204: device_del+0x270/0x460
    22150.656712: usb_disable_device+0x120/0x390
    22150.660918: usb_disconnect+0xf4/0x2e0
    22150.664684: hub_event+0xd70/0x17e8
    22150.668197: process_one_work+0x210/0x480
    22150.672222: worker_thread+0x32c/0x4c8

    Fix this by adding a new ICQ_DESTROYED flag in ioc_destroy_icq() to
    indicate this icq is once marked as destroyed. Also, ensure
    __ioc_clear_queue() is accessing icq within rcu_read_lock/unlock so
    that icq doesn't get free'd up while it is still using it.

    Signed-off-by: Sahitya Tummala
    Co-developed-by: Pradeep P V K
    Signed-off-by: Pradeep P V K
    Signed-off-by: Jens Axboe

    Sahitya Tummala
     

10 Mar, 2020

8 commits

  • This makes it possible to test the error path in blk_mq_realloc_hw_ctxs()
    and also several error paths in null_blk.

    Signed-off-by: Bart Van Assche
    Cc: Johannes Thumshirn
    Cc: Hannes Reinecke
    Cc: Ming Lei
    Cc: Christoph Hellwig
    Signed-off-by: Jens Axboe

    Bart Van Assche
     
  • If null_add_dev() fails then null_del_dev() is called with a NULL argument.
    Make null_del_dev() handle this scenario correctly. This patch fixes the
    following KASAN complaint:

    null-ptr-deref in null_del_dev+0x28/0x280 [null_blk]
    Read of size 8 at addr 0000000000000000 by task find/1062

    Call Trace:
    dump_stack+0xa5/0xe6
    __kasan_report.cold+0x65/0x99
    kasan_report+0x16/0x20
    __asan_load8+0x58/0x90
    null_del_dev+0x28/0x280 [null_blk]
    nullb_group_drop_item+0x7e/0xa0 [null_blk]
    client_drop_item+0x53/0x80 [configfs]
    configfs_rmdir+0x395/0x4e0 [configfs]
    vfs_rmdir+0xb6/0x220
    do_rmdir+0x238/0x2c0
    __x64_sys_unlinkat+0x75/0x90
    do_syscall_64+0x6f/0x2f0
    entry_SYSCALL_64_after_hwframe+0x49/0xbe

    Signed-off-by: Bart Van Assche
    Reviewed-by: Chaitanya Kulkarni
    Cc: Johannes Thumshirn
    Cc: Hannes Reinecke
    Cc: Ming Lei
    Cc: Christoph Hellwig
    Signed-off-by: Jens Axboe

    Bart Van Assche
     
  • If null_add_dev() fails, clear dev->nullb.

    This patch fixes the following KASAN complaint:

    BUG: KASAN: use-after-free in nullb_device_submit_queues_store+0xcf/0x160 [null_blk]
    Read of size 8 at addr ffff88803280fc30 by task check/8409

    Call Trace:
    dump_stack+0xa5/0xe6
    print_address_description.constprop.0+0x26/0x260
    __kasan_report.cold+0x7b/0x99
    kasan_report+0x16/0x20
    __asan_load8+0x58/0x90
    nullb_device_submit_queues_store+0xcf/0x160 [null_blk]
    configfs_write_file+0x1c4/0x250 [configfs]
    __vfs_write+0x4c/0x90
    vfs_write+0x145/0x2c0
    ksys_write+0xd7/0x180
    __x64_sys_write+0x47/0x50
    do_syscall_64+0x6f/0x2f0
    entry_SYSCALL_64_after_hwframe+0x49/0xbe
    RIP: 0033:0x7ff370926317
    Code: 64 89 02 48 c7 c0 ff ff ff ff eb bb 0f 1f 80 00 00 00 00 f3 0f 1e fa 64 8b 04 25 18 00 00 00 85 c0 75 10 b8 01 00 00 00 0f 05 3d 00 f0 ff ff 77 51 c3 48 83 ec 28 48 89 54 24 18 48 89 74 24
    RSP: 002b:00007fff2dd2da48 EFLAGS: 00000246 ORIG_RAX: 0000000000000001
    RAX: ffffffffffffffda RBX: 0000000000000002 RCX: 00007ff370926317
    RDX: 0000000000000002 RSI: 0000559437ef23f0 RDI: 0000000000000001
    RBP: 0000559437ef23f0 R08: 000000000000000a R09: 0000000000000001
    R10: 0000559436703471 R11: 0000000000000246 R12: 0000000000000002
    R13: 00007ff370a006a0 R14: 00007ff370a014a0 R15: 00007ff370a008a0

    Allocated by task 8409:
    save_stack+0x23/0x90
    __kasan_kmalloc.constprop.0+0xcf/0xe0
    kasan_kmalloc+0xd/0x10
    kmem_cache_alloc_node_trace+0x129/0x4c0
    null_add_dev+0x24a/0xe90 [null_blk]
    nullb_device_power_store+0x1b6/0x270 [null_blk]
    configfs_write_file+0x1c4/0x250 [configfs]
    __vfs_write+0x4c/0x90
    vfs_write+0x145/0x2c0
    ksys_write+0xd7/0x180
    __x64_sys_write+0x47/0x50
    do_syscall_64+0x6f/0x2f0
    entry_SYSCALL_64_after_hwframe+0x49/0xbe

    Freed by task 8409:
    save_stack+0x23/0x90
    __kasan_slab_free+0x112/0x160
    kasan_slab_free+0x12/0x20
    kfree+0xdf/0x250
    null_add_dev+0xaf3/0xe90 [null_blk]
    nullb_device_power_store+0x1b6/0x270 [null_blk]
    configfs_write_file+0x1c4/0x250 [configfs]
    __vfs_write+0x4c/0x90
    vfs_write+0x145/0x2c0
    ksys_write+0xd7/0x180
    __x64_sys_write+0x47/0x50
    do_syscall_64+0x6f/0x2f0
    entry_SYSCALL_64_after_hwframe+0x49/0xbe

    Fixes: 2984c8684f96 ("nullb: factor disk parameters")
    Signed-off-by: Bart Van Assche
    Reviewed-by: Chaitanya Kulkarni
    Cc: Johannes Thumshirn
    Cc: Hannes Reinecke
    Cc: Ming Lei
    Cc: Christoph Hellwig
    Signed-off-by: Jens Axboe

    Bart Van Assche
     
  • Instead of initializing null_blk hardware queues explicitly after the
    request queue has been created, provide .init_hctx() and .exit_hctx()
    callback functions. The latter functions are not only called during
    request queue allocation but also when the number of hardware queues
    changes. Allocate nr_cpu_ids queues during initialization to support
    increasing the number of hardware queues above the initial hardware
    queue count.

    This change fixes increasing the number of hardware queues above the
    initial number of hardware queues and also keeps nullb->nr_queues in
    sync with the number of hardware queues.

    Fixes: 45919fbfe1c4 ("null_blk: Enable modifying 'submit_queues' after an instance has been configured")
    Signed-off-by: Bart Van Assche
    Cc: Johannes Thumshirn
    Cc: Hannes Reinecke
    Cc: Ming Lei
    Cc: Christoph Hellwig
    Signed-off-by: Jens Axboe

    Bart Van Assche
     
  • Although it is not clear to me why UBSAN complains when 'memory_backed'
    is set, this patch suppresses the UBSAN complaint that is triggered when
    setting that configfs attribute.

    UBSAN: Undefined behaviour in drivers/block/null_blk_main.c:327:1
    load of value 16 is not a valid value for type '_Bool'
    CPU: 2 PID: 8396 Comm: check Not tainted 5.6.0-rc1-dbg+ #14
    Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
    Call Trace:
    dump_stack+0xa5/0xe6
    ubsan_epilogue+0x9/0x26
    __ubsan_handle_load_invalid_value+0x6d/0x76
    nullb_device_memory_backed_store.cold+0x2c/0x38 [null_blk]
    configfs_write_file+0x1c4/0x250 [configfs]
    __vfs_write+0x4c/0x90
    vfs_write+0x145/0x2c0
    ksys_write+0xd7/0x180
    __x64_sys_write+0x47/0x50
    do_syscall_64+0x6f/0x2f0
    entry_SYSCALL_64_after_hwframe+0x49/0xbe

    Signed-off-by: Bart Van Assche
    Reviewed-by: Chaitanya Kulkarni
    Cc: Johannes Thumshirn
    Cc: Hannes Reinecke
    Cc: Ming Lei
    Cc: Christoph Hellwig
    Signed-off-by: Jens Axboe

    Bart Van Assche
     
  • q->nr_hw_queues must only be updated once it is known that
    blk_mq_realloc_hw_ctxs() has succeeded. Otherwise it can happen that
    reallocation fails and that q->nr_hw_queues is larger than the number of
    allocated hardware queues. This patch fixes the following crash if
    increasing the number of hardware queues fails:

    BUG: KASAN: null-ptr-deref in blk_mq_map_swqueue+0x775/0x810
    Write of size 8 at addr 0000000000000118 by task check/977

    CPU: 3 PID: 977 Comm: check Not tainted 5.6.0-rc1-dbg+ #8
    Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
    Call Trace:
    dump_stack+0xa5/0xe6
    __kasan_report.cold+0x65/0x99
    kasan_report+0x16/0x20
    check_memory_region+0x140/0x1b0
    memset+0x28/0x40
    blk_mq_map_swqueue+0x775/0x810
    blk_mq_update_nr_hw_queues+0x468/0x710
    nullb_device_submit_queues_store+0xf7/0x1a0 [null_blk]
    configfs_write_file+0x1c4/0x250 [configfs]
    __vfs_write+0x4c/0x90
    vfs_write+0x145/0x2c0
    ksys_write+0xd7/0x180
    __x64_sys_write+0x47/0x50
    do_syscall_64+0x6f/0x2f0
    entry_SYSCALL_64_after_hwframe+0x49/0xbe

    Fixes: ac0d6b926e74 ("block: Reduce the amount of memory required per request queue")
    Signed-off-by: Bart Van Assche
    Reviewed-by: Ming Lei
    Cc: Keith Busch
    Cc: Johannes Thumshirn
    Cc: Hannes Reinecke
    Cc: Christoph Hellwig
    Signed-off-by: Jens Axboe

    Bart Van Assche
     
  • blk_mq_map_queues() and multiple .map_queues() implementations expect that
    set->map[HCTX_TYPE_DEFAULT].nr_queues is set to the number of hardware
    queues. Hence set .nr_queues before calling these functions. This patch
    fixes the following kernel warning:

    WARNING: CPU: 0 PID: 2501 at include/linux/cpumask.h:137
    Call Trace:
    blk_mq_run_hw_queue+0x19d/0x350 block/blk-mq.c:1508
    blk_mq_run_hw_queues+0x112/0x1a0 block/blk-mq.c:1525
    blk_mq_requeue_work+0x502/0x780 block/blk-mq.c:775
    process_one_work+0x9af/0x1740 kernel/workqueue.c:2269
    worker_thread+0x98/0xe40 kernel/workqueue.c:2415
    kthread+0x361/0x430 kernel/kthread.c:255

    Fixes: ed76e329d74a ("blk-mq: abstract out queue map") # v5.0
    Reported-by: syzbot+d44e1b26ce5c3e77458d@syzkaller.appspotmail.com
    Signed-off-by: Bart Van Assche
    Reviewed-by: Ming Lei
    Reviewed-by: Chaitanya Kulkarni
    Cc: Johannes Thumshirn
    Cc: Hannes Reinecke
    Cc: Ming Lei
    Cc: Christoph Hellwig
    Signed-off-by: Jens Axboe

    Bart Van Assche
     
  • The 'hctx_list' member of struct blk_mq_hw_ctx is not a list head but
    instead an entry in q->unused_hctx_list. Fix the comment above this
    struct member.

    Fixes: d386732bc142 ("blk-mq: fill header with kernel-doc")
    Signed-off-by: Bart Van Assche
    Reviewed-by: Chaitanya Kulkarni
    Cc: André Almeida
    Signed-off-by: Jens Axboe

    Bart Van Assche
     

09 Mar, 2020

3 commits

  • Linus Torvalds
     
  • Pull ARM SoC fixes from Olof Johansson:
    "We've been accruing these for a couple of weeks, so the batch is a bit
    bigger than usual.

    Largest delta is due to a led-bl driver that is added -- there was a
    miscommunication before the merge window and the driver didn't make it
    in. Due to this, the platforms needing it regressed. At this point, it
    seemed easier to add the new driver than unwind the changes.

    Besides that, there are a handful of various fixes:

    - AMD tee memory leak fix

    - A handful of fixlets for i.MX SCU communication

    - A few maintainers woke up and realized DEBUG_FS had been missing
    for a while, so a few updates of that.

    ... and the usual collection of smaller fixes to various platforms"

    * tag 'armsoc-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (37 commits)
    ARM: socfpga_defconfig: Add back DEBUG_FS
    arm64: dts: socfpga: agilex: Fix gmac compatible
    ARM: bcm2835_defconfig: Explicitly restore CONFIG_DEBUG_FS
    arm64: dts: meson: fix gxm-khadas-vim2 wifi
    arm64: dts: meson-sm1-sei610: add missing interrupt-names
    ARM: meson: Drop unneeded select of COMMON_CLK
    ARM: dts: bcm2711: Add pcie0 alias
    ARM: dts: bcm283x: Add missing properties to the PWR LED
    tee: amdtee: fix memory leak in amdtee_open_session()
    ARM: OMAP2+: Fix compile if CONFIG_HAVE_ARM_SMCCC is not set
    arm: dts: dra76x: Fix mmc3 max-frequency
    ARM: dts: dra7: Add "dma-ranges" property to PCIe RC DT nodes
    bus: ti-sysc: Fix 1-wire reset quirk
    ARM: dts: r8a7779: Remove deprecated "renesas, rcar-sata" compatible value
    soc: imx-scu: Align imx sc msg structs to 4
    firmware: imx: Align imx_sc_msg_req_cpu_start to 4
    firmware: imx: scu-pd: Align imx sc msg structs to 4
    firmware: imx: misc: Align imx sc msg structs to 4
    firmware: imx: scu: Ensure sequential TX
    ARM: dts: imx7-colibri: Fix frequency for sd/mmc
    ...

    Linus Torvalds
     
  • Pull EDAC fix from Borislav Petkov:
    "Error reporting fix for synopsys_edac: do not overwrite partial
    decoded error message (Sherry Sun)"

    * tag 'edac_urgent-2020-03-08' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras:
    EDAC/synopsys: Do not print an error with back-to-back snprintf() calls

    Linus Torvalds
     

08 Mar, 2020

8 commits

  • Pull char/misc fixes from Greg KH:
    "Here are four small char/misc driver fixes for reported issues for
    5.6-rc5.

    These fixes are:

    - binder fix for a potential use-after-free problem found (took two
    tries to get it right)

    - interconnect core fix

    - altera-stapl driver fix

    All four of these have been in linux-next for a while with no reported
    issues"

    * tag 'char-misc-5.6-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/char-misc:
    binder: prevent UAF for binderfs devices II
    interconnect: Handle memory allocation errors
    altera-stapl: altera_get_note: prevent write beyond end of 'key'
    binder: prevent UAF for binderfs devices

    Linus Torvalds
     
  • Pull driver core and debugfs fixes from Greg KH:
    "Here are four small driver core / debugfs patches for 5.6-rc3:

    - debugfs api cleanup now that all debugfs_create_regset32() callers
    have been fixed up. This was waiting until after the -rc1 merge as
    these fixes came in through different trees

    - driver core sync state fixes based on reports of minor issues found
    in the feature

    All of these have been in linux-next with no reported issues"

    * tag 'driver-core-5.6-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core:
    driver core: Skip unnecessary work when device doesn't have sync_state()
    driver core: Add dev_has_sync_state()
    driver core: Call sync_state() even if supplier has no consumers
    debugfs: remove return value of debugfs_create_regset32()

    Linus Torvalds
     
  • Pull tty/serial fixes from Greg KH:
    "Here are some small tty/serial fixes for 5.6-rc5

    Just some small serial driver fixes, and a vt core fixup, full details
    are:

    - vt fixes for issues found by syzbot

    - serdev fix for Apple boxes

    - fsl_lpuart serial driver fixes

    - MAINTAINER update for incorrect serial files

    - new device ids for 8250_exar driver

    - mvebu-uart fix

    All of these have been in linux-next with no reported issues"

    * tag 'tty-5.6-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty:
    tty: serial: fsl_lpuart: free IDs allocated by IDA
    Revert "tty: serial: fsl_lpuart: drop EARLYCON_DECLARE"
    serdev: Fix detection of UART devices on Apple machines.
    MAINTAINERS: Add missed files related to Synopsys DesignWare UART
    serial: 8250_exar: add support for ACCES cards
    tty:serial:mvebu-uart:fix a wrong return
    vt: selection, push sel_lock up
    vt: selection, push console lock down

    Linus Torvalds
     
  • Pull USB/PHY fixes from Greg KH:
    "Here are some small USB and PHY driver fixes for reported issues for
    5.6-rc5.

    Included in here are:

    - phy driver fixes

    - new USB quirks

    - USB cdns3 gadget driver fixes

    - USB hub core fixes

    All of these have been in linux-next with no reported issues"

    * tag 'usb-5.6-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
    usb: dwc3: gadget: Update chain bit correctly when using sg list
    usb: core: port: do error out if usb_autopm_get_interface() fails
    usb: core: hub: do error out if usb_autopm_get_interface() fails
    usb: core: hub: fix unhandled return by employing a void function
    usb: storage: Add quirk for Samsung Fit flash
    usb: quirks: add NO_LPM quirk for Logitech Screen Share
    usb: usb251xb: fix regulator probe and error handling
    phy: allwinner: Fix GENMASK misuse
    usb: cdns3: gadget: toggle cycle bit before reset endpoint
    usb: cdns3: gadget: link trb should point to next request
    phy: mapphone-mdm6600: Fix timeouts by adding wake-up handling
    phy: brcm-sata: Correct MDIO operations for 40nm platforms
    phy: ti: gmii-sel: do not fail in case of gmii
    phy: ti: gmii-sel: fix set of copy-paste errors
    phy: core: Fix phy_get() to not return error on link creation failure
    phy: mapphone-mdm6600: Fix write timeouts with shorter GPIO toggle interval

    Linus Torvalds
     
  • Pull rdma fixes from Jason Gunthorpe:
    "Nothing particularly exciting, some small ODP regressions from the mmu
    notifier rework, another bunch of syzkaller fixes, and a bug fix for a
    botched syzkaller fix in the first rc pull request.

    - Fix busted syzkaller fix in 'get_new_pps' - this turned out to
    crash on certain HW configurations

    - Bug fixes for various missed things in error unwinds

    - Add a missing rcu_read_lock annotation in hfi/qib

    - Fix two ODP related regressions from the recent mmu notifier
    changes

    - Several more syzkaller bugs in siw, RDMA netlink, verbs and iwcm

    - Revert an old patch in CMA as it is now shown to not be allocating
    port numbers properly"

    * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma:
    RDMA/iwcm: Fix iwcm work deallocation
    RDMA/siw: Fix failure handling during device creation
    RDMA/nldev: Fix crash when set a QP to a new counter but QPN is missing
    RDMA/odp: Ensure the mm is still alive before creating an implicit child
    RDMA/core: Fix protection fault in ib_mr_pool_destroy
    IB/mlx5: Fix implicit ODP race
    IB/hfi1, qib: Ensure RCU is locked when accessing list
    RDMA/core: Fix pkey and port assignment in get_new_pps
    RMDA/cm: Fix missing ib_cm_destroy_id() in ib_cm_insert_listen()
    RDMA/rw: Fix error flow during RDMA context initialization
    RDMA/core: Fix use of logical OR in get_new_pps
    Revert "RDMA/cma: Simplify rdma_resolve_addr() error flow"

    Linus Torvalds
     
  • Pull io_uring fixes from Jens Axboe:
    "Here are a few io_uring fixes that should go into this release. This
    contains:

    - Removal of (now) unused io_wq_flush() and associated flag (Pavel)

    - Fix cancelation lockup with linked timeouts (Pavel)

    - Fix for potential use-after-free when freeing percpu ref for fixed
    file sets

    - io-wq cancelation fixups (Pavel)"

    * tag 'io_uring-5.6-2020-03-07' of git://git.kernel.dk/linux-block:
    io_uring: fix lockup with timeouts
    io_uring: free fixed_file_data after RCU grace period
    io-wq: remove io_wq_flush and IO_WQ_WORK_INTERNAL
    io-wq: fix IO_WQ_WORK_NO_CANCEL cancellation

    Linus Torvalds
     
  • Pull block fixes from Jens Axboe:
    "Here are a few fixes that should go into this release. This contains:

    - Revert of a bad bcache patch from this merge window

    - Removed unused function (Daniel)

    - Fixup for the blktrace fix from Jan from this release (Cengiz)

    - Fix of deeper level bfqq overwrite in BFQ (Carlo)"

    * tag 'block-5.6-2020-03-07' of git://git.kernel.dk/linux-block:
    block, bfq: fix overwrite of bfq_group pointer in bfq_find_set_group()
    blktrace: fix dereference after null check
    Revert "bcache: ignore pending signals when creating gc and allocator thread"
    block: Remove used kblockd_schedule_work_on()

    Linus Torvalds
     
  • Pull media fixes from Mauro Carvalho Chehab:

    - a fix for the media controller links in both hantro driver and in
    v4l2-mem2mem core

    - some fixes for the pulse8-cec driver

    - vicodec: handle alpha channel for RGB32 formats, as it may be used

    - mc-entity.c: fix handling of pad flags

    * tag 'media/v5.6-2' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media:
    media: hantro: Fix broken media controller links
    media: mc-entity.c: use & to check pad flags, not ==
    media: v4l2-mem2mem.c: fix broken links
    media: vicodec: process all 4 components for RGB32 formats
    media: pulse8-cec: close serio in disconnect, not adap_free
    media: pulse8-cec: INIT_DELAYED_WORK was called too late

    Linus Torvalds
     

07 Mar, 2020

17 commits

  • There is a recipe to deadlock the kernel: submit a timeout sqe with a
    linked_timeout (e.g. test_single_link_timeout_ception() from liburing),
    and SIGKILL the process.

    Then, io_kill_timeouts() takes @ctx->completion_lock, but the timeout
    isn't flagged with REQ_F_COMP_LOCKED, and will try to double grab it
    during io_put_free() to cancel the linked timeout. Probably, the same
    can happen with another io_kill_timeout() call site, that is
    io_commit_cqring().

    Signed-off-by: Pavel Begunkov
    Signed-off-by: Jens Axboe

    Pavel Begunkov
     
  • Pull s390 fixes from Vasily Gorbik:

    - Fix panic in gup_fast on large pud by providing an implementation of
    pud_write. This has been overlooked during migration to common gup
    code.

    - Fix unexpected write combining on PCI stores.

    * tag 's390-5.6-5' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
    s390/pci: Fix unexpected write combine on resource
    s390/mm: fix panic in gup_fast on large pud

    Linus Torvalds
     
  • Pull powerpc fixes from Michael Ellerman:
    "Some more powerpc fixes for 5.6:

    - One fix for a recent regression to our breakpoint/watchpoint code.

    - Another fix for our KUAP support, this time a missing annotation in
    a rarely used path in signal handling.

    - A fix for our handling of a CPU feature that effects the PMU, when
    booting guests in some configurations.

    - A minor fix to our linker script to explicitly include the .BTF
    section.

    Thanks to: Christophe Leroy, Desnes A. Nunes do Rosario, Leonardo
    Bras, Naveen N. Rao, Ravi Bangoria, Stefan Berger"

    * tag 'powerpc-5.6-4' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
    powerpc/mm: Fix missing KUAP disable in flush_coherent_icache()
    powerpc: fix hardware PMU exception bug on PowerVM compatibility mode systems
    powerpc: Include .BTF section
    powerpc/watchpoint: Don't call dar_within_range() for Book3S

    Linus Torvalds
     
  • Pull xen fixes from Juergen Gross:
    "Four fixes and a small cleanup patch:

    - two fixes by Dongli Zhang fixing races in the xenbus driver

    - two fixes by me fixing issues introduced in 5.6

    - a small cleanup by Gustavo Silva replacing a zero-length array with
    a flexible-array"

    * tag 'for-linus-5.6b-rc5-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/xen/tip:
    xen/blkfront: fix ring info addressing
    xen/xenbus: fix locking
    xenbus: req->err should be updated before req->state
    xenbus: req->body should be updated before req->state
    xen: Replace zero-length array with flexible-array member

    Linus Torvalds
     
  • Pull thread fixes from Christian Brauner:
    "Here are a few hopefully uncontroversial fixes:

    - Use RCU_INIT_POINTER() when initializing rcu protected members in
    task_struct to fix sparse warnings.

    - Add pidfd_fdinfo_test binary to .gitignore file"

    * tag 'for-linus-2020-03-07' of gitolite.kernel.org:pub/scm/linux/kernel/git/brauner/linux:
    selftests: pidfd: Add pidfd_fdinfo_test in .gitignore
    exit: Fix Sparse errors and warnings
    fork: Use RCU_INIT_POINTER() instead of rcu_access_pointer()

    Linus Torvalds
     
  • Pull sound fixes from Takashi Iwai:
    "The regular "bump-in-the-middle" updates, containing mostly ASoC-
    related fixes at this time. All changes are reasonably small.

    A few entries are for ASoC and ALSA core parts (DAPM, PCM, topology)
    for followups of the recent changes and potential buffer overflow by
    snprintf(), while the rest are (both new and old) device-specific
    fixes for Intel, meson, tas2562, rt1015, as well as the usual HD-audio
    quirks"

    * tag 'sound-5.6-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (25 commits)
    ALSA: sgio2audio: Remove usage of dropped hw_params/hw_free functions
    ALSA: hda/realtek - Enable the headset of ASUS B9450FA with ALC294
    ALSA: hda/realtek - Fix silent output on Gigabyte X570 Aorus Master
    ALSA: hda/realtek - Add Headset Button supported for ThinkPad X1
    ALSA: hda/realtek - Add Headset Mic supported
    ASoC: wm8741: Fix typo in Kconfig prompt
    ASoC: stm32: sai: manage rebind issue
    ASoC: SOF: Fix snd_sof_ipc_stream_posn()
    ASoC: rt1015: modify pre-divider for sysclk
    ASoC: rt1015: add operation callback function for rt1015_dai[]
    ASoC: soc-component: tidyup snd_soc_pcm_component_sync_stop()
    ASoC: dapm: Correct DAPM handling of active widgets during shutdown
    ASoC: tas2562: Fix sample rate error message
    ASoC: Intel: Skylake: Fix available clock counter incrementation
    ASoC: soc-pcm/soc-compress: don't use snd_soc_dapm_stream_stop()
    ASoC: meson: g12a: add tohdmitx reset
    ASoC: pcm512x: Fix unbalanced regulator enable call in probe error path
    ASoC: soc-core: fix for_rtd_codec_dai_rollback() macro
    ASoC: topology: Fix memleak in soc_tplg_manifest_load()
    ASoC: topology: Fix memleak in soc_tplg_link_elems_load()
    ...

    Linus Torvalds
     
  • …/broonie/sound into for-linus

    ASoC: Fixes for v5.6

    More fixes that have arrived since the merge window, spread out all
    over. There's a few things like the operation callback addition for
    rt1015 and the meson reset addition which add small new bits of
    functionality to fix non-working systems, they're all very small and for
    parts of newly added functionality.

    Takashi Iwai
     
  • …/git/shuah/linux-kselftest

    Pull kselftest update from Shuah Khan:
    "This consists of a cleanup patch to undo changes to global .gitignore
    that added selftests/lkdtm objects and add them to a local
    selftests/lkdtm/.gitignore.

    Summary of Linus's comments on local vs. global gitignore scope:

    - Keep local gitignore patterns in local files.

    - Put only global gitignore patterns in the top-level gitignore file.

    Local scope keeps things much better separated. It also incidentally
    means that if a directory gets renamed, the gitignore file continues
    to work unless in the case of renaming the actual files themselves
    that are named in the gitignore"

    * tag 'linux-kselftest-5.6-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
    selftest/lkdtm: Use local .gitignore

    Linus Torvalds
     
  • Pull RISC-V fixes from Palmer Dabbelt:
    "This contains a handful of fixes that I would like to target for 5.6:

    - A pair of fixes to module loading, which we hope solve the last of
    the issues with module text being loaded too sparsely for our call
    relocations.

    - A Kconfig fix that disallows selecting memory models not supported
    by NOMMU.

    - A series of Kconfig updates to ease selecting the drivers necessary
    to run on QEMU's virt platform.

    - DTS updates for SiFive's HiFive Unleashed.

    - A fix to our seccomp support that avoids mangling restartable
    syscalls"

    * tag 'riscv-for-linus-5.6-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux:
    riscv: fix seccomp reject syscall code path
    riscv: dts: Add GPIO reboot method to HiFive Unleashed DTS file
    RISC-V: Select Goldfish RTC driver for QEMU virt machine
    RISC-V: Select SYSCON Reboot and Poweroff for QEMU virt machine
    RISC-V: Enable QEMU virt machine support in defconfigs
    RISC-V: Add kconfig option for QEMU virt machine
    riscv: Fix range looking for kernel image memblock
    riscv: Force flat memory model with no-mmu
    riscv: Change code model of module to medany to improve data accessing
    riscv: avoid the PIC offset of static percpu data in module beyond 2G limits

    Linus Torvalds
     
  • This makes the script more convenient to run.

    Signed-off-by: Jonathan Neuschäfer
    Signed-off-by: Linus Torvalds

    Jonathan Neuschäfer
     
  • Pull devicetree fixes from Rob Herring:
    "Another batch of DT fixes. I think this should be the last of it, but
    sending pull requests seems to cause people to send more fixes.

    Summary:

    - Fixes for warnings introduced by hierarchical PSCI binding changes

    - Fixes for broken doc references due to DT schema conversions

    - Several grammar and typo fixes

    - Fix a bunch of dtc warnings in examples"

    * tag 'devicetree-fixes-for-5.6-3' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux:
    dt-bindings: arm: Fixup the DT bindings for hierarchical PSCI states
    dt-bindings: power: Extend nodename pattern for power-domain providers
    MAINTAINERS: update ALLWINNER CPUFREQ DRIVER entry
    dt-bindings: bus: Drop empty compatible string in example
    dt-bindings: power: Convert domain-idle-states bindings to json-schema
    dt-bindings: arm: Fix cpu compatibles in the hierarchical example for PSCI
    dt-bindings: arm: Correct links to idle states definitions
    dt-bindings: mfd: Fix typo in file name of twl-familly.txt
    dt-bindings: mfd: tps65910: Improve grammar
    dt-bindings: mfd: zii,rave-sp: Fix a typo ("onborad")
    dt-bindings: arm: fsl: fix APF6Dev compatible
    dt-bindings: Fix dtc warnings in examples
    docs: dt: fix several broken doc references
    docs: dt: fix several broken references due to renames
    MAINTAINERS: clean up PCIE DRIVER FOR CAVIUM THUNDERX

    Linus Torvalds
     
  • Pull vgacon fix from Daniel Vetter:
    "One vgacon input check for stable"

    * tag 'drm-fixes-2020-03-06-1' of git://anongit.freedesktop.org/drm/drm:
    vgacon: Fix a UAF in vgacon_invert_region

    Linus Torvalds
     
  • Pull btrfs fix from David Sterba:
    "One fixup for DIO when in use with the new checksums, a missed case
    where the checksum size was still assuming u32"

    * tag 'for-5.6-rc4-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux:
    btrfs: fix RAID direct I/O reads with alternate csums

    Linus Torvalds
     
  • Pull file locking fixes from Jeff Layton:
    "Just a couple of late-breaking patches for the file locking code. The
    second patch (from yangerkun) fixes a rather nasty looking potential
    use-after-free that should go to stable.

    The other patch could technically wait for 5.7, but it's fairly
    innocuous so I figured we might as well take it"

    * tag 'filelock-v5.6-1' of git://git.kernel.org/pub/scm/linux/kernel/git/jlayton/linux:
    locks: fix a potential use-after-free problem when wakeup a waiter
    fcntl: Distribute switch variables for initialization

    Linus Torvalds
     
  • Pull spi fixes from Mark Brown:
    "A selection of small fixes, mostly for drivers, that have arrived
    since the merge window. None of them are earth shattering in
    themselves but all useful for affected systems"

    * tag 'spi-fix-v5.6-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi:
    spi: spi_register_controller(): free bus id on error paths
    spi: bcm63xx-hsspi: Really keep pll clk enabled
    spi: atmel-quadspi: fix possible MMIO window size overrun
    spi/zynqmp: remove entry that causes a cs glitch
    spi: pxa2xx: Add CS control clock quirk
    spi: spidev: Fix CS polarity if GPIO descriptors are used
    spi: qup: call spi_qup_pm_resume_runtime before suspending
    spi: spi-omap2-mcspi: Support probe deferral for DMA channels
    spi: spi-omap2-mcspi: Handle DMA size restriction on AM65x

    Linus Torvalds
     
  • …git/broonie/regulator

    Pull regulator fixes from Mark Brown:
    "A couple of small fixes, one for a minor issue in the stm32-vrefbuf
    driver and a documentation fix in the Qualcomm code"

    * tag 'regulator-fix-v5.6-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator:
    regulator: stm32-vrefbuf: fix a possible overshoot when re-enabling
    regulator: qcom_spmi: Fix docs for PM8004

    Linus Torvalds
     
  • Pull hwmon fixes from Guenter Roeck:
    "Fix an error return in the adt7462 driver, bad voltage limits reported
    by the xdpe12284 driver, and a broken documentation reference in the
    adm1177 driver documentation"

    * tag 'hwmon-for-v5.6-rc5' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging:
    hwmon: (adt7462) Fix an error return in ADT7462_REG_VOLT()
    hwmon: (pmbus/xdpe12284) Add callback for vout limits conversion
    docs: adm1177: fix a broken reference

    Linus Torvalds