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

Commit 52bd456a authored by Jens Axboe's avatar Jens Axboe
Browse files

Merge branch 'nvme-4.19' of git://git.infradead.org/nvme into for-linus

Pull NVMe fixes from Christoph.

* 'nvme-4.19' of git://git.infradead.org/nvme:
  nvmet: free workqueue object if module init fails
  nvme-fcloop: Fix dropped LS's to removed target port
  nvme-pci: add a memory barrier to nvme_dbbuf_update_and_check_event
parents 8f3fafc9 04db0e5e
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -316,6 +316,14 @@ static bool nvme_dbbuf_update_and_check_event(u16 value, u32 *dbbuf_db,
		old_value = *dbbuf_db;
		*dbbuf_db = value;

		/*
		 * Ensure that the doorbell is updated before reading the event
		 * index from memory.  The controller needs to provide similar
		 * ordering to ensure the envent index is updated before reading
		 * the doorbell.
		 */
		mb();

		if (!nvme_dbbuf_need_event(*dbbuf_ei, value, old_value))
			return false;
	}
+3 −1
Original line number Diff line number Diff line
@@ -1210,7 +1210,7 @@ static int __init nvmet_init(void)

	error = nvmet_init_discovery();
	if (error)
		goto out;
		goto out_free_work_queue;

	error = nvmet_init_configfs();
	if (error)
@@ -1219,6 +1219,8 @@ static int __init nvmet_init(void)

out_exit_discovery:
	nvmet_exit_discovery();
out_free_work_queue:
	destroy_workqueue(buffered_io_wq);
out:
	return error;
}
+2 −1
Original line number Diff line number Diff line
@@ -311,7 +311,7 @@ fcloop_tgt_lsrqst_done_work(struct work_struct *work)
	struct fcloop_tport *tport = tls_req->tport;
	struct nvmefc_ls_req *lsreq = tls_req->lsreq;

	if (tport->remoteport)
	if (!tport || tport->remoteport)
		lsreq->done(lsreq, tls_req->status);
}

@@ -329,6 +329,7 @@ fcloop_ls_req(struct nvme_fc_local_port *localport,

	if (!rport->targetport) {
		tls_req->status = -ECONNREFUSED;
		tls_req->tport = NULL;
		schedule_work(&tls_req->work);
		return ret;
	}