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
357 if (test_bit(NVDIMM_SECURITY_OVERWRITE, &nvdimm->sec.flags)) in security_show()
359 if (test_bit(NVDIMM_SECURITY_DISABLED, &nvdimm->sec.flags)) in security_show()
361 if (test_bit(NVDIMM_SECURITY_UNLOCKED, &nvdimm->sec.flags)) in security_show()
363 if (test_bit(NVDIMM_SECURITY_LOCKED, &nvdimm->sec.flags)) in security_show()
371 struct nvdimm *nvdimm = to_nvdimm(dev); in frozen_show() local
374 &nvdimm->sec.flags)); in frozen_show()
413 struct nvdimm *nvdimm = to_nvdimm(dev); in nvdimm_visible() local
417 if (!nvdimm->sec.flags) in nvdimm_visible()
422 if (nvdimm->sec.ops->freeze || nvdimm->sec.ops->disable in nvdimm_visible()
423 || nvdimm->sec.ops->change_key in nvdimm_visible()
424 || nvdimm->sec.ops->erase in nvdimm_visible()
425 || nvdimm->sec.ops->overwrite) in nvdimm_visible()
430 if (nvdimm->sec.ops->freeze) in nvdimm_visible()
442 struct nvdimm *nvdimm = to_nvdimm(dev); in result_show() local
445 if (!nvdimm->fw_ops) in result_show()
449 result = nvdimm->fw_ops->activate_result(nvdimm); in result_show()
471 struct nvdimm *nvdimm = to_nvdimm(dev); in activate_show() local
474 if (!nvdimm->fw_ops) in activate_show()
478 state = nvdimm->fw_ops->activate_state(nvdimm); in activate_show()
496 struct nvdimm *nvdimm = to_nvdimm(dev); in activate_store() local
500 if (!nvdimm->fw_ops) in activate_store()
511 rc = nvdimm->fw_ops->arm(nvdimm, arg); in activate_store()
531 struct nvdimm *nvdimm = to_nvdimm(dev); in nvdimm_firmware_visible() local
536 if (!nvdimm->fw_ops) in nvdimm_firmware_visible()
575 struct nvdimm *__nvdimm_create(struct nvdimm_bus *nvdimm_bus, in __nvdimm_create()
582 struct nvdimm *nvdimm = kzalloc(sizeof(*nvdimm), GFP_KERNEL); in __nvdimm_create() local
585 if (!nvdimm) in __nvdimm_create()
588 nvdimm->id = ida_simple_get(&dimm_ida, 0, 0, GFP_KERNEL); in __nvdimm_create()
589 if (nvdimm->id < 0) { in __nvdimm_create()
590 kfree(nvdimm); in __nvdimm_create()
594 nvdimm->dimm_id = dimm_id; in __nvdimm_create()
595 nvdimm->provider_data = provider_data; in __nvdimm_create()
596 nvdimm->flags = flags; in __nvdimm_create()
597 nvdimm->cmd_mask = cmd_mask; in __nvdimm_create()
598 nvdimm->num_flush = num_flush; in __nvdimm_create()
599 nvdimm->flush_wpq = flush_wpq; in __nvdimm_create()
600 atomic_set(&nvdimm->busy, 0); in __nvdimm_create()
601 dev = &nvdimm->dev; in __nvdimm_create()
602 dev_set_name(dev, "nmem%d", nvdimm->id); in __nvdimm_create()
605 dev->devt = MKDEV(nvdimm_major, nvdimm->id); in __nvdimm_create()
607 nvdimm->sec.ops = sec_ops; in __nvdimm_create()
608 nvdimm->fw_ops = fw_ops; in __nvdimm_create()
609 nvdimm->sec.overwrite_tmo = 0; in __nvdimm_create()
610 INIT_DELAYED_WORK(&nvdimm->dwork, nvdimm_security_overwrite_query); in __nvdimm_create()
616 nvdimm->sec.flags = nvdimm_security_flags(nvdimm, NVDIMM_USER); in __nvdimm_create()
617 nvdimm->sec.ext_flags = nvdimm_security_flags(nvdimm, NVDIMM_MASTER); in __nvdimm_create()
622 return nvdimm; in __nvdimm_create()
626 void nvdimm_delete(struct nvdimm *nvdimm) in nvdimm_delete() argument
628 struct device *dev = &nvdimm->dev; in nvdimm_delete()
633 set_bit(NVDIMM_SECURITY_FROZEN, &nvdimm->sec.flags); in nvdimm_delete()
634 if (test_and_clear_bit(NDD_WORK_PENDING, &nvdimm->flags)) in nvdimm_delete()
637 cancel_delayed_work_sync(&nvdimm->dwork); in nvdimm_delete()
646 struct nvdimm *nvdimm = data; in shutdown_security_notify() local
648 sysfs_put(nvdimm->sec.overwrite_state); in shutdown_security_notify()
653 struct nvdimm *nvdimm = to_nvdimm(dev); in nvdimm_security_setup_events() local
655 if (!nvdimm->sec.flags || !nvdimm->sec.ops in nvdimm_security_setup_events()
656 || !nvdimm->sec.ops->overwrite) in nvdimm_security_setup_events()
658 nvdimm->sec.overwrite_state = sysfs_get_dirent(dev->kobj.sd, "security"); in nvdimm_security_setup_events()
659 if (!nvdimm->sec.overwrite_state) in nvdimm_security_setup_events()
662 return devm_add_action_or_reset(dev, shutdown_security_notify, nvdimm); in nvdimm_security_setup_events()
666 int nvdimm_in_overwrite(struct nvdimm *nvdimm) in nvdimm_in_overwrite() argument
668 return test_bit(NDD_SECURITY_OVERWRITE, &nvdimm->flags); in nvdimm_in_overwrite()
672 int nvdimm_security_freeze(struct nvdimm *nvdimm) in nvdimm_security_freeze() argument
676 WARN_ON_ONCE(!is_nvdimm_bus_locked(&nvdimm->dev)); in nvdimm_security_freeze()
678 if (!nvdimm->sec.ops || !nvdimm->sec.ops->freeze) in nvdimm_security_freeze()
681 if (!nvdimm->sec.flags) in nvdimm_security_freeze()
684 if (test_bit(NDD_SECURITY_OVERWRITE, &nvdimm->flags)) { in nvdimm_security_freeze()
685 dev_warn(&nvdimm->dev, "Overwrite operation in progress.\n"); in nvdimm_security_freeze()
689 rc = nvdimm->sec.ops->freeze(nvdimm); in nvdimm_security_freeze()
690 nvdimm->sec.flags = nvdimm_security_flags(nvdimm, NVDIMM_USER); in nvdimm_security_freeze()
734 if (__reserve_free_pmem(&nd_region->dev, nd_mapping->nvdimm)) in nd_pmem_max_contiguous_dpa()