Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b9bd6806 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'for-linus-20190823' of git://git.kernel.dk/linux-block

Pull block fixes from Jens Axboe:
 "Here's a set of fixes that should go into this release. This contains:

   - Three minor fixes for NVMe.

   - Three minor tweaks for the io_uring polling logic.

   - Officially mark Song as the MD maintainer, after he's been filling
     that role sucessfully for the last 6 months or so"

* tag 'for-linus-20190823' of git://git.kernel.dk/linux-block:
  io_uring: add need_resched() check in inner poll loop
  md: update MAINTAINERS info
  io_uring: don't enter poll loop if we have CQEs pending
  nvme: Add quirk for LiteON CL1 devices running FW 22301111
  nvme: Fix cntlid validation when not using NVMEoF
  nvme-multipath: fix possible I/O hang when paths are updated
  io_uring: fix potential hang with polled IO
parents dd469a45 08f5439f
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -14883,9 +14883,9 @@ F: include/linux/arm_sdei.h
F:	include/uapi/linux/arm_sdei.h

SOFTWARE RAID (Multiple Disks) SUPPORT
M:	Shaohua Li <shli@kernel.org>
M:	Song Liu <song@kernel.org>
L:	linux-raid@vger.kernel.org
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/shli/md.git
T:	git git://git.kernel.org/pub/scm/linux/kernel/git/song/md.git
S:	Supported
F:	drivers/md/Makefile
F:	drivers/md/Kconfig
+13 −1
Original line number Diff line number Diff line
@@ -2257,6 +2257,16 @@ static const struct nvme_core_quirk_entry core_quirks[] = {
		.vid = 0x1179,
		.mn = "THNSF5256GPUK TOSHIBA",
		.quirks = NVME_QUIRK_NO_APST,
	},
	{
		/*
		 * This LiteON CL1-3D*-Q11 firmware version has a race
		 * condition associated with actions related to suspend to idle
		 * LiteON has resolved the problem in future firmware
		 */
		.vid = 0x14a4,
		.fr = "22301111",
		.quirks = NVME_QUIRK_SIMPLE_SUSPEND,
	}
};

@@ -2597,6 +2607,9 @@ int nvme_init_identify(struct nvme_ctrl *ctrl)
			goto out_free;
	}

	if (!(ctrl->ops->flags & NVME_F_FABRICS))
		ctrl->cntlid = le16_to_cpu(id->cntlid);

	if (!ctrl->identified) {
		int i;

@@ -2697,7 +2710,6 @@ int nvme_init_identify(struct nvme_ctrl *ctrl)
			goto out_free;
		}
	} else {
		ctrl->cntlid = le16_to_cpu(id->cntlid);
		ctrl->hmpre = le32_to_cpu(id->hmpre);
		ctrl->hmmin = le32_to_cpu(id->hmmin);
		ctrl->hmminds = le32_to_cpu(id->hmminds);
+1 −0
Original line number Diff line number Diff line
@@ -428,6 +428,7 @@ static void nvme_mpath_set_live(struct nvme_ns *ns)
		srcu_read_unlock(&head->srcu, srcu_idx);
	}

	synchronize_srcu(&ns->head->srcu);
	kblockd_schedule_work(&ns->head->requeue_work);
}

+5 −0
Original line number Diff line number Diff line
@@ -92,6 +92,11 @@ enum nvme_quirks {
	 * Broken Write Zeroes.
	 */
	NVME_QUIRK_DISABLE_WRITE_ZEROES		= (1 << 9),

	/*
	 * Force simple suspend/resume path.
	 */
	NVME_QUIRK_SIMPLE_SUSPEND		= (1 << 10),
};

/*
+2 −1
Original line number Diff line number Diff line
@@ -2876,7 +2876,8 @@ static int nvme_suspend(struct device *dev)
	 * state (which may not be possible if the link is up).
	 */
	if (pm_suspend_via_firmware() || !ctrl->npss ||
	    !pcie_aspm_enabled(pdev)) {
	    !pcie_aspm_enabled(pdev) ||
	    (ndev->ctrl.quirks & NVME_QUIRK_SIMPLE_SUSPEND)) {
		nvme_dev_disable(ndev, true);
		return 0;
	}
Loading