nd_btt 29 drivers/nvdimm/btt.c return &arena->nd_btt->dev; nd_btt 32 drivers/nvdimm/btt.c static u64 adjust_initial_offset(struct nd_btt *nd_btt, u64 offset) nd_btt 34 drivers/nvdimm/btt.c return offset + nd_btt->initial_offset; nd_btt 40 drivers/nvdimm/btt.c struct nd_btt *nd_btt = arena->nd_btt; nd_btt 41 drivers/nvdimm/btt.c struct nd_namespace_common *ndns = nd_btt->ndns; nd_btt 44 drivers/nvdimm/btt.c offset = adjust_initial_offset(nd_btt, offset); nd_btt 51 drivers/nvdimm/btt.c struct nd_btt *nd_btt = arena->nd_btt; nd_btt 52 drivers/nvdimm/btt.c struct nd_namespace_common *ndns = nd_btt->ndns; nd_btt 55 drivers/nvdimm/btt.c offset = adjust_initial_offset(nd_btt, offset); nd_btt 260 drivers/nvdimm/btt.c btt->debugfs_dir = debugfs_create_dir(dev_name(&btt->nd_btt->dev), nd_btt 755 drivers/nvdimm/btt.c arena->nd_btt = btt->nd_btt; nd_btt 768 drivers/nvdimm/btt.c arena->version_major = btt->nd_btt->version_major; nd_btt 769 drivers/nvdimm/btt.c arena->version_minor = btt->nd_btt->version_minor; nd_btt 873 drivers/nvdimm/btt.c if (!nd_btt_arena_is_valid(btt->nd_btt, super)) { nd_btt 974 drivers/nvdimm/btt.c struct nd_btt *nd_btt = arena->nd_btt; nd_btt 975 drivers/nvdimm/btt.c const u8 *parent_uuid = nd_dev_to_uuid(&nd_btt->ndns->dev); nd_btt 990 drivers/nvdimm/btt.c memcpy(super->uuid, nd_btt->uuid, 16); nd_btt 1303 drivers/nvdimm/btt.c u64 nsoff = adjust_initial_offset(arena->nd_btt, nd_btt 1461 drivers/nvdimm/btt.c dev_err_ratelimited(&btt->nd_btt->dev, nd_btt 1470 drivers/nvdimm/btt.c dev_err(&btt->nd_btt->dev, nd_btt 1520 drivers/nvdimm/btt.c struct nd_btt *nd_btt = btt->nd_btt; nd_btt 1521 drivers/nvdimm/btt.c struct nd_namespace_common *ndns = nd_btt->ndns; nd_btt 1560 drivers/nvdimm/btt.c device_add_disk(&btt->nd_btt->dev, btt->btt_disk, NULL); nd_btt 1561 drivers/nvdimm/btt.c btt->nd_btt->size = btt->nlba * (u64)btt->sector_size; nd_btt 1591 drivers/nvdimm/btt.c static struct btt *btt_init(struct nd_btt *nd_btt, unsigned long long rawsize, nd_btt 1597 drivers/nvdimm/btt.c struct device *dev = &nd_btt->dev; nd_btt 1603 drivers/nvdimm/btt.c btt->nd_btt = nd_btt; nd_btt 1610 drivers/nvdimm/btt.c nsio = to_nd_namespace_io(&nd_btt->ndns->dev); nd_btt 1673 drivers/nvdimm/btt.c struct nd_btt *nd_btt = to_nd_btt(ndns->claim); nd_btt 1679 drivers/nvdimm/btt.c if (!nd_btt->uuid || !nd_btt->ndns || !nd_btt->lbasize) { nd_btt 1680 drivers/nvdimm/btt.c dev_dbg(&nd_btt->dev, "incomplete btt configuration\n"); nd_btt 1684 drivers/nvdimm/btt.c btt_sb = devm_kzalloc(&nd_btt->dev, sizeof(*btt_sb), GFP_KERNEL); nd_btt 1694 drivers/nvdimm/btt.c nd_btt_version(nd_btt, ndns, btt_sb); nd_btt 1696 drivers/nvdimm/btt.c rawsize = nvdimm_namespace_capacity(ndns) - nd_btt->initial_offset; nd_btt 1698 drivers/nvdimm/btt.c dev_dbg(&nd_btt->dev, "%s must be at least %ld bytes\n", nd_btt 1700 drivers/nvdimm/btt.c ARENA_MIN_SIZE + nd_btt->initial_offset); nd_btt 1703 drivers/nvdimm/btt.c nd_region = to_nd_region(nd_btt->dev.parent); nd_btt 1704 drivers/nvdimm/btt.c btt = btt_init(nd_btt, rawsize, nd_btt->lbasize, nd_btt->uuid, nd_btt 1708 drivers/nvdimm/btt.c nd_btt->btt = btt; nd_btt 1714 drivers/nvdimm/btt.c int nvdimm_namespace_detach_btt(struct nd_btt *nd_btt) nd_btt 1716 drivers/nvdimm/btt.c struct btt *btt = nd_btt->btt; nd_btt 1719 drivers/nvdimm/btt.c nd_btt->btt = NULL; nd_btt 191 drivers/nvdimm/btt.h struct nd_btt *nd_btt; nd_btt 224 drivers/nvdimm/btt.h struct nd_btt *nd_btt; nd_btt 236 drivers/nvdimm/btt.h bool nd_btt_arena_is_valid(struct nd_btt *nd_btt, struct btt_sb *super); nd_btt 237 drivers/nvdimm/btt.h int nd_btt_version(struct nd_btt *nd_btt, struct nd_namespace_common *ndns, nd_btt 19 drivers/nvdimm/btt_devs.c struct nd_btt *nd_btt = to_nd_btt(dev); nd_btt 22 drivers/nvdimm/btt_devs.c nd_detach_ndns(&nd_btt->dev, &nd_btt->ndns); nd_btt 23 drivers/nvdimm/btt_devs.c ida_simple_remove(&nd_region->btt_ida, nd_btt->id); nd_btt 24 drivers/nvdimm/btt_devs.c kfree(nd_btt->uuid); nd_btt 25 drivers/nvdimm/btt_devs.c kfree(nd_btt); nd_btt 39 drivers/nvdimm/btt_devs.c struct nd_btt *to_nd_btt(struct device *dev) nd_btt 41 drivers/nvdimm/btt_devs.c struct nd_btt *nd_btt = container_of(dev, struct nd_btt, dev); nd_btt 44 drivers/nvdimm/btt_devs.c return nd_btt; nd_btt 54 drivers/nvdimm/btt_devs.c struct nd_btt *nd_btt = to_nd_btt(dev); nd_btt 56 drivers/nvdimm/btt_devs.c return nd_size_select_show(nd_btt->lbasize, btt_lbasize_supported, buf); nd_btt 62 drivers/nvdimm/btt_devs.c struct nd_btt *nd_btt = to_nd_btt(dev); nd_btt 67 drivers/nvdimm/btt_devs.c rc = nd_size_select_store(dev, buf, &nd_btt->lbasize, nd_btt 81 drivers/nvdimm/btt_devs.c struct nd_btt *nd_btt = to_nd_btt(dev); nd_btt 83 drivers/nvdimm/btt_devs.c if (nd_btt->uuid) nd_btt 84 drivers/nvdimm/btt_devs.c return sprintf(buf, "%pUb\n", nd_btt->uuid); nd_btt 91 drivers/nvdimm/btt_devs.c struct nd_btt *nd_btt = to_nd_btt(dev); nd_btt 95 drivers/nvdimm/btt_devs.c rc = nd_uuid_store(dev, &nd_btt->uuid, buf, len); nd_btt 107 drivers/nvdimm/btt_devs.c struct nd_btt *nd_btt = to_nd_btt(dev); nd_btt 111 drivers/nvdimm/btt_devs.c rc = sprintf(buf, "%s\n", nd_btt->ndns nd_btt 112 drivers/nvdimm/btt_devs.c ? dev_name(&nd_btt->ndns->dev) : ""); nd_btt 120 drivers/nvdimm/btt_devs.c struct nd_btt *nd_btt = to_nd_btt(dev); nd_btt 125 drivers/nvdimm/btt_devs.c rc = nd_namespace_store(dev, &nd_btt->ndns, buf, len); nd_btt 138 drivers/nvdimm/btt_devs.c struct nd_btt *nd_btt = to_nd_btt(dev); nd_btt 143 drivers/nvdimm/btt_devs.c rc = sprintf(buf, "%llu\n", nd_btt->size); nd_btt 185 drivers/nvdimm/btt_devs.c struct nd_btt *nd_btt; nd_btt 188 drivers/nvdimm/btt_devs.c nd_btt = kzalloc(sizeof(*nd_btt), GFP_KERNEL); nd_btt 189 drivers/nvdimm/btt_devs.c if (!nd_btt) nd_btt 192 drivers/nvdimm/btt_devs.c nd_btt->id = ida_simple_get(&nd_region->btt_ida, 0, 0, GFP_KERNEL); nd_btt 193 drivers/nvdimm/btt_devs.c if (nd_btt->id < 0) nd_btt 196 drivers/nvdimm/btt_devs.c nd_btt->lbasize = lbasize; nd_btt 202 drivers/nvdimm/btt_devs.c nd_btt->uuid = uuid; nd_btt 203 drivers/nvdimm/btt_devs.c dev = &nd_btt->dev; nd_btt 204 drivers/nvdimm/btt_devs.c dev_set_name(dev, "btt%d.%d", nd_region->id, nd_btt->id); nd_btt 208 drivers/nvdimm/btt_devs.c device_initialize(&nd_btt->dev); nd_btt 209 drivers/nvdimm/btt_devs.c if (ndns && !__nd_attach_ndns(&nd_btt->dev, ndns, &nd_btt->ndns)) { nd_btt 218 drivers/nvdimm/btt_devs.c ida_simple_remove(&nd_region->btt_ida, nd_btt->id); nd_btt 221 drivers/nvdimm/btt_devs.c kfree(nd_btt); nd_btt 245 drivers/nvdimm/btt_devs.c bool nd_btt_arena_is_valid(struct nd_btt *nd_btt, struct btt_sb *super) nd_btt 247 drivers/nvdimm/btt_devs.c const u8 *parent_uuid = nd_dev_to_uuid(&nd_btt->ndns->dev); nd_btt 265 drivers/nvdimm/btt_devs.c dev_info(&nd_btt->dev, "Found arena with an error flag\n"); nd_btt 271 drivers/nvdimm/btt_devs.c int nd_btt_version(struct nd_btt *nd_btt, struct nd_namespace_common *ndns, nd_btt 276 drivers/nvdimm/btt_devs.c nd_btt->initial_offset = 0; nd_btt 277 drivers/nvdimm/btt_devs.c nd_btt->version_major = 2; nd_btt 278 drivers/nvdimm/btt_devs.c nd_btt->version_minor = 0; nd_btt 281 drivers/nvdimm/btt_devs.c if (!nd_btt_arena_is_valid(nd_btt, btt_sb)) nd_btt 291 drivers/nvdimm/btt_devs.c nd_btt->initial_offset = SZ_4K; nd_btt 292 drivers/nvdimm/btt_devs.c nd_btt->version_major = 1; nd_btt 293 drivers/nvdimm/btt_devs.c nd_btt->version_minor = 1; nd_btt 296 drivers/nvdimm/btt_devs.c if (!nd_btt_arena_is_valid(nd_btt, btt_sb)) nd_btt 306 drivers/nvdimm/btt_devs.c static int __nd_btt_probe(struct nd_btt *nd_btt, nd_btt 311 drivers/nvdimm/btt_devs.c if (!btt_sb || !ndns || !nd_btt) nd_btt 317 drivers/nvdimm/btt_devs.c rc = nd_btt_version(nd_btt, ndns, btt_sb); nd_btt 321 drivers/nvdimm/btt_devs.c nd_btt->lbasize = le32_to_cpu(btt_sb->external_lbasize); nd_btt 322 drivers/nvdimm/btt_devs.c nd_btt->uuid = kmemdup(btt_sb->uuid, 16, GFP_KERNEL); nd_btt 323 drivers/nvdimm/btt_devs.c if (!nd_btt->uuid) nd_btt 326 drivers/nvdimm/btt_devs.c __nd_device_register(&nd_btt->dev); nd_btt 359 drivers/nvdimm/btt_devs.c struct nd_btt *nd_btt = to_nd_btt(btt_dev); nd_btt 361 drivers/nvdimm/btt_devs.c nd_detach_ndns(btt_dev, &nd_btt->ndns); nd_btt 907 drivers/nvdimm/bus.c struct nd_btt *nd_btt = is_nd_btt(dev) ? to_nd_btt(dev) : NULL; nd_btt 920 drivers/nvdimm/bus.c if (nd_btt || nd_pfn || nd_dax) { nd_btt 921 drivers/nvdimm/bus.c if (nd_btt) nd_btt 922 drivers/nvdimm/bus.c ndns = nd_btt->ndns; nd_btt 120 drivers/nvdimm/claim.c struct nd_btt *nd_btt = to_nd_btt(dev); nd_btt 122 drivers/nvdimm/claim.c nd_btt->lbasize = 0; nd_btt 123 drivers/nvdimm/claim.c kfree(nd_btt->uuid); nd_btt 124 drivers/nvdimm/claim.c nd_btt->uuid = NULL; nd_btt 90 drivers/nvdimm/namespace_devs.c struct nd_btt *nd_btt = to_nd_btt(dev); nd_btt 92 drivers/nvdimm/namespace_devs.c uuid2 = nd_btt->uuid; nd_btt 1685 drivers/nvdimm/namespace_devs.c struct nd_btt *nd_btt = is_nd_btt(dev) ? to_nd_btt(dev) : NULL; nd_btt 1691 drivers/nvdimm/namespace_devs.c if (nd_btt || nd_pfn || nd_dax) { nd_btt 1692 drivers/nvdimm/namespace_devs.c if (nd_btt) nd_btt 1693 drivers/nvdimm/namespace_devs.c ndns = nd_btt->ndns; nd_btt 259 drivers/nvdimm/nd.h struct nd_btt *to_nd_btt(struct device *dev); nd_btt 367 drivers/nvdimm/nd.h int nvdimm_namespace_detach_btt(struct nd_btt *nd_btt); nd_btt 576 drivers/nvdimm/pmem.c struct nd_btt *nd_btt = to_nd_btt(dev); nd_btt 578 drivers/nvdimm/pmem.c ndns = nd_btt->ndns; nd_btt 727 drivers/nvdimm/region_devs.c struct nd_btt *nd_btt = to_nd_btt(dev); nd_btt 731 drivers/nvdimm/region_devs.c if (nd_region->ns_seed == &nd_btt->ndns->dev)