Lines Matching refs:nvdimm
31 struct nvdimm *nvdimm = to_nvdimm(dev);
33 if (!nvdimm->cmd_mask ||
34 !test_bit(ND_CMD_GET_CONFIG_DATA, &nvdimm->cmd_mask)) {
35 if (test_bit(NDD_LABELING, &nvdimm->flags))
60 * @nvdimm: dimm to initialize
178 struct nvdimm *nvdimm = to_nvdimm(dev);
180 set_bit(NDD_LABELING, &nvdimm->flags);
185 struct nvdimm *nvdimm = to_nvdimm(dev);
187 set_bit(NDD_LOCKED, &nvdimm->flags);
192 struct nvdimm *nvdimm = to_nvdimm(dev);
194 clear_bit(NDD_LOCKED, &nvdimm->flags);
199 struct nvdimm *nvdimm = to_nvdimm(dev);
201 ida_simple_remove(&dimm_ida, nvdimm->id);
202 kfree(nvdimm);
205 struct nvdimm *to_nvdimm(struct device *dev)
207 struct nvdimm *nvdimm = container_of(dev, struct nvdimm, dev);
210 return nvdimm;
214 struct nvdimm *nd_blk_region_to_dimm(struct nd_blk_region *ndbr)
219 return nd_mapping->nvdimm;
232 struct nvdimm *nvdimm = nd_mapping->nvdimm;
234 WARN_ON_ONCE(!is_nvdimm_bus_locked(&nvdimm->dev));
236 return dev_get_drvdata(&nvdimm->dev);
268 const char *nvdimm_name(struct nvdimm *nvdimm)
270 return dev_name(&nvdimm->dev);
274 struct kobject *nvdimm_kobj(struct nvdimm *nvdimm)
276 return &nvdimm->dev.kobj;
280 unsigned long nvdimm_cmd_mask(struct nvdimm *nvdimm)
282 return nvdimm->cmd_mask;
286 void *nvdimm_provider_data(struct nvdimm *nvdimm)
288 if (nvdimm)
289 return nvdimm->provider_data;
297 struct nvdimm *nvdimm = to_nvdimm(dev);
300 if (!nvdimm->cmd_mask)
303 for_each_set_bit(cmd, &nvdimm->cmd_mask, BITS_PER_LONG)
313 struct nvdimm *nvdimm = to_nvdimm(dev);
316 test_bit(NDD_ALIASING, &nvdimm->flags) ? "alias " : "",
317 test_bit(NDD_LABELING, &nvdimm->flags) ? "label " : "",
318 test_bit(NDD_LOCKED, &nvdimm->flags) ? "lock " : "");
325 struct nvdimm *nvdimm = to_nvdimm(dev);
333 return sprintf(buf, "%s\n", atomic_read(&nvdimm->busy)
376 struct nvdimm *nvdimm = to_nvdimm(dev);
378 if (test_bit(NVDIMM_SECURITY_OVERWRITE, &nvdimm->sec.flags))
380 if (test_bit(NVDIMM_SECURITY_DISABLED, &nvdimm->sec.flags))
382 if (test_bit(NVDIMM_SECURITY_UNLOCKED, &nvdimm->sec.flags))
384 if (test_bit(NVDIMM_SECURITY_LOCKED, &nvdimm->sec.flags))
392 struct nvdimm *nvdimm = to_nvdimm(dev);
395 &nvdimm->sec.flags));
434 struct nvdimm *nvdimm = to_nvdimm(dev);
438 if (!nvdimm->sec.flags)
443 if (nvdimm->sec.ops->freeze || nvdimm->sec.ops->disable
444 || nvdimm->sec.ops->change_key
445 || nvdimm->sec.ops->erase
446 || nvdimm->sec.ops->overwrite)
451 if (nvdimm->sec.ops->freeze)
463 struct nvdimm *nvdimm = to_nvdimm(dev);
466 if (!nvdimm->fw_ops)
470 result = nvdimm->fw_ops->activate_result(nvdimm);
492 struct nvdimm *nvdimm = to_nvdimm(dev);
495 if (!nvdimm->fw_ops)
499 state = nvdimm->fw_ops->activate_state(nvdimm);
517 struct nvdimm *nvdimm = to_nvdimm(dev);
521 if (!nvdimm->fw_ops)
532 rc = nvdimm->fw_ops->arm(nvdimm, arg);
552 struct nvdimm *nvdimm = to_nvdimm(dev);
557 if (!nvdimm->fw_ops)
584 .name = "nvdimm",
594 struct nvdimm *__nvdimm_create(struct nvdimm_bus *nvdimm_bus,
601 struct nvdimm *nvdimm = kzalloc(sizeof(*nvdimm), GFP_KERNEL);
604 if (!nvdimm)
607 nvdimm->id = ida_simple_get(&dimm_ida, 0, 0, GFP_KERNEL);
608 if (nvdimm->id < 0) {
609 kfree(nvdimm);
613 nvdimm->dimm_id = dimm_id;
614 nvdimm->provider_data = provider_data;
617 nvdimm->flags = flags;
618 nvdimm->cmd_mask = cmd_mask;
619 nvdimm->num_flush = num_flush;
620 nvdimm->flush_wpq = flush_wpq;
621 atomic_set(&nvdimm->busy, 0);
622 dev = &nvdimm->dev;
623 dev_set_name(dev, "nmem%d", nvdimm->id);
626 dev->devt = MKDEV(nvdimm_major, nvdimm->id);
628 nvdimm->sec.ops = sec_ops;
629 nvdimm->fw_ops = fw_ops;
630 nvdimm->sec.overwrite_tmo = 0;
631 INIT_DELAYED_WORK(&nvdimm->dwork, nvdimm_security_overwrite_query);
637 nvdimm->sec.flags = nvdimm_security_flags(nvdimm, NVDIMM_USER);
638 nvdimm->sec.ext_flags = nvdimm_security_flags(nvdimm, NVDIMM_MASTER);
641 return nvdimm;
647 struct nvdimm *nvdimm = data;
649 sysfs_put(nvdimm->sec.overwrite_state);
654 struct nvdimm *nvdimm = to_nvdimm(dev);
656 if (!nvdimm->sec.flags || !nvdimm->sec.ops
657 || !nvdimm->sec.ops->overwrite)
659 nvdimm->sec.overwrite_state = sysfs_get_dirent(dev->kobj.sd, "security");
660 if (!nvdimm->sec.overwrite_state)
663 return devm_add_action_or_reset(dev, shutdown_security_notify, nvdimm);
667 int nvdimm_in_overwrite(struct nvdimm *nvdimm)
669 return test_bit(NDD_SECURITY_OVERWRITE, &nvdimm->flags);
673 int nvdimm_security_freeze(struct nvdimm *nvdimm)
677 WARN_ON_ONCE(!is_nvdimm_bus_locked(&nvdimm->dev));
679 if (!nvdimm->sec.ops || !nvdimm->sec.ops->freeze)
682 if (!nvdimm->sec.flags)
685 if (test_bit(NDD_SECURITY_OVERWRITE, &nvdimm->flags)) {
686 dev_warn(&nvdimm->dev, "Overwrite operation in progress.\n");
690 rc = nvdimm->sec.ops->freeze(nvdimm);
691 nvdimm->sec.flags = nvdimm_security_flags(nvdimm, NVDIMM_USER);
728 if (nd_mapping->nvdimm == info->nd_mapping->nvdimm)
862 if (__reserve_free_pmem(&nd_region->dev, nd_mapping->nvdimm))
983 * @nvdimm: container of dpa-resource-root + labels