Lines Matching refs:cxlmd

27 	struct cxl_memdev *cxlmd = to_cxl_memdev(dev);  in cxl_memdev_release()  local
29 ida_free(&cxl_memdev_ida, cxlmd->id); in cxl_memdev_release()
30 kfree(cxlmd); in cxl_memdev_release()
42 struct cxl_memdev *cxlmd = to_cxl_memdev(dev); in firmware_version_show() local
43 struct cxl_dev_state *cxlds = cxlmd->cxlds; in firmware_version_show()
55 struct cxl_memdev *cxlmd = to_cxl_memdev(dev); in payload_max_show() local
56 struct cxl_dev_state *cxlds = cxlmd->cxlds; in payload_max_show()
68 struct cxl_memdev *cxlmd = to_cxl_memdev(dev); in label_storage_size_show() local
69 struct cxl_dev_state *cxlds = cxlmd->cxlds; in label_storage_size_show()
89 struct cxl_memdev *cxlmd = to_cxl_memdev(dev); in ram_size_show() local
90 struct cxl_dev_state *cxlds = cxlmd->cxlds; in ram_size_show()
102 struct cxl_memdev *cxlmd = to_cxl_memdev(dev); in pmem_size_show() local
103 struct cxl_dev_state *cxlds = cxlmd->cxlds; in pmem_size_show()
115 struct cxl_memdev *cxlmd = to_cxl_memdev(dev); in serial_show() local
116 struct cxl_dev_state *cxlds = cxlmd->cxlds; in serial_show()
133 struct cxl_memdev *cxlmd = to_cxl_memdev(dev); in security_state_show() local
134 struct cxl_dev_state *cxlds = cxlmd->cxlds; in security_state_show()
166 struct cxl_memdev *cxlmd = to_cxl_memdev(dev); in security_sanitize_store() local
173 rc = cxl_mem_sanitize(cxlmd, CXL_MBOX_OP_SANITIZE); in security_sanitize_store()
186 struct cxl_memdev *cxlmd = to_cxl_memdev(dev); in security_erase_store() local
193 rc = cxl_mem_sanitize(cxlmd, CXL_MBOX_OP_SECURE_ERASE); in security_erase_store()
202 static int cxl_get_poison_by_memdev(struct cxl_memdev *cxlmd) in cxl_get_poison_by_memdev() argument
204 struct cxl_dev_state *cxlds = cxlmd->cxlds; in cxl_get_poison_by_memdev()
214 rc = cxl_mem_get_poison(cxlmd, offset, length, NULL); in cxl_get_poison_by_memdev()
225 int cxl_trigger_poison_list(struct cxl_memdev *cxlmd) in cxl_trigger_poison_list() argument
230 port = cxlmd->endpoint; in cxl_trigger_poison_list()
246 rc = cxl_get_poison_by_memdev(cxlmd); in cxl_trigger_poison_list()
258 static int cxl_validate_poison_dpa(struct cxl_memdev *cxlmd, u64 dpa) in cxl_validate_poison_dpa() argument
260 struct cxl_dev_state *cxlds = cxlmd->cxlds; in cxl_validate_poison_dpa()
282 int cxl_inject_poison(struct cxl_memdev *cxlmd, u64 dpa) in cxl_inject_poison() argument
284 struct cxl_mailbox *cxl_mbox = &cxlmd->cxlds->cxl_mbox; in cxl_inject_poison()
304 rc = cxl_validate_poison_dpa(cxlmd, dpa); in cxl_inject_poison()
318 cxlr = cxl_dpa_to_region(cxlmd, dpa); in cxl_inject_poison()
328 trace_cxl_poison(cxlmd, cxlr, &record, 0, 0, CXL_POISON_TRACE_INJECT); in cxl_inject_poison()
337 int cxl_clear_poison(struct cxl_memdev *cxlmd, u64 dpa) in cxl_clear_poison() argument
339 struct cxl_mailbox *cxl_mbox = &cxlmd->cxlds->cxl_mbox; in cxl_clear_poison()
359 rc = cxl_validate_poison_dpa(cxlmd, dpa); in cxl_clear_poison()
382 cxlr = cxl_dpa_to_region(cxlmd, dpa); in cxl_clear_poison()
392 trace_cxl_poison(cxlmd, cxlr, &record, 0, 0, CXL_POISON_TRACE_CLEAR); in cxl_clear_poison()
421 struct cxl_memdev *cxlmd = to_cxl_memdev(dev); in pmem_qos_class_show() local
422 struct cxl_dev_state *cxlds = cxlmd->cxlds; in pmem_qos_class_show()
446 struct cxl_memdev *cxlmd = to_cxl_memdev(dev); in ram_qos_class_show() local
447 struct cxl_dev_state *cxlds = cxlmd->cxlds; in ram_qos_class_show()
484 struct cxl_memdev *cxlmd = to_cxl_memdev(dev); in cxl_ram_visible() local
485 struct cxl_dpa_perf *perf = to_ram_perf(cxlmd->cxlds); in cxl_ram_visible()
503 struct cxl_memdev *cxlmd = to_cxl_memdev(dev); in cxl_pmem_visible() local
504 struct cxl_dpa_perf *perf = to_pmem_perf(cxlmd->cxlds); in cxl_pmem_visible()
523 struct cxl_memdev *cxlmd = to_cxl_memdev(dev); in cxl_memdev_security_visible() local
524 struct cxl_memdev_state *mds = to_cxl_memdev_state(cxlmd->cxlds); in cxl_memdev_security_visible()
551 void cxl_memdev_update_perf(struct cxl_memdev *cxlmd) in cxl_memdev_update_perf() argument
553 sysfs_update_group(&cxlmd->dev.kobj, &cxl_memdev_ram_attribute_group); in cxl_memdev_update_perf()
554 sysfs_update_group(&cxlmd->dev.kobj, &cxl_memdev_pmem_attribute_group); in cxl_memdev_update_perf()
609 struct cxl_memdev *cxlmd = to_cxl_memdev(dev); in cxl_memdev_shutdown() local
612 cxlmd->cxlds = NULL; in cxl_memdev_shutdown()
617 struct cxl_memdev *cxlmd = _cxlmd; in cxl_memdev_unregister() local
618 struct device *dev = &cxlmd->dev; in cxl_memdev_unregister()
620 cdev_device_del(&cxlmd->cdev, dev); in cxl_memdev_unregister()
627 struct cxl_memdev *cxlmd; in detach_memdev() local
629 cxlmd = container_of(work, typeof(*cxlmd), detach_work); in detach_memdev()
630 device_release_driver(&cxlmd->dev); in detach_memdev()
631 put_device(&cxlmd->dev); in detach_memdev()
639 struct cxl_memdev *cxlmd; in cxl_memdev_alloc() local
644 cxlmd = kzalloc(sizeof(*cxlmd), GFP_KERNEL); in cxl_memdev_alloc()
645 if (!cxlmd) in cxl_memdev_alloc()
651 cxlmd->id = rc; in cxl_memdev_alloc()
652 cxlmd->depth = -1; in cxl_memdev_alloc()
654 dev = &cxlmd->dev; in cxl_memdev_alloc()
659 dev->devt = MKDEV(cxl_mem_major, cxlmd->id); in cxl_memdev_alloc()
662 INIT_WORK(&cxlmd->detach_work, detach_memdev); in cxl_memdev_alloc()
664 cdev = &cxlmd->cdev; in cxl_memdev_alloc()
666 return cxlmd; in cxl_memdev_alloc()
669 kfree(cxlmd); in cxl_memdev_alloc()
673 static long __cxl_memdev_ioctl(struct cxl_memdev *cxlmd, unsigned int cmd, in __cxl_memdev_ioctl() argument
676 struct cxl_memdev_state *mds = to_cxl_memdev_state(cxlmd->cxlds); in __cxl_memdev_ioctl()
692 struct cxl_memdev *cxlmd = file->private_data; in cxl_memdev_ioctl() local
696 cxlds = cxlmd->cxlds; in cxl_memdev_ioctl()
698 return __cxl_memdev_ioctl(cxlmd, cmd, arg); in cxl_memdev_ioctl()
705 struct cxl_memdev *cxlmd = in cxl_memdev_open() local
706 container_of(inode->i_cdev, typeof(*cxlmd), cdev); in cxl_memdev_open()
708 get_device(&cxlmd->dev); in cxl_memdev_open()
709 file->private_data = cxlmd; in cxl_memdev_open()
716 struct cxl_memdev *cxlmd = in cxl_memdev_release_file() local
717 container_of(inode->i_cdev, typeof(*cxlmd), cdev); in cxl_memdev_release_file()
719 put_device(&cxlmd->dev); in cxl_memdev_release_file()
839 struct cxl_memdev *cxlmd = cxlds->cxlmd; in cxl_fw_do_cancel() local
844 dev_err(&cxlmd->dev, "Error aborting FW transfer: %d\n", rc); in cxl_fw_do_cancel()
881 struct cxl_memdev *cxlmd = cxlds->cxlmd; in cxl_fw_write() local
892 dev_err(&cxlmd->dev, in cxl_fw_write()
958 dev_dbg(&cxlmd->dev, "Activating firmware slot: %d\n", in cxl_fw_write()
962 dev_err(&cxlmd->dev, "Error activating firmware: %d\n", in cxl_fw_write()
1016 struct device *dev = &cxlds->cxlmd->dev; in devm_cxl_setup_fw_upload()
1042 struct cxl_memdev *cxlmd; in devm_cxl_add_memdev() local
1047 cxlmd = cxl_memdev_alloc(cxlds, &cxl_memdev_fops); in devm_cxl_add_memdev()
1048 if (IS_ERR(cxlmd)) in devm_cxl_add_memdev()
1049 return cxlmd; in devm_cxl_add_memdev()
1051 dev = &cxlmd->dev; in devm_cxl_add_memdev()
1052 rc = dev_set_name(dev, "mem%d", cxlmd->id); in devm_cxl_add_memdev()
1060 cxlmd->cxlds = cxlds; in devm_cxl_add_memdev()
1061 cxlds->cxlmd = cxlmd; in devm_cxl_add_memdev()
1063 cdev = &cxlmd->cdev; in devm_cxl_add_memdev()
1068 rc = devm_add_action_or_reset(host, cxl_memdev_unregister, cxlmd); in devm_cxl_add_memdev()
1071 return cxlmd; in devm_cxl_add_memdev()
1104 struct cxl_memdev *cxlmd) in devm_cxl_sanitize_setup_notifier() argument
1106 struct cxl_dev_state *cxlds = cxlmd->cxlds; in devm_cxl_sanitize_setup_notifier()
1117 sec = sysfs_get_dirent(cxlmd->dev.kobj.sd, "security"); in devm_cxl_sanitize_setup_notifier()