Lines Matching refs:nvdimm

27 	struct nvdimm *nvdimm = to_nvdimm(dev);  in nvdimm_check_config_data()  local
29 if (!nvdimm->cmd_mask || in nvdimm_check_config_data()
30 !test_bit(ND_CMD_GET_CONFIG_DATA, &nvdimm->cmd_mask)) { in nvdimm_check_config_data()
31 if (test_bit(NDD_LABELING, &nvdimm->flags)) in nvdimm_check_config_data()
174 struct nvdimm *nvdimm = to_nvdimm(dev); in nvdimm_set_labeling() local
176 set_bit(NDD_LABELING, &nvdimm->flags); in nvdimm_set_labeling()
181 struct nvdimm *nvdimm = to_nvdimm(dev); in nvdimm_set_locked() local
183 set_bit(NDD_LOCKED, &nvdimm->flags); in nvdimm_set_locked()
188 struct nvdimm *nvdimm = to_nvdimm(dev); in nvdimm_clear_locked() local
190 clear_bit(NDD_LOCKED, &nvdimm->flags); in nvdimm_clear_locked()
195 struct nvdimm *nvdimm = to_nvdimm(dev); in nvdimm_release() local
197 ida_simple_remove(&dimm_ida, nvdimm->id); in nvdimm_release()
198 kfree(nvdimm); in nvdimm_release()
201 struct nvdimm *to_nvdimm(struct device *dev) in to_nvdimm()
203 struct nvdimm *nvdimm = container_of(dev, struct nvdimm, dev); in to_nvdimm() local
206 return nvdimm; in to_nvdimm()
212 struct nvdimm *nvdimm = nd_mapping->nvdimm; in to_ndd() local
214 WARN_ON_ONCE(!is_nvdimm_bus_locked(&nvdimm->dev)); in to_ndd()
216 return dev_get_drvdata(&nvdimm->dev); in to_ndd()
248 const char *nvdimm_name(struct nvdimm *nvdimm) in nvdimm_name() argument
250 return dev_name(&nvdimm->dev); in nvdimm_name()
254 struct kobject *nvdimm_kobj(struct nvdimm *nvdimm) in nvdimm_kobj() argument
256 return &nvdimm->dev.kobj; in nvdimm_kobj()
260 unsigned long nvdimm_cmd_mask(struct nvdimm *nvdimm) in nvdimm_cmd_mask() argument
262 return nvdimm->cmd_mask; in nvdimm_cmd_mask()
266 void *nvdimm_provider_data(struct nvdimm *nvdimm) in nvdimm_provider_data() argument
268 if (nvdimm) in nvdimm_provider_data()
269 return nvdimm->provider_data; in nvdimm_provider_data()
277 struct nvdimm *nvdimm = to_nvdimm(dev); in commands_show() local
280 if (!nvdimm->cmd_mask) in commands_show()
283 for_each_set_bit(cmd, &nvdimm->cmd_mask, BITS_PER_LONG) in commands_show()
293 struct nvdimm *nvdimm = to_nvdimm(dev); in flags_show() local
296 test_bit(NDD_LABELING, &nvdimm->flags) ? "label " : "", in flags_show()
297 test_bit(NDD_LOCKED, &nvdimm->flags) ? "lock " : ""); in flags_show()
304 struct nvdimm *nvdimm = to_nvdimm(dev); in state_show() local
312 return sprintf(buf, "%s\n", atomic_read(&nvdimm->busy) in state_show()
355 struct nvdimm *nvdimm = to_nvdimm(dev); in security_show() local
362 nvdimm->sec.flags = nvdimm_security_flags(nvdimm, NVDIMM_USER); in security_show()
364 if (test_bit(NVDIMM_SECURITY_OVERWRITE, &nvdimm->sec.flags)) in security_show()
366 if (test_bit(NVDIMM_SECURITY_DISABLED, &nvdimm->sec.flags)) in security_show()
368 if (test_bit(NVDIMM_SECURITY_UNLOCKED, &nvdimm->sec.flags)) in security_show()
370 if (test_bit(NVDIMM_SECURITY_LOCKED, &nvdimm->sec.flags)) in security_show()
378 struct nvdimm *nvdimm = to_nvdimm(dev); in frozen_show() local
381 &nvdimm->sec.flags)); in frozen_show()
420 struct nvdimm *nvdimm = to_nvdimm(dev); in nvdimm_visible() local
424 if (!nvdimm->sec.flags) in nvdimm_visible()
429 if (nvdimm->sec.ops->freeze || nvdimm->sec.ops->disable in nvdimm_visible()
430 || nvdimm->sec.ops->change_key in nvdimm_visible()
431 || nvdimm->sec.ops->erase in nvdimm_visible()
432 || nvdimm->sec.ops->overwrite) in nvdimm_visible()
437 if (nvdimm->sec.ops->freeze) in nvdimm_visible()
449 struct nvdimm *nvdimm = to_nvdimm(dev); in result_show() local
452 if (!nvdimm->fw_ops) in result_show()
456 result = nvdimm->fw_ops->activate_result(nvdimm); in result_show()
478 struct nvdimm *nvdimm = to_nvdimm(dev); in activate_show() local
481 if (!nvdimm->fw_ops) in activate_show()
485 state = nvdimm->fw_ops->activate_state(nvdimm); in activate_show()
503 struct nvdimm *nvdimm = to_nvdimm(dev); in activate_store() local
507 if (!nvdimm->fw_ops) in activate_store()
518 rc = nvdimm->fw_ops->arm(nvdimm, arg); in activate_store()
538 struct nvdimm *nvdimm = to_nvdimm(dev); in nvdimm_firmware_visible() local
543 if (!nvdimm->fw_ops) in nvdimm_firmware_visible()
582 struct nvdimm *__nvdimm_create(struct nvdimm_bus *nvdimm_bus, in __nvdimm_create()
589 struct nvdimm *nvdimm = kzalloc(sizeof(*nvdimm), GFP_KERNEL); in __nvdimm_create() local
592 if (!nvdimm) in __nvdimm_create()
595 nvdimm->id = ida_simple_get(&dimm_ida, 0, 0, GFP_KERNEL); in __nvdimm_create()
596 if (nvdimm->id < 0) { in __nvdimm_create()
597 kfree(nvdimm); in __nvdimm_create()
601 nvdimm->dimm_id = dimm_id; in __nvdimm_create()
602 nvdimm->provider_data = provider_data; in __nvdimm_create()
603 nvdimm->flags = flags; in __nvdimm_create()
604 nvdimm->cmd_mask = cmd_mask; in __nvdimm_create()
605 nvdimm->num_flush = num_flush; in __nvdimm_create()
606 nvdimm->flush_wpq = flush_wpq; in __nvdimm_create()
607 atomic_set(&nvdimm->busy, 0); in __nvdimm_create()
608 dev = &nvdimm->dev; in __nvdimm_create()
609 dev_set_name(dev, "nmem%d", nvdimm->id); in __nvdimm_create()
612 dev->devt = MKDEV(nvdimm_major, nvdimm->id); in __nvdimm_create()
614 nvdimm->sec.ops = sec_ops; in __nvdimm_create()
615 nvdimm->fw_ops = fw_ops; in __nvdimm_create()
616 nvdimm->sec.overwrite_tmo = 0; in __nvdimm_create()
617 INIT_DELAYED_WORK(&nvdimm->dwork, nvdimm_security_overwrite_query); in __nvdimm_create()
623 nvdimm->sec.flags = nvdimm_security_flags(nvdimm, NVDIMM_USER); in __nvdimm_create()
624 nvdimm->sec.ext_flags = nvdimm_security_flags(nvdimm, NVDIMM_MASTER); in __nvdimm_create()
632 return nvdimm; in __nvdimm_create()
636 void nvdimm_delete(struct nvdimm *nvdimm) in nvdimm_delete() argument
638 struct device *dev = &nvdimm->dev; in nvdimm_delete()
643 set_bit(NVDIMM_SECURITY_FROZEN, &nvdimm->sec.flags); in nvdimm_delete()
644 if (test_and_clear_bit(NDD_WORK_PENDING, &nvdimm->flags)) in nvdimm_delete()
647 cancel_delayed_work_sync(&nvdimm->dwork); in nvdimm_delete()
656 struct nvdimm *nvdimm = data; in shutdown_security_notify() local
658 sysfs_put(nvdimm->sec.overwrite_state); in shutdown_security_notify()
663 struct nvdimm *nvdimm = to_nvdimm(dev); in nvdimm_security_setup_events() local
665 if (!nvdimm->sec.flags || !nvdimm->sec.ops in nvdimm_security_setup_events()
666 || !nvdimm->sec.ops->overwrite) in nvdimm_security_setup_events()
668 nvdimm->sec.overwrite_state = sysfs_get_dirent(dev->kobj.sd, "security"); in nvdimm_security_setup_events()
669 if (!nvdimm->sec.overwrite_state) in nvdimm_security_setup_events()
672 return devm_add_action_or_reset(dev, shutdown_security_notify, nvdimm); in nvdimm_security_setup_events()
676 int nvdimm_in_overwrite(struct nvdimm *nvdimm) in nvdimm_in_overwrite() argument
678 return test_bit(NDD_SECURITY_OVERWRITE, &nvdimm->flags); in nvdimm_in_overwrite()
682 int nvdimm_security_freeze(struct nvdimm *nvdimm) in nvdimm_security_freeze() argument
686 WARN_ON_ONCE(!is_nvdimm_bus_locked(&nvdimm->dev)); in nvdimm_security_freeze()
688 if (!nvdimm->sec.ops || !nvdimm->sec.ops->freeze) in nvdimm_security_freeze()
691 if (!nvdimm->sec.flags) in nvdimm_security_freeze()
694 if (test_bit(NDD_SECURITY_OVERWRITE, &nvdimm->flags)) { in nvdimm_security_freeze()
695 dev_warn(&nvdimm->dev, "Overwrite operation in progress.\n"); in nvdimm_security_freeze()
699 rc = nvdimm->sec.ops->freeze(nvdimm); in nvdimm_security_freeze()
700 nvdimm->sec.flags = nvdimm_security_flags(nvdimm, NVDIMM_USER); in nvdimm_security_freeze()
744 if (__reserve_free_pmem(&nd_region->dev, nd_mapping->nvdimm)) in nd_pmem_max_contiguous_dpa()