1. 09 Nov, 2018 6 commits
  2. 08 Nov, 2018 2 commits
  3. 07 Nov, 2018 4 commits
  4. 02 Nov, 2018 4 commits
    • Keith Busch's avatar
      nvme-pci: fix conflicting p2p resource adds · 9fe5c59f
      Keith Busch authored
      The nvme pci driver had been adding its CMB resource to the P2P DMA
      subsystem everytime on on a controller reset. This results in the
      following warning:
      
          ------------[ cut here ]------------
          nvme 0000:00:03.0: Conflicting mapping in same section
          WARNING: CPU: 7 PID: 81 at kernel/memremap.c:155 devm_memremap_pages+0xa6/0x380
          ...
          Call Trace:
           pci_p2pdma_add_resource+0x153/0x370
           nvme_reset_work+0x28c/0x17b1 [nvme]
           ? add_timer+0x107/0x1e0
           ? dequeue_entity+0x81/0x660
           ? dequeue_entity+0x3b0/0x660
           ? pick_next_task_fair+0xaf/0x610
           ? __switch_to+0xbc/0x410
           process_one_work+0x1cf/0x350
           worker_thread+0x215/0x3d0
           ? process_one_work+0x350/0x350
           kthread+0x107/0x120
           ? kthread_park+0x80/0x80
           ret_from_fork+0x1f/0x30
          ---[ end trace f7ea76ac6ee72727 ]---
          nvme nvme0: failed to register the CMB
      
      This patch fixes this by registering the CMB with P2P only once.
      Signed-off-by: default avatarKeith Busch <keith.busch@intel.com>
      Reviewed-by: default avatarLogan Gunthorpe <logang@deltatee.com>
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      9fe5c59f
    • James Smart's avatar
      nvme-fc: fix request private initialization · d19b8bc8
      James Smart authored
      The patch made to avoid Coverity reporting of out of bounds access
      on aen_op moved the assignment of a pointer, leaving it null when it
      was subsequently used to calculate a private pointer. Thus the private
      pointer was bad.
      
      Move/correct the private pointer initialization to be in sync with the
      patch.
      
      Fixes: 0d2bdf9f ("nvme-fc: rework the request initialization code")
      Signed-off-by: default avatarJames Smart <jsmart2021@gmail.com>
      Reviewed-by: default avatarSagi Grimberg <sagi@grimberg.me>
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      d19b8bc8
    • Dennis Zhou's avatar
      blkcg: revert blkcg cleanups series · b5f2954d
      Dennis Zhou authored
      This reverts a series committed earlier due to null pointer exception
      bug report in [1]. It seems there are edge case interactions that I did
      not consider and will need some time to understand what causes the
      adverse interactions.
      
      The original series can be found in [2] with a follow up series in [3].
      
      [1] https://www.spinics.net/lists/cgroups/msg20719.html
      [2] https://lore.kernel.org/lkml/20180911184137.35897-1-dennisszhou@gmail.com/
      [3] https://lore.kernel.org/lkml/20181020185612.51587-1-dennis@kernel.org/
      
      This reverts the following commits:
      d459d853, b2c3fa54, 101246ec, b3b9f24f, e2b09899,
      f0fcb3ec, c839e7a0, bdc24917, 74b7c02a, 5bf9a1f3,
      a7b39b4e, 07b05bcc, 49f4c2dc, 27e6fa99Signed-off-by: default avatarDennis Zhou <dennis@kernel.org>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      b5f2954d
    • Ming Lei's avatar
      block: brd: associate with queue until adding disk · 153fcd5f
      Ming Lei authored
      brd_free() may be called in failure path on one brd instance which
      disk isn't added yet, so release handler of gendisk may free the
      associated request_queue early and causes the following use-after-free[1].
      
      This patch fixes this issue by associating gendisk with request_queue
      just before adding disk.
      
      [1] KASAN: use-after-free Read in del_timer_syncNon-volatile memory driver v1.3
      Linux agpgart interface v0.103
      [drm] Initialized vgem 1.0.0 20120112 for virtual device on minor 0
      usbcore: registered new interface driver udl
      ==================================================================
      BUG: KASAN: use-after-free in __lock_acquire+0x36d9/0x4c20
      kernel/locking/lockdep.c:3218
      Read of size 8 at addr ffff8801d1b6b540 by task swapper/0/1
      
      CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.19.0+ #88
      Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
      Google 01/01/2011
      Call Trace:
        __dump_stack lib/dump_stack.c:77 [inline]
        dump_stack+0x244/0x39d lib/dump_stack.c:113
        print_address_description.cold.7+0x9/0x1ff mm/kasan/report.c:256
        kasan_report_error mm/kasan/report.c:354 [inline]
        kasan_report.cold.8+0x242/0x309 mm/kasan/report.c:412
        __asan_report_load8_noabort+0x14/0x20 mm/kasan/report.c:433
        __lock_acquire+0x36d9/0x4c20 kernel/locking/lockdep.c:3218
        lock_acquire+0x1ed/0x520 kernel/locking/lockdep.c:3844
        del_timer_sync+0xb7/0x270 kernel/time/timer.c:1283
        blk_cleanup_queue+0x413/0x710 block/blk-core.c:809
        brd_free+0x5d/0x71 drivers/block/brd.c:422
        brd_init+0x2eb/0x393 drivers/block/brd.c:518
        do_one_initcall+0x145/0x957 init/main.c:890
        do_initcall_level init/main.c:958 [inline]
        do_initcalls init/main.c:966 [inline]
        do_basic_setup init/main.c:984 [inline]
        kernel_init_freeable+0x5c6/0x6b9 init/main.c:1148
        kernel_init+0x11/0x1ae init/main.c:1068
        ret_from_fork+0x3a/0x50 arch/x86/entry/entry_64.S:350
      
      Reported-by: syzbot+3701447012fe951dabb2@syzkaller.appspotmail.com
      Signed-off-by: default avatarMing Lei <ming.lei@redhat.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      153fcd5f
  5. 31 Oct, 2018 1 commit
  6. 30 Oct, 2018 1 commit
  7. 29 Oct, 2018 1 commit
  8. 26 Oct, 2018 1 commit
  9. 25 Oct, 2018 20 commits
    • Federico Motta's avatar
      block, bfq: fix asymmetric scenarios detection · 98fa7a3e
      Federico Motta authored
      Since commit 2d29c9f8 ("block, bfq: improve asymmetric scenarios
      detection"), a scenario is defined asymmetric when one of the
      following conditions holds:
      - active bfq_queues have different weights
      - one or more group of entities (bfq_queue or other groups of entities)
        are active
      bfq grants fairness and low latency also in such asymmetric scenarios,
      by plugging the dispatching of I/O if the bfq_queue in service happens
      to be temporarily idle. This plugging may lower throughput, so it is
      important to do it only when strictly needed.
      
      By mistake, in commit '2d29c9f8' ("block, bfq: improve asymmetric
      scenarios detection") the num_active_groups counter was firstly
      incremented and subsequently decremented at any entity (group or
      bfq_queue) weight change.
      
      This is useless, because only transitions from active to inactive and
      vice versa matter for that counter. Unfortunately this is also
      incorrect in the following case: the entity at issue is a bfq_queue
      and it is under weight raising. In fact in this case there is a
      spurious increment of the num_active_groups counter.
      
      This spurious increment may cause scenarios to be wrongly detected as
      asymmetric, thus causing useless plugging and loss of throughput.
      
      This commit fixes this issue by simply removing the above useless and
      wrong increments and decrements.
      
      Fixes: 2d29c9f8 ("block, bfq: improve asymmetric scenarios detection")
      Tested-by: default avatarOleksandr Natalenko <oleksandr@natalenko.name>
      Signed-off-by: default avatarFederico Motta <federico@willer.it>
      Signed-off-by: default avatarPaolo Valente <paolo.valente@linaro.org>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      98fa7a3e
    • Jens Axboe's avatar
      gdrom: fix mistake in assignment of error · 0a40a935
      Jens Axboe authored
      Apparently the kbuild bots missed this one originally, but at least
      it caught it now. Fix compilation error:
      
      All errors (new ones prefixed by >>):
      
         drivers/cdrom/gdrom.c: In function 'probe_gdrom':
      >> drivers/cdrom/gdrom.c:797:3: error: 'rc' undeclared (first use in this function)
            rc = PTR_ERR(gd.gdrom_rq);
            ^~
         drivers/cdrom/gdrom.c:797:3: note: each undeclared identifier is reported only once for each function it appears in
      
      Fixes: ad5fc6bb ("gdrom: convert to blk-mq")
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      0a40a935
    • Xiaoguang Wang's avatar
      blk-mq: place trace_block_getrq() in correct place · d6f1dda2
      Xiaoguang Wang authored
      trace_block_getrq() is to indicate a request struct has been allocated
      for queue, so put it in right place.
      Reviewed-by: default avatarJianchao Wang <jianchao.w.wang@oracle.com>
      Signed-off-by: default avatarXiaoguang Wang <xiaoguang.wang@linux.alibaba.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      d6f1dda2
    • Damien Le Moal's avatar
      block: Introduce blk_revalidate_disk_zones() · bf505456
      Damien Le Moal authored
      Drivers exposing zoned block devices have to initialize and maintain
      correctness (i.e. revalidate) of the device zone bitmaps attached to
      the device request queue (seq_zones_bitmap and seq_zones_wlock).
      
      To simplify coding this, introduce a generic helper function
      blk_revalidate_disk_zones() suitable for most (and likely all) cases.
      This new function always update the seq_zones_bitmap and seq_zones_wlock
      bitmaps as well as the queue nr_zones field when called for a disk
      using a request based queue. For a disk using a BIO based queue, only
      the number of zones is updated since these queues do not have
      schedulers and so do not need the zone bitmaps.
      
      With this change, the zone bitmap initialization code in sd_zbc.c can be
      replaced with a call to this function in sd_zbc_read_zones(), which is
      called from the disk revalidate block operation method.
      
      A call to blk_revalidate_disk_zones() is also added to the null_blk
      driver for devices created with the zoned mode enabled.
      
      Finally, to ensure that zoned devices created with dm-linear or
      dm-flakey expose the correct number of zones through sysfs, a call to
      blk_revalidate_disk_zones() is added to dm_table_set_restrictions().
      
      The zone bitmaps allocated and initialized with
      blk_revalidate_disk_zones() are freed automatically from
      __blk_release_queue() using the block internal function
      blk_queue_free_zone_bitmaps().
      Reviewed-by: default avatarHannes Reinecke <hare@suse.com>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Reviewed-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
      Reviewed-by: default avatarMike Snitzer <snitzer@redhat.com>
      Signed-off-by: default avatarDamien Le Moal <damien.lemoal@wdc.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      bf505456
    • Christoph Hellwig's avatar
      block: add a report_zones method · e76239a3
      Christoph Hellwig authored
      Dispatching a report zones command through the request queue is a major
      pain due to the command reply payload rewriting necessary. Given that
      blkdev_report_zones() is executing everything synchronously, implement
      report zones as a block device file operation instead, allowing major
      simplification of the code in many places.
      
      sd, null-blk, dm-linear and dm-flakey being the only block device
      drivers supporting exposing zoned block devices, these drivers are
      modified to provide the device side implementation of the
      report_zones() block device file operation.
      
      For device mappers, a new report_zones() target type operation is
      defined so that the upper block layer calls blkdev_report_zones() can
      be propagated down to the underlying devices of the dm targets.
      Implementation for this new operation is added to the dm-linear and
      dm-flakey targets.
      Reviewed-by: default avatarHannes Reinecke <hare@suse.com>
      Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
      [Damien]
      * Changed method block_device argument to gendisk
      * Various bug fixes and improvements
      * Added support for null_blk, dm-linear and dm-flakey.
      Reviewed-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
      Reviewed-by: default avatarMike Snitzer <snitzer@redhat.com>
      Signed-off-by: default avatarDamien Le Moal <damien.lemoal@wdc.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      e76239a3
    • Damien Le Moal's avatar
      block: Expose queue nr_zones in sysfs · 965b652e
      Damien Le Moal authored
      Expose through sysfs the nr_zones field of struct request_queue.
      Exposing this value helps in debugging disk issues as well as
      facilitating scripts based use of the disk (e.g. blktests).
      
      For zoned block devices, the nr_zones field indicates the total number
      of zones of the device calculated using the known disk capacity and
      zone size. This number of zones is always 0 for regular block devices.
      
      Since nr_zones is defined conditionally with CONFIG_BLK_DEV_ZONED,
      introduce the blk_queue_nr_zones() function to return the correct value
      for any device, regardless if CONFIG_BLK_DEV_ZONED is set.
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Reviewed-by: default avatarHannes Reinecke <hare@suse.com>
      Signed-off-by: default avatarDamien Le Moal <damien.lemoal@wdc.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      965b652e
    • Damien Le Moal's avatar
      block: Improve zone reset execution · a2d6b3a2
      Damien Le Moal authored
      There is no need to synchronously execute all REQ_OP_ZONE_RESET BIOs
      necessary to reset a range of zones. Similarly to what is done for
      discard BIOs in blk-lib.c, all zone reset BIOs can be chained and
      executed asynchronously and a synchronous call done only for the last
      BIO of the chain.
      
      Modify blkdev_reset_zones() to operate similarly to
      blkdev_issue_discard() using the next_bio() helper for chaining BIOs. To
      avoid code duplication of that function in blk_zoned.c, rename
      next_bio() into blk_next_bio() and declare it as a block internal
      function in blk.h.
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Reviewed-by: default avatarHannes Reinecke <hare@suse.com>
      Signed-off-by: default avatarDamien Le Moal <damien.lemoal@wdc.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      a2d6b3a2
    • Damien Le Moal's avatar
      block: Introduce BLKGETNRZONES ioctl · 65e4e3ee
      Damien Le Moal authored
      Get a zoned block device total number of zones. The device can be a
      partition of the whole device. The number of zones is always 0 for
      regular block devices.
      Reviewed-by: default avatarHannes Reinecke <hare@suse.com>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarDamien Le Moal <damien.lemoal@wdc.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      65e4e3ee
    • Damien Le Moal's avatar
      block: Introduce BLKGETZONESZ ioctl · 72cd8757
      Damien Le Moal authored
      Get a zoned block device zone size in number of 512 B sectors.
      The zone size is always 0 for regular block devices.
      Reviewed-by: default avatarHannes Reinecke <hare@suse.com>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarDamien Le Moal <damien.lemoal@wdc.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      72cd8757
    • Damien Le Moal's avatar
      block: Limit allocation of zone descriptors for report zones · 2e85fbaf
      Damien Le Moal authored
      There is no point in allocating more zone descriptors than the number of
      zones a block device has for doing a zone report. Avoid doing that in
      blkdev_report_zones_ioctl() by limiting the number of zone decriptors
      allocated internally to process the user request.
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Reviewed-by: default avatarHannes Reinecke <hare@suse.com>
      Signed-off-by: default avatarDamien Le Moal <damien.lemoal@wdc.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      2e85fbaf
    • Damien Le Moal's avatar
      block: Introduce blkdev_nr_zones() helper · a91e1380
      Damien Le Moal authored
      Introduce the blkdev_nr_zones() helper function to get the total
      number of zones of a zoned block device. This number is always 0 for a
      regular block device (q->limits.zoned == BLK_ZONED_NONE case).
      
      Replace hard-coded number of zones calculation in dmz_get_zoned_device()
      with a call to this helper.
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Reviewed-by: default avatarHannes Reinecke <hare@suse.com>
      Signed-off-by: default avatarDamien Le Moal <damien.lemoal@wdc.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      a91e1380
    • Damien Le Moal's avatar
      scsi: sd_zbc: Fix sd_zbc_check_zones() error checks · 5f832a39
      Damien Le Moal authored
      The unsigned 32 bits overflow check for the zone size value is already
      done within sd_zbc_check_zones() with the test:
      
      } else if (logical_to_sectors(sdkp->device, zone_blocks) > UINT_MAX) {
      
      so there is no need to check again for an out of range value in
      sd_zbc_read_zones(). Simplify the code and fix sd_zbc_check_zones()
      error return to -EFBIG instead of -ENODEV if the zone size is too large.
      Change the return type of sd_zbc_check_zones() to an int for the error
      code and return the zone size (zone_blocks) through a u32 pointer to
      avoid overflowing the signed 32 return value.
      Reviewed-by: default avatarHannes Reinecke <hare@suse.com>
      Acked-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarDamien Le Moal <damien.lemoal@wdc.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      5f832a39
    • Damien Le Moal's avatar
      scsi: sd_zbc: Reduce boot device scan and revalidate time · d2e428e4
      Damien Le Moal authored
      Handling checks of ZBC device capacity using the max_lba field of the
      REPORT ZONES command reply for disks with rc_basis == 0 can be done
      using the same report zones command reply used to check the "same"
      field.
      
      Avoid executing a report zones command solely to check the disk capacity
      by merging sd_zbc_check_capacity() into sd_zbc_check_zone_size() and
      renaming that function to sd_zbc_check_zones(). This removes a costly
      execution of a full report zones command and so reduces device scan
      duration at boot time as well as the duration of disk revalidate calls.
      
      Furthermore, setting the partial report bit in the REPORT ZONES command
      cdb can significantly reduce this command execution time as the device
      does not have to count and report the total number of zones that could
      be reported assuming a large enough reply buffer. A non-partial zone
      report is necessary only for the first execution of report zones used to
      check the same field value (to ensure that this value applies to all
      zones of the disk). All other calls to sd_zbc_report_zones() can use a
      partial report to reduce execution time.
      
      Using a 14 TB ZBC disk, these simple changes reduce device scan time at
      boot from about 3.5s down to about 900ms. Disk revalidate times are also
      reduced from about 450ms down to 230ms.
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Reviewed-by: default avatarHannes Reinecke <hare@suse.com>
      Acked-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
      Signed-off-by: default avatarDamien Le Moal <damien.lemoal@wdc.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      d2e428e4
    • Damien Le Moal's avatar
      scsi: sd_zbc: Rearrange code · 7f9d35d2
      Damien Le Moal authored
      Move the urswrz check out of sd_zbc_read_zones() and into
      sd_zbc_read_zoned_characteristics() where that value is obtained (read
      from the disk zoned characteristics VPD page). Since this function now
      does more than simply reading the VPD page, rename it to
      sd_zbc_check_zoned_characteristics().
      Also fix the error message displayed when reading that VPD page fails.
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Reviewed-by: default avatarHannes Reinecke <hare@suse.com>
      Acked-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
      Signed-off-by: default avatarDamien Le Moal <damien.lemoal@wdc.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      7f9d35d2
    • zhong jiang's avatar
      cdrom: remove set but not used variable 'tocuse' · cdffab7a
      zhong jiang authored
      tocuse is not used after setting its value. It is safe to remove
      the unused variable.
      Signed-off-by: default avatarzhong jiang <zhongjiang@huawei.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      cdffab7a
    • Gustavo A. R. Silva's avatar
      skd: fix unchecked return values · d91dc172
      Gustavo A. R. Silva authored
      Check return values of dma_set_mask_and_coherent().
      
      Otherwise, if dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(64));
      fails, the following piece of code will be executed even when the call
      to dma_set_mask_and_coherent(&pdev->dev, DMA_BIT_MASK(32)); returns 0:
      
      dev_err(&pdev->dev, "DMA mask error %d\n", rc);
      goto err_out_regions;
      
      Addresses-Coverity-ID: 1474553 ("Unchecked return value")
      Fixes: 13812621 ("skd: switch to the generic DMA API")
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarGustavo A. R. Silva <gustavo@embeddedor.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      d91dc172
    • Vasilis Liaskovitis's avatar
      xen/blkfront: avoid NULL blkfront_info dereference on device removal · f92898e7
      Vasilis Liaskovitis authored
      If a block device is hot-added when we are out of grants,
      gnttab_grant_foreign_access fails with -ENOSPC (log message "28
      granting access to ring page") in this code path:
      
        talk_to_blkback ->
      	setup_blkring ->
      		xenbus_grant_ring ->
      			gnttab_grant_foreign_access
      
      and the failing path in talk_to_blkback sets the driver_data to NULL:
      
       destroy_blkring:
              blkif_free(info, 0);
      
              mutex_lock(&blkfront_mutex);
              free_info(info);
              mutex_unlock(&blkfront_mutex);
      
              dev_set_drvdata(&dev->dev, NULL);
      
      This results in a NULL pointer BUG when blkfront_remove and blkif_free
      try to access the failing device's NULL struct blkfront_info.
      
      Cc: stable@vger.kernel.org # 4.5 and later
      Signed-off-by: default avatarVasilis Liaskovitis <vliaskovitis@suse.com>
      Reviewed-by: default avatarRoger Pau Monné <roger.pau@citrix.com>
      Signed-off-by: default avatarKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      f92898e7
    • Linus Torvalds's avatar
      Merge tag 'sound-4.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · 3acbd2de
      Linus Torvalds authored
      Pull sound updates from Takashi Iwai:
       "There have been little changes in ALSA core stuff, but ASoC core still
        kept rolling for the continued restructuring. The rest are lots of
        small driver-specific changes and some minor API updates. Here are
        highlights:
      
        General:
        - Appropriate fall-through annotations everywhere
        - Some code cleanup in memalloc code, handling non-cacahed pages more
          commonly in the helper
        - Deployment of SNDRV_PCM_INFO_SYNC_APPLPTR flag consistently
      
        Drivers:
        - More HD-audio CA0132 codec improvement for supporting other Creative
          boards
        - Plumbing legacy HD-audio codecs as ASoC BE on Intel SST; this will
          give move support of existing HD-audio devices with DSP
        - A few device-specific HD-audio quirks as usual
        - New quirk for RME CC devices and correction for B&W PX for USB-audio
        - FireWire: code refactoring including devres usages
      
        ASoC Core:
        - Continued componentization works; it's almost done!
        - A bunch of new for_each_foo macros
        - Cleanups and fixes in DAPM code
      
        ASoC Drivers:
        - MCLK support for several different devices, including CS42L51, STM32
          SAI, and MAX98373
        - Support for Allwinner A64 CODEC analog, Intel boards with DA7219 and
          MAX98927, Meson AXG PDM inputs, Nuvoton NAU8822, Renesas R8A7744 and
          TI PCM3060"
      
      * tag 'sound-4.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (299 commits)
        ASoC: stm32: sai: fix master clock naming
        ASoC: stm32: add clock dependency for sai
        ALSA: hda/ca0132 - Actually fix microphone issue
        ASoC: sun4i-i2s: move code from startup/shutdown hooks into pm_runtime hooks
        ASoC: wm2000: Remove wm2000_read helper function
        ASoC: cs42l51: fix mclk support
        ASoC: wm_adsp: Log addresses as 8 digits in wm_adsp_buffer_populate
        ASoC: wm_adsp: Rename memory fields in wm_adsp_buffer
        ASoC: cs42l51: add mclk support
        ASoC: stm32: sai: set sai as mclk clock provider
        ASoC: dt-bindings: add mclk support to cs42l51
        ASoC: dt-bindings: add mclk provider support to stm32 sai
        ASoC: soc-core: fix trivial checkpatch issues
        ASoC: dapm: Add support for hw_free on CODEC to CODEC links
        ASoC: Intel: kbl_da7219_max98927: minor white space clean up
        ALSA: i2c/cs8427: Fix int to char conversion
        ALSA: doc: Brush up the old writing-an-alsa-driver
        ASoC: rsnd: tidyup SSICR::SWSP for TDM
        ASoC: rsnd: enable TDM settings for SSI parent
        ASoC: pcm3168a: add hw constraint for capture channel
        ...
      3acbd2de
    • Linus Torvalds's avatar
      Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · d49f8a52
      Linus Torvalds authored
      Pull SCSI updates from James Bottomley:
       "This is mostly updates of the usual drivers: UFS, esp_scsi, NCR5380,
        qla2xxx, lpfc, libsas, hisi_sas.
      
        In addition there's a set of mostly small updates to the target
        subsystem a set of conversions to the generic DMA API, which do have
        some potential for issues in the older drivers but we'll handle those
        as case by case fixes.
      
        A new myrs driver for the DAC960/mylex raid controllers to replace the
        block based DAC960 which is also being removed by Jens in this merge
        window.
      
        Plus the usual slew of trivial changes"
      
      [ "myrs" stands for "MYlex Raid Scsi". Obviously. Silly of me to even
        wonder. There's also a "myrb" driver, where the 'b' stands for
        'block'. Truly, somebody has got mad naming skillz. - Linus ]
      
      * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (237 commits)
        scsi: myrs: Fix the processor absent message in processor_show()
        scsi: myrs: Fix a logical vs bitwise bug
        scsi: hisi_sas: Fix NULL pointer dereference
        scsi: myrs: fix build failure on 32 bit
        scsi: fnic: replace gross legacy tag hack with blk-mq hack
        scsi: mesh: switch to generic DMA API
        scsi: ips: switch to generic DMA API
        scsi: smartpqi: fully convert to the generic DMA API
        scsi: vmw_pscsi: switch to generic DMA API
        scsi: snic: switch to generic DMA API
        scsi: qla4xxx: fully convert to the generic DMA API
        scsi: qla2xxx: fully convert to the generic DMA API
        scsi: qla1280: switch to generic DMA API
        scsi: qedi: fully convert to the generic DMA API
        scsi: qedf: fully convert to the generic DMA API
        scsi: pm8001: switch to generic DMA API
        scsi: nsp32: switch to generic DMA API
        scsi: mvsas: fully convert to the generic DMA API
        scsi: mvumi: switch to generic DMA API
        scsi: mpt3sas: switch to generic DMA API
        ...
      d49f8a52
    • Linus Torvalds's avatar
      Merge tag 'pci-v4.20-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci · bd6bf7c1
      Linus Torvalds authored
      Pull PCI updates from Bjorn Helgaas:
      
       - Fix ASPM link_state teardown on removal (Lukas Wunner)
      
       - Fix misleading _OSC ASPM message (Sinan Kaya)
      
       - Make _OSC optional for PCI (Sinan Kaya)
      
       - Don't initialize ASPM link state when ACPI_FADT_NO_ASPM is set
         (Patrick Talbert)
      
       - Remove x86 and arm64 node-local allocation for host bridge structures
         (Punit Agrawal)
      
       - Pay attention to device-specific _PXM node values (Jonathan Cameron)
      
       - Support new Immediate Readiness bit (Felipe Balbi)
      
       - Differentiate between pciehp surprise and safe removal (Lukas Wunner)
      
       - Remove unnecessary pciehp includes (Lukas Wunner)
      
       - Drop pciehp hotplug_slot_ops wrappers (Lukas Wunner)
      
       - Tolerate PCIe Slot Presence Detect being hardwired to zero to
         workaround broken hardware, e.g., the Wilocity switch/wireless device
         (Lukas Wunner)
      
       - Unify pciehp controller & slot structs (Lukas Wunner)
      
       - Constify hotplug_slot_ops (Lukas Wunner)
      
       - Drop hotplug_slot_info (Lukas Wunner)
      
       - Embed hotplug_slot struct into users instead of allocating it
         separately (Lukas Wunner)
      
       - Initialize PCIe port service drivers directly instead of relying on
         initcall ordering (Keith Busch)
      
       - Restore PCI config state after a slot reset (Keith Busch)
      
       - Save/restore DPC config state along with other PCI config state
         (Keith Busch)
      
       - Reference count devices during AER handling to avoid race issue with
         concurrent hot removal (Keith Busch)
      
       - If an Upstream Port reports ERR_FATAL, don't try to read the Port's
         config space because it is probably unreachable (Keith Busch)
      
       - During error handling, use slot-specific reset instead of secondary
         bus reset to avoid link up/down issues on hotplug ports (Keith Busch)
      
       - Restore previous AER/DPC handling that does not remove and
         re-enumerate devices on ERR_FATAL (Keith Busch)
      
       - Notify all drivers that may be affected by error recovery resets
         (Keith Busch)
      
       - Always generate error recovery uevents, even if a driver doesn't have
         error callbacks (Keith Busch)
      
       - Make PCIe link active reporting detection generic (Keith Busch)
      
       - Support D3cold in PCIe hierarchies during system sleep and runtime,
         including hotplug and Thunderbolt ports (Mika Westerberg)
      
       - Handle hpmemsize/hpiosize kernel parameters uniformly, whether slots
         are empty or occupied (Jon Derrick)
      
       - Remove duplicated include from pci/pcie/err.c and unused variable
         from cpqphp (YueHaibing)
      
       - Remove driver pci_cleanup_aer_uncorrect_error_status() calls (Oza
         Pawandeep)
      
       - Uninline PCI bus accessors for better ftracing (Keith Busch)
      
       - Remove unused AER Root Port .error_resume method (Keith Busch)
      
       - Use kfifo in AER instead of a local version (Keith Busch)
      
       - Use threaded IRQ in AER bottom half (Keith Busch)
      
       - Use managed resources in AER core (Keith Busch)
      
       - Reuse pcie_port_find_device() for AER injection (Keith Busch)
      
       - Abstract AER interrupt handling to disconnect error injection (Keith
         Busch)
      
       - Refactor AER injection callbacks to simplify future improvments
         (Keith Busch)
      
       - Remove unused Netronome NFP32xx Device IDs (Jakub Kicinski)
      
       - Use bitmap_zalloc() for dma_alias_mask (Andy Shevchenko)
      
       - Add switch fall-through annotations (Gustavo A. R. Silva)
      
       - Remove unused Switchtec quirk variable (Joshua Abraham)
      
       - Fix pci.c kernel-doc warning (Randy Dunlap)
      
       - Remove trivial PCI wrappers for DMA APIs (Christoph Hellwig)
      
       - Add Intel GPU device IDs to spurious interrupt quirk (Bin Meng)
      
       - Run Switchtec DMA aliasing quirk only on NTB endpoints to avoid
         useless dmesg errors (Logan Gunthorpe)
      
       - Update Switchtec NTB documentation (Wesley Yung)
      
       - Remove redundant "default n" from Kconfig (Bartlomiej Zolnierkiewicz)
      
       - Avoid panic when drivers enable MSI/MSI-X twice (Tonghao Zhang)
      
       - Add PCI support for peer-to-peer DMA (Logan Gunthorpe)
      
       - Add sysfs group for PCI peer-to-peer memory statistics (Logan
         Gunthorpe)
      
       - Add PCI peer-to-peer DMA scatterlist mapping interface (Logan
         Gunthorpe)
      
       - Add PCI configfs/sysfs helpers for use by peer-to-peer users (Logan
         Gunthorpe)
      
       - Add PCI peer-to-peer DMA driver writer's documentation (Logan
         Gunthorpe)
      
       - Add block layer flag to indicate driver support for PCI peer-to-peer
         DMA (Logan Gunthorpe)
      
       - Map Infiniband scatterlists for peer-to-peer DMA if they contain P2P
         memory (Logan Gunthorpe)
      
       - Register nvme-pci CMB buffer as PCI peer-to-peer memory (Logan
         Gunthorpe)
      
       - Add nvme-pci support for PCI peer-to-peer memory in requests (Logan
         Gunthorpe)
      
       - Use PCI peer-to-peer memory in nvme (Stephen Bates, Steve Wise,
         Christoph Hellwig, Logan Gunthorpe)
      
       - Cache VF config space size to optimize enumeration of many VFs
         (KarimAllah Ahmed)
      
       - Remove unnecessary <linux/pci-ats.h> include (Bjorn Helgaas)
      
       - Fix VMD AERSID quirk Device ID matching (Jon Derrick)
      
       - Fix Cadence PHY handling during probe (Alan Douglas)
      
       - Signal Cadence Endpoint interrupts via AXI region 0 instead of last
         region (Alan Douglas)
      
       - Write Cadence Endpoint MSI interrupts with 32 bits of data (Alan
         Douglas)
      
       - Remove redundant controller tests for "device_type == pci" (Rob
         Herring)
      
       - Document R-Car E3 (R8A77990) bindings (Tho Vu)
      
       - Add device tree support for R-Car r8a7744 (Biju Das)
      
       - Drop unused mvebu PCIe capability code (Thomas Petazzoni)
      
       - Add shared PCI bridge emulation code (Thomas Petazzoni)
      
       - Convert mvebu to use shared PCI bridge emulation (Thomas Petazzoni)
      
       - Add aardvark Root Port emulation (Thomas Petazzoni)
      
       - Support 100MHz/200MHz refclocks for i.MX6 (Lucas Stach)
      
       - Add initial power management for i.MX7 (Leonard Crestez)
      
       - Add PME_Turn_Off support for i.MX7 (Leonard Crestez)
      
       - Fix qcom runtime power management error handling (Bjorn Andersson)
      
       - Update TI dra7xx unaligned access errata workaround for host mode as
         well as endpoint mode (Vignesh R)
      
       - Fix kirin section mismatch warning (Nathan Chancellor)
      
       - Remove iproc PAXC slot check to allow VF support (Jitendra Bhivare)
      
       - Quirk Keystone K2G to limit MRRS to 256 (Kishon Vijay Abraham I)
      
       - Update Keystone to use MRRS quirk for host bridge instead of open
         coding (Kishon Vijay Abraham I)
      
       - Refactor Keystone link establishment (Kishon Vijay Abraham I)
      
       - Simplify and speed up Keystone link training (Kishon Vijay Abraham I)
      
       - Remove unused Keystone host_init argument (Kishon Vijay Abraham I)
      
       - Merge Keystone driver files into one (Kishon Vijay Abraham I)
      
       - Remove redundant Keystone platform_set_drvdata() (Kishon Vijay
         Abraham I)
      
       - Rename Keystone functions for uniformity (Kishon Vijay Abraham I)
      
       - Add Keystone device control module DT binding (Kishon Vijay Abraham
         I)
      
       - Use SYSCON API to get Keystone control module device IDs (Kishon
         Vijay Abraham I)
      
       - Clean up Keystone PHY handling (Kishon Vijay Abraham I)
      
       - Use runtime PM APIs to enable Keystone clock (Kishon Vijay Abraham I)
      
       - Clean up Keystone config space access checks (Kishon Vijay Abraham I)
      
       - Get Keystone outbound window count from DT (Kishon Vijay Abraham I)
      
       - Clean up Keystone outbound window configuration (Kishon Vijay Abraham
         I)
      
       - Clean up Keystone DBI setup (Kishon Vijay Abraham I)
      
       - Clean up Keystone ks_pcie_link_up() (Kishon Vijay Abraham I)
      
       - Fix Keystone IRQ status checking (Kishon Vijay Abraham I)
      
       - Add debug messages for all Keystone errors (Kishon Vijay Abraham I)
      
       - Clean up Keystone includes and macros (Kishon Vijay Abraham I)
      
       - Fix Mediatek unchecked return value from devm_pci_remap_iospace()
         (Gustavo A. R. Silva)
      
       - Fix Mediatek endpoint/port matching logic (Honghui Zhang)
      
       - Change Mediatek Root Port Class Code to PCI_CLASS_BRIDGE_PCI (Honghui
         Zhang)
      
       - Remove redundant Mediatek PM domain check (Honghui Zhang)
      
       - Convert Mediatek to pci_host_probe() (Honghui Zhang)
      
       - Fix Mediatek MSI enablement (Honghui Zhang)
      
       - Add Mediatek system PM support for MT2712 and MT7622 (Honghui Zhang)
      
       - Add Mediatek loadable module support (Honghui Zhang)
      
       - Detach VMD resources after stopping root bus to prevent orphan
         resources (Jon Derrick)
      
       - Convert pcitest build process to that used by other tools (iio, perf,
         etc) (Gustavo Pimentel)
      
      * tag 'pci-v4.20-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci: (140 commits)
        PCI/AER: Refactor error injection fallbacks
        PCI/AER: Abstract AER interrupt handling
        PCI/AER: Reuse existing pcie_port_find_device() interface
        PCI/AER: Use managed resource allocations
        PCI: pcie: Remove redundant 'default n' from Kconfig
        PCI: aardvark: Implement emulated root PCI bridge config space
        PCI: mvebu: Convert to PCI emulated bridge config space
        PCI: mvebu: Drop unused PCI express capability code
        PCI: Introduce PCI bridge emulated config space common logic
        PCI: vmd: Detach resources after stopping root bus
        nvmet: Optionally use PCI P2P memory
        nvmet: Introduce helper functions to allocate and free request SGLs
        nvme-pci: Add support for P2P memory in requests
        nvme-pci: Use PCI p2pmem subsystem to manage the CMB
        IB/core: Ensure we map P2P memory correctly in rdma_rw_ctx_[init|destroy]()
        block: Add PCI P2P flag for request queue
        PCI/P2PDMA: Add P2P DMA driver writer's documentation
        docs-rst: Add a new directory for PCI documentation
        PCI/P2PDMA: Introduce configfs/sysfs enable attribute helpers
        PCI/P2PDMA: Add PCI p2pmem DMA mappings to adjust the bus offset
        ...
      bd6bf7c1