Symbol: dax_region
drivers/dax/bus.c
1033
static ssize_t dev_dax_resize(struct dax_region *dax_region,
drivers/dax/bus.c
1036
resource_size_t avail = dax_region_avail_size(dax_region), to_alloc;
drivers/dax/bus.c
1038
struct resource *region_res = &dax_region->res;
drivers/dax/bus.c
1066
return alloc_dev_dax_range(dev_dax, dax_region->res.start, to_alloc);
drivers/dax/bus.c
1073
if (res == first && res->start > dax_region->res.start) {
drivers/dax/bus.c
1074
alloc = min(res->start - dax_region->res.start, to_alloc);
drivers/dax/bus.c
1075
rc = alloc_dev_dax_range(dev_dax, dax_region->res.start, alloc);
drivers/dax/bus.c
1112
struct dax_region *dax_region = dev_dax->region;
drivers/dax/bus.c
1126
if (!dax_region->dev->driver) {
drivers/dax/bus.c
1134
rc = dev_dax_resize(dax_region, dev_dax, val);
drivers/dax/bus.c
1181
struct dax_region *dax_region = dev_dax->region;
drivers/dax/bus.c
1193
if (!dax_region->dev->driver) {
drivers/dax/bus.c
1243
struct dax_region *dax_region = dev_dax->region;
drivers/dax/bus.c
1257
if (!dax_region->dev->driver) {
drivers/dax/bus.c
1286
struct dax_region *dax_region = dev_dax->region;
drivers/dax/bus.c
1288
return dax_region->target_node;
drivers/dax/bus.c
1304
struct dax_region *dax_region = dev_dax->region;
drivers/dax/bus.c
1308
start = dax_region->res.start;
drivers/dax/bus.c
1380
struct dax_region *dax_region = dev_dax->region;
drivers/dax/bus.c
1386
if (a == &dev_attr_mapping.attr && is_static(dax_region))
drivers/dax/bus.c
1389
a == &dev_attr_size.attr) && is_static(dax_region))
drivers/dax/bus.c
1454
struct dax_region *dax_region = data->dax_region;
drivers/dax/bus.c
1455
struct device *parent = dax_region->dev;
drivers/dax/bus.c
1466
dev_dax->region = dax_region;
drivers/dax/bus.c
1467
if (is_static(dax_region)) {
drivers/dax/bus.c
1489
dev_set_name(dev, "dax%d.%d", dax_region->id, dev_dax->id);
drivers/dax/bus.c
1491
rc = alloc_dev_dax_range(dev_dax, dax_region->res.start, data->size);
drivers/dax/bus.c
1496
dev_WARN_ONCE(parent, !is_static(dax_region),
drivers/dax/bus.c
1524
dev_dax->target_node = dax_region->target_node;
drivers/dax/bus.c
1525
dev_dax->align = dax_region->align;
drivers/dax/bus.c
1543
rc = devm_add_action_or_reset(dax_region->dev, unregister_dev_dax, dev);
drivers/dax/bus.c
175
static bool is_static(struct dax_region *dax_region)
drivers/dax/bus.c
177
return (dax_region->res.flags & IORESOURCE_DAX_STATIC) != 0;
drivers/dax/bus.c
203
struct dax_region *dax_region = dev_dax->region;
drivers/dax/bus.c
218
if (rc || is_static(dax_region))
drivers/dax/bus.c
225
if (dax_region->seed == dev)
drivers/dax/bus.c
226
dax_region->seed = NULL;
drivers/dax/bus.c
266
struct dax_region *dax_region = dev_get_drvdata(dev);
drivers/dax/bus.c
268
return sysfs_emit(buf, "%d\n", dax_region->id);
drivers/dax/bus.c
275
struct dax_region *dax_region = dev_get_drvdata(dev);
drivers/dax/bus.c
278
(unsigned long long)resource_size(&dax_region->res));
drivers/dax/bus.c
286
struct dax_region *dax_region = dev_get_drvdata(dev);
drivers/dax/bus.c
288
return sysfs_emit(buf, "%u\n", dax_region->align);
drivers/dax/bus.c
293
#define for_each_dax_region_resource(dax_region, res) \
drivers/dax/bus.c
294
for (res = (dax_region)->res.child; res; res = res->sibling)
drivers/dax/bus.c
296
static unsigned long long dax_region_avail_size(struct dax_region *dax_region)
drivers/dax/bus.c
298
resource_size_t size = resource_size(&dax_region->res);
drivers/dax/bus.c
303
for_each_dax_region_resource(dax_region, res)
drivers/dax/bus.c
311
struct dax_region *dax_region = dev_get_drvdata(dev);
drivers/dax/bus.c
318
size = dax_region_avail_size(dax_region);
drivers/dax/bus.c
328
struct dax_region *dax_region = dev_get_drvdata(dev);
drivers/dax/bus.c
332
if (is_static(dax_region))
drivers/dax/bus.c
338
seed = dax_region->seed;
drivers/dax/bus.c
349
struct dax_region *dax_region = dev_get_drvdata(dev);
drivers/dax/bus.c
353
if (is_static(dax_region))
drivers/dax/bus.c
359
youngest = dax_region->youngest;
drivers/dax/bus.c
371
struct dax_region *dax_region = dev_get_drvdata(dev);
drivers/dax/bus.c
376
if (is_static(dax_region))
drivers/dax/bus.c
388
avail = dax_region_avail_size(dax_region);
drivers/dax/bus.c
393
.dax_region = dax_region,
drivers/dax/bus.c
410
if (!dax_region->seed)
drivers/dax/bus.c
411
dax_region->seed = &dev_dax->dev;
drivers/dax/bus.c
412
dax_region->youngest = &dev_dax->dev;
drivers/dax/bus.c
444
struct dax_region *dax_region = dev_dax->region;
drivers/dax/bus.c
451
__release_region(&dax_region->res, range->start, range_len(range));
drivers/dax/bus.c
480
struct dax_region *dax_region;
drivers/dax/bus.c
482
dax_region = container_of(kref, struct dax_region, kref);
drivers/dax/bus.c
483
kfree(dax_region);
drivers/dax/bus.c
486
static void dax_region_put(struct dax_region *dax_region)
drivers/dax/bus.c
488
kref_put(&dax_region->kref, dax_region_free);
drivers/dax/bus.c
494
struct dax_region *dax_region;
drivers/dax/bus.c
501
dax_region = dev_dax->region;
drivers/dax/bus.c
502
ida_free(&dax_region->ida, dev_dax->id);
drivers/dax/bus.c
503
dax_region_put(dax_region);
drivers/dax/bus.c
522
struct dax_region *dax_region = dev_dax->region;
drivers/dax/bus.c
525
id = ida_alloc(&dax_region->ida, GFP_KERNEL);
drivers/dax/bus.c
528
kref_get(&dax_region->kref);
drivers/dax/bus.c
537
struct dax_region *dax_region = dev_get_drvdata(dev);
drivers/dax/bus.c
543
if (is_static(dax_region))
drivers/dax/bus.c
546
victim = device_find_child_by_name(dax_region->dev, buf);
drivers/dax/bus.c
566
if (dax_region->seed == victim)
drivers/dax/bus.c
567
dax_region->seed = NULL;
drivers/dax/bus.c
568
if (dax_region->youngest == victim)
drivers/dax/bus.c
569
dax_region->youngest = NULL;
drivers/dax/bus.c
590
struct dax_region *dax_region = dev_get_drvdata(dev);
drivers/dax/bus.c
592
if (is_static(dax_region))
drivers/dax/bus.c
625
struct dax_region *dax_region = region;
drivers/dax/bus.c
627
sysfs_remove_groups(&dax_region->dev->kobj,
drivers/dax/bus.c
629
release_resource(&dax_region->res);
drivers/dax/bus.c
630
dax_region_put(dax_region);
drivers/dax/bus.c
633
struct dax_region *alloc_dax_region(struct device *parent, int region_id,
drivers/dax/bus.c
637
struct dax_region *dax_region;
drivers/dax/bus.c
654
dax_region = kzalloc_obj(*dax_region);
drivers/dax/bus.c
655
if (!dax_region)
drivers/dax/bus.c
658
dev_set_drvdata(parent, dax_region);
drivers/dax/bus.c
659
kref_init(&dax_region->kref);
drivers/dax/bus.c
660
dax_region->id = region_id;
drivers/dax/bus.c
661
dax_region->align = align;
drivers/dax/bus.c
662
dax_region->dev = parent;
drivers/dax/bus.c
663
dax_region->target_node = target_node;
drivers/dax/bus.c
664
ida_init(&dax_region->ida);
drivers/dax/bus.c
665
dax_region->res = (struct resource) {
drivers/dax/bus.c
671
rc = request_resource(&dax_regions, &dax_region->res);
drivers/dax/bus.c
674
&dax_region->res);
drivers/dax/bus.c
681
if (devm_add_action_or_reset(parent, dax_region_unregister, dax_region))
drivers/dax/bus.c
683
return dax_region;
drivers/dax/bus.c
686
release_resource(&dax_region->res);
drivers/dax/bus.c
688
dax_region_put(dax_region);
drivers/dax/bus.c
811
struct dax_region *dax_region = dev_dax->region;
drivers/dax/bus.c
818
if (dev_WARN_ONCE(&dev_dax->dev, !dax_region->dev->driver,
drivers/dax/bus.c
844
rc = devm_add_action_or_reset(dax_region->dev, unregister_dax_mapping,
drivers/dax/bus.c
854
struct dax_region *dax_region = dev_dax->region;
drivers/dax/bus.c
855
struct resource *res = &dax_region->res;
drivers/dax/bus.c
970
struct dax_region *dax_region = dev_dax->region;
drivers/dax/bus.c
982
devm_release_action(dax_region->dev,
drivers/dax/bus.c
991
for_each_dax_region_resource(dax_region, res)
drivers/dax/bus.h
13
struct dax_region;
drivers/dax/bus.h
19
struct dax_region *alloc_dax_region(struct device *parent, int region_id,
drivers/dax/bus.h
24
struct dax_region *dax_region;
drivers/dax/cxl.c
14
struct dax_region *dax_region;
drivers/dax/cxl.c
20
dax_region = alloc_dax_region(dev, cxlr->id, &cxlr_dax->hpa_range, nid,
drivers/dax/cxl.c
22
if (!dax_region)
drivers/dax/cxl.c
26
.dax_region = dax_region,
drivers/dax/dax-private.h
86
struct dax_region *region;
drivers/dax/hmem/hmem.c
16
struct dax_region *dax_region;
drivers/dax/hmem/hmem.c
30
dax_region = alloc_dax_region(dev, pdev->id, &mri->range,
drivers/dax/hmem/hmem.c
32
if (!dax_region)
drivers/dax/hmem/hmem.c
36
.dax_region = dax_region,
drivers/dax/pmem.c
17
struct dax_region *dax_region;
drivers/dax/pmem.c
54
dax_region = alloc_dax_region(dev, region_id, &range,
drivers/dax/pmem.c
57
if (!dax_region)
drivers/dax/pmem.c
61
.dax_region = dax_region,