From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932536AbcEQPf0 (ORCPT ); Tue, 17 May 2016 11:35:26 -0400 Received: from mx0a-00082601.pphosted.com ([67.231.145.42]:40928 "EHLO mx0a-00082601.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932395AbcEQPfX (ORCPT ); Tue, 17 May 2016 11:35:23 -0400 Date: Tue, 17 May 2016 09:35:19 -0600 From: Jens Axboe To: CC: Subject: [GIT PULL] Block driver changes for 4.7-rc1 Message-ID: <20160517153519.GB31584@kernel.dk> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Disposition: inline Content-Transfer-Encoding: 8bit X-Originating-IP: [192.168.54.13] X-Proofpoint-Spam-Reason: safe X-FB-Internal: Safe X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:,, definitions=2016-05-17_05:,, signatures=0 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Linus, On top of the core pull request, this is the drivers pull request for this merge window. This pull request contains: - Switching drivers to the new write back cache API, and killing off the flush flags. From me. - Kill the discard support for the STEC pci-e flash driver. It's trivially broken, and apparently unmaintained, so it's safer to just remove it. From Jeff Moyer. - A set of lightnvm updates from the usual suspects (Matias/Javier, and Simon), and fixes from Arnd, Jeff Mahoney, Sagi, and Wenwei Tao. - A set of updates for NVMe: - Turn the controller state management into a proper state machine. From Christoph. This ends up throwing a merge conflict with a stable fix that went in later in the series, see below for how to resolve. - Shuffling of code in preparation for NVMe-over-fabrics, also from Christoph. - Cleanup of the command prep part from Ming Lin. - Rewrite of the discard support from Ming Lin. - Deadlock fix for namespace removal from Ming Lin. - Use the now exported blk-mq tag helper for IO termination. From Sagi. - Various little fixes from Christoph, Guilherme, Keith, Ming Lin, Wang Sheng-Hui. - Convert mtip32xx to use the now exported blk-mq tag iter function, from Keith. As mentioned, there will be two small conflicts in nvme, due to a removal fix that was sent in through for-linus later in the cycle. One hunk is trivial to resolve (remove the test/set_bit, just call the state change function), for the other see below, I've attached my resolution. It's not hard either. Please pull! git://git.kernel.dk/linux-block.git for-4.7/drivers ---------------------------------------------------------------- Arnd Bergmann (1): lightnvm: pass dma address to hardware rather than pointer Christoph Hellwig (6): nvme: fix cntlid type nvme: remove the io_incapable method nvme: introduce a controller state machine nvme: tighten up state check for namespace scanning nvme: move namespace scanning to core nvme: move AER handling to common code Guilherme G. Piccoli (1): nvme: Avoid reset work on watchdog timer function during error recovery Javier González (6): lightnvm: do not free unused metadata on rrpc lightnvm: enable metadata to be sent to device lightnvm: rename dma helper functions lightnvm: do not assume sequential lun alloc. lightnvm: rename nr_pages to nr_ppas on nvm_rq lightnvm: reserved space calculation incorrect Jeff Mahoney (1): lightnvm: fix "warning: ‘ret’ may be used uninitialized" Jeff Moyer (1): skd: remove broken discard support Jens Axboe (22): Merge branch 'for-4.7/core' into for-4.7/drivers sd: switch to using blk_queue_write_cache() NVMe: switch to using blk_queue_write_cache() drbd: switch to using blk_queue_write_cache() loop: switch to using blk_queue_write_cache() mtip32xx: remove call to blk_queue_flush() nbd: switch to using blk_queue_write_cache() osdblk: switch to using blk_queue_write_cache() skd_main: switch to using blk_queue_write_cache() ps3disk: switch to using blk_queue_write_cache() virtio_blk: switch to using blk_queue_write_cache() bcache: switch to using blk_queue_write_cache() dm: switch to using blk_queue_write_cache() xen-blkfront: switch to using blk_queue_write_cache() ide-disk: update to using blk_queue_write_cache() md: update to using blk_queue_write_cache() mmc/block: switch to using blk_queue_write_cache() mtd: switch to using blk_queue_write_cache() um: switch to using blk_queue_write_cache() block: kill blk_queue_flush() NVMe: silence warning about unused 'dev' block: kill off q->flush_flags Keith Busch (3): NVMe: Skip async events for degraded controllers mtip32xx: Convert to use blk_mq_tagset_busy_iter NVMe: Fix check_flush_dependency warning Matias Bjørling (15): lightnvm: handle submit_io failure lightnvm: implement nvm_submit_ppa_list lightnvm: add fpg_size and pfpg_size to struct nvm_dev lightnvm: move block fold outside of get_bb_tbl() lightnvm: avoid memory leak when lun_map kcalloc fails lightnvm: introduce nvm_for_each_lun_ppa() macro lightnvm: refactor device ops->get_bb_tbl() lightnvm: remove struct factory_blks lightnvm: make nvm_set_rqd_ppalist() aware of vblks lightnvm: move responsibility for bad blk mgmt to target lightnvm: refactor set_bb_tbl for accepting ppa list lightnvm: fix out of bound ppa lun id on bb tbl lightnvm: remove mgt targets on mgt removal lightnvm: expose gennvm_mark_blk to targets lightnvm: add is_cached entry to struct ppa_addr Ming Lin (7): nvme: add missing lock nesting notation nvme: add helper nvme_map_len() nvme: rewrite discard support nvme: add helper nvme_setup_cmd() nvme: add helper nvme_cleanup_cmd() nvme: switch to RCU freeing the namespace nvme: fix nvme_ns_remove() deadlock Sagi Grimberg (3): nvme: Use blk-mq helper for IO termination blk-mq: Make blk_mq_all_tag_busy_iter static nvme/lightnvm: Log using the ctrl named device Simon A. F. Lund (2): lightnvm: rename nvm_targets to nvm_tgt_type lightnvm: refactor dev->online_target to global nvm_targets Wang Sheng-Hui (3): NVMe: small typo in section BLK_DEV_NVME_SCSI of host/Kconfig NVMe: nvme_core_exit() should do cleanup in the reverse order as nvme_core_init does NVMe: correct comment for offset enum of controller registers in nvme.h Wenwei Tao (2): lightnvm: calculate rrpc total blocks and sectors up front lightnvm: store rrpc->soffset in device sector size Documentation/block/writeback_cache_control.txt | 4 +- arch/um/drivers/ubd_kern.c | 2 +- block/blk-core.c | 3 +- block/blk-flush.c | 11 +- block/blk-mq-tag.c | 5 +- block/blk-settings.c | 38 +-- drivers/block/drbd/drbd_main.c | 2 +- drivers/block/loop.c | 2 +- drivers/block/mtip32xx/mtip32xx.c | 12 +- drivers/block/nbd.c | 4 +- drivers/block/osdblk.c | 2 +- drivers/block/ps3disk.c | 2 +- drivers/block/skd_main.c | 61 +--- drivers/block/virtio_blk.c | 6 +- drivers/block/xen-blkback/xenbus.c | 2 +- drivers/block/xen-blkfront.c | 3 +- drivers/ide/ide-disk.c | 6 +- drivers/lightnvm/core.c | 370 ++++++++++++++++-------- drivers/lightnvm/gennvm.c | 100 ++++--- drivers/lightnvm/rrpc.c | 42 ++- drivers/lightnvm/rrpc.h | 2 +- drivers/lightnvm/sysblk.c | 284 +++++++++--------- drivers/md/bcache/super.c | 2 +- drivers/md/dm-table.c | 20 +- drivers/md/md.c | 2 +- drivers/md/raid5-cache.c | 3 +- drivers/mmc/card/block.c | 2 +- drivers/mtd/mtd_blkdevs.c | 2 +- drivers/nvme/host/Kconfig | 2 +- drivers/nvme/host/core.c | 272 +++++++++++++++-- drivers/nvme/host/lightnvm.c | 82 ++---- drivers/nvme/host/nvme.h | 91 ++---- drivers/nvme/host/pci.c | 273 +++++++---------- drivers/scsi/sd.c | 8 +- drivers/target/target_core_iblock.c | 6 +- include/linux/blk-mq.h | 2 - include/linux/blkdev.h | 6 +- include/linux/lightnvm.h | 48 ++- include/linux/nvme.h | 4 +- 39 files changed, 982 insertions(+), 806 deletions(-) commit ee11358854d12c28a17175ea966ca782a572e81a Merge: 4f816cd13c1b 116f7d4a21fe Author: Jens Axboe Date: Tue May 17 09:22:13 2016 -0600 Merge branch 'for-4.7/drivers' into nvme-test Signed-off-by: Jens Axboe diff --cc drivers/nvme/host/pci.c index 4fd733ff72b1,fb741d09831a..0f093f14d348 --- a/drivers/nvme/host/pci.c +++ b/drivers/nvme/host/pci.c @@@ -2086,15 -2014,13 +2014,12 @@@ static void nvme_remove(struct pci_dev { struct nvme_dev *dev = pci_get_drvdata(pdev); - set_bit(NVME_CTRL_REMOVING, &dev->flags); + nvme_change_ctrl_state(&dev->ctrl, NVME_CTRL_DELETING); + pci_set_drvdata(pdev, NULL); - flush_work(&dev->async_work); flush_work(&dev->reset_work); - flush_work(&dev->scan_work); - nvme_remove_namespaces(&dev->ctrl); nvme_uninit_ctrl(&dev->ctrl); nvme_dev_disable(dev, true); -- flush_work(&dev->reset_work); nvme_dev_remove_admin(dev); nvme_free_queues(dev, 0); nvme_release_cmb(dev); -- Jens Axboe