mirror of
https://git.FreeBSD.org/src.git
synced 2024-12-18 10:35:55 +00:00
Add a mutex to each namespace, for general locking operations on the namespace.
Sponsored by: Intel
This commit is contained in:
parent
a90b810492
commit
97fafe2580
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=249418
@ -300,6 +300,17 @@ nvme_ns_construct(struct nvme_namespace *ns, uint16_t id,
|
||||
ns->ctrlr = ctrlr;
|
||||
ns->id = id;
|
||||
|
||||
/*
|
||||
* Namespaces are reconstructed after a controller reset, so check
|
||||
* to make sure we only call mtx_init once on each mtx.
|
||||
*
|
||||
* TODO: Move this somewhere where it gets called at controller
|
||||
* construction time, which is not invoked as part of each
|
||||
* controller reset.
|
||||
*/
|
||||
if (!mtx_initialized(&ns->lock))
|
||||
mtx_init(&ns->lock, "nvme ns lock", NULL, MTX_DEF);
|
||||
|
||||
#ifdef CHATHAM2
|
||||
if (pci_get_devid(ctrlr->dev) == CHATHAM_PCI_ID)
|
||||
nvme_ns_populate_chatham_data(ns);
|
||||
|
@ -238,6 +238,7 @@ struct nvme_namespace {
|
||||
uint16_t flags;
|
||||
struct cdev *cdev;
|
||||
void *cons_cookie[NVME_MAX_CONSUMERS];
|
||||
struct mtx lock;
|
||||
};
|
||||
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user