/linux-4.4.14/drivers/nvdimm/ |
H A D | namespace_devs.c | 267 struct nd_mapping *nd_mapping = &nd_region->mapping[0]; nd_namespace_blk_size() local 268 struct nvdimm_drvdata *ndd = to_ndd(nd_mapping); nd_namespace_blk_size() 285 struct nd_mapping *nd_mapping = &nd_region->mapping[0]; __nd_namespace_blk_validate() local 286 struct nvdimm_drvdata *ndd = to_ndd(nd_mapping); __nd_namespace_blk_validate() 417 struct nd_mapping *nd_mapping, struct nd_label_id *label_id, scan_free() 421 struct nvdimm_drvdata *ndd = to_ndd(nd_mapping); scan_free() 480 struct nd_mapping *nd_mapping = &nd_region->mapping[i]; shrink_dpa_allocation() local 483 rc = scan_free(nd_region, nd_mapping, label_id, n); shrink_dpa_allocation() 492 struct nd_region *nd_region, struct nd_mapping *nd_mapping, init_dpa_allocation() 496 struct nvdimm_drvdata *ndd = to_ndd(nd_mapping); init_dpa_allocation() 503 first_dpa = nd_mapping->start + nd_mapping->size - n; init_dpa_allocation() 505 first_dpa = nd_mapping->start; init_dpa_allocation() 536 struct nd_mapping *nd_mapping, struct nd_label_id *label_id, scan_allocate() 539 resource_size_t mapping_end = nd_mapping->start + nd_mapping->size - 1; scan_allocate() 542 struct nvdimm_drvdata *ndd = to_ndd(nd_mapping); scan_allocate() 556 /* ignore resources outside this nd_mapping */ for_each_dpa_resource() 559 if (res->end < nd_mapping->start) for_each_dpa_resource() 563 if (!first++ && res->start > nd_mapping->start) { for_each_dpa_resource() 564 free_start = nd_mapping->start; for_each_dpa_resource() 636 else if (!is_reserve && free_start != nd_mapping->start) for_each_dpa_resource() 680 return init_dpa_allocation(label_id, nd_region, nd_mapping, n); 685 struct nd_mapping *nd_mapping, struct nd_label_id *label_id) merge_dpa() 687 struct nvdimm_drvdata *ndd = to_ndd(nd_mapping); merge_dpa() 732 struct nd_mapping *nd_mapping = &nd_region->mapping[i]; __reserve_free_pmem() local 735 if (nd_mapping->nvdimm != nvdimm) __reserve_free_pmem() 738 n = nd_pmem_available_dpa(nd_region, nd_mapping, &rem); __reserve_free_pmem() 741 rem = scan_allocate(nd_region, nd_mapping, &label_id, n); __reserve_free_pmem() 753 struct nd_mapping *nd_mapping) release_free_pmem() 755 struct nvdimm_drvdata *ndd = to_ndd(nd_mapping); release_free_pmem() 764 struct nd_mapping *nd_mapping) reserve_free_pmem() 766 struct nvdimm *nvdimm = nd_mapping->nvdimm; reserve_free_pmem() 772 release_free_pmem(nvdimm_bus, nd_mapping); reserve_free_pmem() 797 struct nd_mapping *nd_mapping = &nd_region->mapping[i]; grow_dpa_allocation() local 809 rc = reserve_free_pmem(nvdimm_bus, nd_mapping); grow_dpa_allocation() 813 rem = scan_allocate(nd_region, nd_mapping, grow_dpa_allocation() 816 release_free_pmem(nvdimm_bus, nd_mapping); grow_dpa_allocation() 830 rc = merge_dpa(nd_region, nd_mapping, label_id); grow_dpa_allocation() 851 struct nd_mapping *nd_mapping; __size_store() local 888 nd_mapping = &nd_region->mapping[i]; __size_store() 889 ndd = to_ndd(nd_mapping); __size_store() 1073 struct nd_mapping *nd_mapping = &nd_region->mapping[i]; namespace_update_uuid() local 1082 if (nd_mapping->labels) namespace_update_uuid() 1089 struct nd_mapping *nd_mapping = &nd_region->mapping[i]; namespace_update_uuid() local 1090 struct nvdimm_drvdata *ndd = to_ndd(nd_mapping); namespace_update_uuid() 1238 struct nd_mapping *nd_mapping = &nd_region->mapping[i]; dpa_extents_show() local 1239 struct nvdimm_drvdata *ndd = to_ndd(nd_mapping); dpa_extents_show() 1451 struct nd_mapping *nd_mapping = &nd_region->mapping[i]; has_uuid_at_pos() local 1456 for_each_label(l, nd_label, nd_mapping->labels) { has_uuid_at_pos() 1468 dev_dbg(to_ndd(nd_mapping)->dev, has_uuid_at_pos() 1496 struct nd_mapping *nd_mapping = &nd_region->mapping[i]; select_pmem_id() local 1501 for_each_label(l, nd_label, nd_mapping->labels) select_pmem_id() 1515 hw_start = nd_mapping->start; select_pmem_id() 1516 hw_end = hw_start + nd_mapping->size; select_pmem_id() 1524 nd_mapping->labels[0] = select; select_pmem_id() 1525 nd_mapping->labels[1] = NULL; select_pmem_id() 1597 struct nd_mapping *nd_mapping = &nd_region->mapping[i]; find_pmem_label_set() local 1598 struct nd_namespace_label *label0 = nd_mapping->labels[0]; find_pmem_label_set() 1657 struct nd_mapping *nd_mapping = &nd_region->mapping[i]; create_namespace_pmem() local 1659 kfree(nd_mapping->labels); create_namespace_pmem() 1660 nd_mapping->labels = NULL; create_namespace_pmem() 1759 struct nd_mapping *nd_mapping = &nd_region->mapping[0]; create_namespace_blk() local 1770 ndd = to_ndd(nd_mapping); create_namespace_blk() 1771 for_each_label(l, nd_label, nd_mapping->labels) { create_namespace_blk() 1835 struct nd_mapping *nd_mapping = &nd_region->mapping[i]; create_namespace_blk() local 1837 kfree(nd_mapping->labels); create_namespace_blk() 1838 nd_mapping->labels = NULL; create_namespace_blk() 1869 struct nd_mapping *nd_mapping = &nd_region->mapping[i]; init_active_labels() local 1870 struct nvdimm_drvdata *ndd = to_ndd(nd_mapping); init_active_labels() 1871 struct nvdimm *nvdimm = nd_mapping->nvdimm; init_active_labels() 1882 dev_name(&nd_mapping->nvdimm->dev)); init_active_labels() 1885 nd_mapping->ndd = ndd; init_active_labels() 1893 nd_mapping->labels = kcalloc(count + 1, sizeof(void *), init_active_labels() 1895 if (!nd_mapping->labels) init_active_labels() 1901 nd_mapping->labels[j] = label; init_active_labels() 416 scan_free(struct nd_region *nd_region, struct nd_mapping *nd_mapping, struct nd_label_id *label_id, resource_size_t n) scan_free() argument 491 init_dpa_allocation(struct nd_label_id *label_id, struct nd_region *nd_region, struct nd_mapping *nd_mapping, resource_size_t n) init_dpa_allocation() argument 535 scan_allocate(struct nd_region *nd_region, struct nd_mapping *nd_mapping, struct nd_label_id *label_id, resource_size_t n) scan_allocate() argument 684 merge_dpa(struct nd_region *nd_region, struct nd_mapping *nd_mapping, struct nd_label_id *label_id) merge_dpa() argument 752 release_free_pmem(struct nvdimm_bus *nvdimm_bus, struct nd_mapping *nd_mapping) release_free_pmem() argument 763 reserve_free_pmem(struct nvdimm_bus *nvdimm_bus, struct nd_mapping *nd_mapping) reserve_free_pmem() argument
|
H A D | label.c | 494 struct nd_mapping *nd_mapping, struct nd_namespace_pmem *nspm, __pmem_label_update() 498 struct nvdimm_drvdata *ndd = to_ndd(nd_mapping); __pmem_label_update() 528 nd_label->dpa = __cpu_to_le64(nd_mapping->start); __pmem_label_update() 539 victim_label = nd_mapping->labels[0]; __pmem_label_update() 552 nd_mapping->labels[0] = nd_label; __pmem_label_update() 557 static void del_label(struct nd_mapping *nd_mapping, int l) del_label() argument 560 struct nvdimm_drvdata *ndd = to_ndd(nd_mapping); del_label() 564 nd_label = nd_mapping->labels[l]; del_label() 568 for (j = l; (next_label = nd_mapping->labels[j + 1]); j++) del_label() 569 nd_mapping->labels[j] = next_label; del_label() 570 nd_mapping->labels[j] = NULL; del_label() 607 struct nd_mapping *nd_mapping, struct nd_namespace_blk *nsblk, __blk_label_update() 611 struct nvdimm_drvdata *ndd = to_ndd(nd_mapping); __blk_label_update() 736 * entries in nd_mapping->labels 739 for_each_label(l, nd_label, nd_mapping->labels) { 745 del_label(nd_mapping, l); 767 nd_mapping->labels[l++] = nd_label; for_each_clear_bit_le() 769 nd_mapping->labels[l] = NULL; 789 static int init_labels(struct nd_mapping *nd_mapping, int num_labels) init_labels() argument 794 struct nvdimm_drvdata *ndd = to_ndd(nd_mapping); init_labels() 797 for_each_label(l, nd_label, nd_mapping->labels) init_labels() 807 labels = krealloc(nd_mapping->labels, size, GFP_KERNEL); init_labels() 810 nd_mapping->labels = labels; init_labels() 812 if (!nd_mapping->labels) init_labels() 816 nd_mapping->labels[i] = NULL; init_labels() 837 static int del_labels(struct nd_mapping *nd_mapping, u8 *uuid) del_labels() argument 839 struct nvdimm_drvdata *ndd = to_ndd(nd_mapping); del_labels() 852 || !nd_mapping->labels) del_labels() 855 for_each_label(l, nd_label, nd_mapping->labels) { del_labels() 862 del_label(nd_mapping, l); del_labels() 872 kfree(nd_mapping->labels); del_labels() 873 nd_mapping->labels = NULL; del_labels() 887 struct nd_mapping *nd_mapping = &nd_region->mapping[i]; nd_pmem_namespace_label_update() local 891 rc = del_labels(nd_mapping, nspm->uuid); nd_pmem_namespace_label_update() 897 rc = init_labels(nd_mapping, 1); nd_pmem_namespace_label_update() 901 rc = __pmem_label_update(nd_region, nd_mapping, nspm, i); nd_pmem_namespace_label_update() 912 struct nd_mapping *nd_mapping = &nd_region->mapping[0]; nd_blk_namespace_label_update() local 917 return del_labels(nd_mapping, nsblk->uuid); nd_blk_namespace_label_update() 919 for_each_dpa_resource(to_ndd(nd_mapping), res) nd_blk_namespace_label_update() 922 count = init_labels(nd_mapping, count); nd_blk_namespace_label_update() 926 return __blk_label_update(nd_region, nd_mapping, nsblk, count); nd_blk_namespace_label_update() 493 __pmem_label_update(struct nd_region *nd_region, struct nd_mapping *nd_mapping, struct nd_namespace_pmem *nspm, int pos) __pmem_label_update() argument 606 __blk_label_update(struct nd_region *nd_region, struct nd_mapping *nd_mapping, struct nd_namespace_blk *nsblk, int num_labels) __blk_label_update() argument
|
H A D | region_devs.c | 31 struct nd_mapping *nd_mapping = &nd_region->mapping[i]; nd_region_release() local 32 struct nvdimm *nvdimm = nd_mapping->nvdimm; nd_region_release() 119 struct nd_mapping *nd_mapping = &nd_region->mapping[i]; nd_region_to_nstype() local 120 struct nvdimm *nvdimm = nd_mapping->nvdimm; nd_region_to_nstype() 146 struct nd_mapping *nd_mapping = &nd_region->mapping[0]; size_show() local 148 size = nd_mapping->size; size_show() 199 struct nd_mapping *nd_mapping = &nd_region->mapping[i]; nd_region_available_dpa() local 200 struct nvdimm_drvdata *ndd = to_ndd(nd_mapping); nd_region_available_dpa() 208 nd_mapping, &overlap); nd_region_available_dpa() 214 available += nd_blk_available_dpa(nd_mapping); nd_region_available_dpa() 398 struct nd_mapping *nd_mapping = &nd_region->mapping[i]; nd_region_notify_driver_action() local 399 struct nvdimm_drvdata *ndd = nd_mapping->ndd; nd_region_notify_driver_action() 400 struct nvdimm *nvdimm = nd_mapping->nvdimm; nd_region_notify_driver_action() 402 kfree(nd_mapping->labels); nd_region_notify_driver_action() 403 nd_mapping->labels = NULL; nd_region_notify_driver_action() 405 nd_mapping->ndd = NULL; nd_region_notify_driver_action() 449 struct nd_mapping *nd_mapping; mappingN() local 454 nd_mapping = &nd_region->mapping[n]; mappingN() 455 nvdimm = nd_mapping->nvdimm; mappingN() 458 nd_mapping->start, nd_mapping->size); mappingN() 638 struct nd_mapping *nd_mapping = &ndr_desc->nd_mapping[i]; nd_region_create() local 639 struct nvdimm *nvdimm = nd_mapping->nvdimm; nd_region_create() 641 if ((nd_mapping->start | nd_mapping->size) % SZ_4K) { nd_region_create() 657 ndbr = kzalloc(sizeof(*ndbr) + sizeof(struct nd_mapping) nd_region_create() 669 + sizeof(struct nd_mapping) nd_region_create() 693 memcpy(nd_region->mapping, ndr_desc->nd_mapping, nd_region_create() 694 sizeof(struct nd_mapping) * ndr_desc->num_mappings); nd_region_create() 696 struct nd_mapping *nd_mapping = &ndr_desc->nd_mapping[i]; nd_region_create() local 697 struct nvdimm *nvdimm = nd_mapping->nvdimm; nd_region_create()
|
H A D | dimm_devs.c | 215 struct nd_mapping *nd_mapping = &nd_region->mapping[0]; nd_blk_region_to_dimm() local 217 return nd_mapping->nvdimm; nd_blk_region_to_dimm() 221 struct nvdimm_drvdata *to_ndd(struct nd_mapping *nd_mapping) to_ndd() argument 223 struct nvdimm *nvdimm = nd_mapping->nvdimm; to_ndd() 374 * @nd_mapping: container of dpa-resource-root + labels 378 resource_size_t nd_blk_available_dpa(struct nd_mapping *nd_mapping) nd_blk_available_dpa() argument 380 struct nvdimm_drvdata *ndd = to_ndd(nd_mapping); nd_blk_available_dpa() 387 map_end = nd_mapping->start + nd_mapping->size - 1; for_each_dpa_resource() 389 if (res->start >= nd_mapping->start && res->start < map_end) { for_each_dpa_resource() 393 } else if (res->end >= nd_mapping->start 395 busy += res->end - nd_mapping->start; 396 } else if (nd_mapping->start > res->start 397 && nd_mapping->start < res->end) { 399 busy += nd_mapping->size; 402 available = map_end - nd_mapping->start + 1; 410 * @nd_mapping: container of dpa-resource-root + labels 424 struct nd_mapping *nd_mapping, resource_size_t *overlap) nd_pmem_available_dpa() 427 struct nvdimm_drvdata *ndd = to_ndd(nd_mapping); nd_pmem_available_dpa() 434 map_start = nd_mapping->start; nd_pmem_available_dpa() 435 map_end = map_start + nd_mapping->size - 1; nd_pmem_available_dpa() 466 busy += nd_mapping->size; 423 nd_pmem_available_dpa(struct nd_region *nd_region, struct nd_mapping *nd_mapping, resource_size_t *overlap) nd_pmem_available_dpa() argument
|
H A D | nd-core.h | 69 struct nd_mapping; 71 struct nd_mapping *nd_mapping, resource_size_t *overlap); 72 resource_size_t nd_blk_available_dpa(struct nd_mapping *nd_mapping); 76 struct nd_mapping;
|
H A D | nd.h | 114 struct nd_mapping mapping[0]; 182 struct nvdimm_drvdata *to_ndd(struct nd_mapping *nd_mapping);
|
/linux-4.4.14/include/linux/ |
H A D | libnvdimm.h | 56 struct nd_mapping { struct 63 * get_ndd() + put_ndd(), all other nd_mapping to ndd 90 struct nd_mapping *nd_mapping; member in struct:nd_region_desc
|
/linux-4.4.14/drivers/acpi/ |
H A D | nfit.c | 1013 struct nd_mapping *nd_mapping = &ndr_desc->nd_mapping[i]; acpi_nfit_init_interleave_set() local 1015 struct nvdimm *nvdimm = nd_mapping->nvdimm; acpi_nfit_init_interleave_set() 1476 struct nd_mapping *nd_mapping, struct nd_region_desc *ndr_desc, acpi_nfit_init_mapping() 1492 nd_mapping->nvdimm = nvdimm; acpi_nfit_init_mapping() 1496 nd_mapping->start = memdev->address; acpi_nfit_init_mapping() 1497 nd_mapping->size = memdev->region_size; acpi_nfit_init_mapping() 1505 nd_mapping->size = nfit_mem->bdw->capacity; acpi_nfit_init_mapping() 1506 nd_mapping->start = nfit_mem->bdw->start_address; acpi_nfit_init_mapping() 1511 ndr_desc->nd_mapping = nd_mapping; acpi_nfit_init_mapping() 1528 static struct nd_mapping nd_mappings[ND_MAX_MAPPINGS]; acpi_nfit_register_region() 1563 struct nd_mapping *nd_mapping; acpi_nfit_register_region() local 1572 nd_mapping = &nd_mappings[count++]; acpi_nfit_register_region() 1573 rc = acpi_nfit_init_mapping(acpi_desc, nd_mapping, ndr_desc, acpi_nfit_register_region() 1579 ndr_desc->nd_mapping = nd_mappings; acpi_nfit_register_region() 1475 acpi_nfit_init_mapping(struct acpi_nfit_desc *acpi_desc, struct nd_mapping *nd_mapping, struct nd_region_desc *ndr_desc, struct acpi_nfit_memory_map *memdev, struct acpi_nfit_system_address *spa) acpi_nfit_init_mapping() argument
|