Lines Matching defs:nvdimm

27 	struct nvdimm *nvdimm = to_nvdimm(dev);
29 if (!nvdimm->cmd_mask ||
30 !test_bit(ND_CMD_GET_CONFIG_DATA, &nvdimm->cmd_mask)) {
31 if (test_bit(NDD_LABELING, &nvdimm->flags))
176 struct nvdimm *nvdimm = to_nvdimm(dev);
178 set_bit(NDD_LABELING, &nvdimm->flags);
183 struct nvdimm *nvdimm = to_nvdimm(dev);
185 set_bit(NDD_LOCKED, &nvdimm->flags);
190 struct nvdimm *nvdimm = to_nvdimm(dev);
192 clear_bit(NDD_LOCKED, &nvdimm->flags);
197 struct nvdimm *nvdimm = to_nvdimm(dev);
199 ida_free(&dimm_ida, nvdimm->id);
200 kfree(nvdimm);
203 struct nvdimm *to_nvdimm(struct device *dev)
205 struct nvdimm *nvdimm = container_of(dev, struct nvdimm, dev);
208 return nvdimm;
214 struct nvdimm *nvdimm = nd_mapping->nvdimm;
216 WARN_ON_ONCE(!is_nvdimm_bus_locked(&nvdimm->dev));
218 return dev_get_drvdata(&nvdimm->dev);
250 const char *nvdimm_name(struct nvdimm *nvdimm)
252 return dev_name(&nvdimm->dev);
256 struct kobject *nvdimm_kobj(struct nvdimm *nvdimm)
258 return &nvdimm->dev.kobj;
262 unsigned long nvdimm_cmd_mask(struct nvdimm *nvdimm)
264 return nvdimm->cmd_mask;
268 void *nvdimm_provider_data(struct nvdimm *nvdimm)
270 if (nvdimm)
271 return nvdimm->provider_data;
279 struct nvdimm *nvdimm = to_nvdimm(dev);
282 if (!nvdimm->cmd_mask)
285 for_each_set_bit(cmd, &nvdimm->cmd_mask, BITS_PER_LONG)
295 struct nvdimm *nvdimm = to_nvdimm(dev);
298 test_bit(NDD_LABELING, &nvdimm->flags) ? "label " : "",
299 test_bit(NDD_LOCKED, &nvdimm->flags) ? "lock " : "");
306 struct nvdimm *nvdimm = to_nvdimm(dev);
314 return sprintf(buf, "%s\n", atomic_read(&nvdimm->busy)
357 struct nvdimm *nvdimm = to_nvdimm(dev);
364 nvdimm->sec.flags = nvdimm_security_flags(nvdimm, NVDIMM_USER);
366 if (test_bit(NVDIMM_SECURITY_OVERWRITE, &nvdimm->sec.flags))
368 if (test_bit(NVDIMM_SECURITY_DISABLED, &nvdimm->sec.flags))
370 if (test_bit(NVDIMM_SECURITY_UNLOCKED, &nvdimm->sec.flags))
372 if (test_bit(NVDIMM_SECURITY_LOCKED, &nvdimm->sec.flags))
380 struct nvdimm *nvdimm = to_nvdimm(dev);
383 &nvdimm->sec.flags));
422 struct nvdimm *nvdimm = to_nvdimm(dev);
426 if (!nvdimm->sec.flags)
431 if (nvdimm->sec.ops->freeze || nvdimm->sec.ops->disable
432 || nvdimm->sec.ops->change_key
433 || nvdimm->sec.ops->erase
434 || nvdimm->sec.ops->overwrite)
439 if (nvdimm->sec.ops->freeze)
451 struct nvdimm *nvdimm = to_nvdimm(dev);
454 if (!nvdimm->fw_ops)
458 result = nvdimm->fw_ops->activate_result(nvdimm);
480 struct nvdimm *nvdimm = to_nvdimm(dev);
483 if (!nvdimm->fw_ops)
487 state = nvdimm->fw_ops->activate_state(nvdimm);
505 struct nvdimm *nvdimm = to_nvdimm(dev);
509 if (!nvdimm->fw_ops)
520 rc = nvdimm->fw_ops->arm(nvdimm, arg);
540 struct nvdimm *nvdimm = to_nvdimm(dev);
545 if (!nvdimm->fw_ops)
572 .name = "nvdimm",
584 struct nvdimm *__nvdimm_create(struct nvdimm_bus *nvdimm_bus,
591 struct nvdimm *nvdimm = kzalloc(sizeof(*nvdimm), GFP_KERNEL);
594 if (!nvdimm)
597 nvdimm->id = ida_alloc(&dimm_ida, GFP_KERNEL);
598 if (nvdimm->id < 0) {
599 kfree(nvdimm);
603 nvdimm->dimm_id = dimm_id;
604 nvdimm->provider_data = provider_data;
605 nvdimm->flags = flags;
606 nvdimm->cmd_mask = cmd_mask;
607 nvdimm->num_flush = num_flush;
608 nvdimm->flush_wpq = flush_wpq;
609 atomic_set(&nvdimm->busy, 0);
610 dev = &nvdimm->dev;
611 dev_set_name(dev, "nmem%d", nvdimm->id);
614 dev->devt = MKDEV(nvdimm_major, nvdimm->id);
616 nvdimm->sec.ops = sec_ops;
617 nvdimm->fw_ops = fw_ops;
618 nvdimm->sec.overwrite_tmo = 0;
619 INIT_DELAYED_WORK(&nvdimm->dwork, nvdimm_security_overwrite_query);
625 nvdimm->sec.flags = nvdimm_security_flags(nvdimm, NVDIMM_USER);
626 nvdimm->sec.ext_flags = nvdimm_security_flags(nvdimm, NVDIMM_MASTER);
634 return nvdimm;
638 void nvdimm_delete(struct nvdimm *nvdimm)
640 struct device *dev = &nvdimm->dev;
645 set_bit(NVDIMM_SECURITY_FROZEN, &nvdimm->sec.flags);
646 if (test_and_clear_bit(NDD_WORK_PENDING, &nvdimm->flags))
649 cancel_delayed_work_sync(&nvdimm->dwork);
658 struct nvdimm *nvdimm = data;
660 sysfs_put(nvdimm->sec.overwrite_state);
665 struct nvdimm *nvdimm = to_nvdimm(dev);
667 if (!nvdimm->sec.flags || !nvdimm->sec.ops
668 || !nvdimm->sec.ops->overwrite)
670 nvdimm->sec.overwrite_state = sysfs_get_dirent(dev->kobj.sd, "security");
671 if (!nvdimm->sec.overwrite_state)
674 return devm_add_action_or_reset(dev, shutdown_security_notify, nvdimm);
678 int nvdimm_in_overwrite(struct nvdimm *nvdimm)
680 return test_bit(NDD_SECURITY_OVERWRITE, &nvdimm->flags);
684 int nvdimm_security_freeze(struct nvdimm *nvdimm)
688 WARN_ON_ONCE(!is_nvdimm_bus_locked(&nvdimm->dev));
690 if (!nvdimm->sec.ops || !nvdimm->sec.ops->freeze)
693 if (!nvdimm->sec.flags)
696 if (test_bit(NDD_SECURITY_OVERWRITE, &nvdimm->flags)) {
697 dev_warn(&nvdimm->dev, "Overwrite operation in progress.\n");
701 rc = nvdimm->sec.ops->freeze(nvdimm);
702 nvdimm->sec.flags = nvdimm_security_flags(nvdimm, NVDIMM_USER);
749 if (__reserve_free_pmem(&nd_region->dev, nd_mapping->nvdimm))