Symbol: dev_dax
drivers/dax/bus.c
1001
return adjust_dev_dax_range(dev_dax, adjust, range_len(range)
drivers/dax/bus.c
1011
static bool adjust_ok(struct dev_dax *dev_dax, struct resource *res)
drivers/dax/bus.c
1016
if (dev_dax->nr_range == 0)
drivers/dax/bus.c
1018
if (strcmp(res->name, dev_name(&dev_dax->dev)) != 0)
drivers/dax/bus.c
1020
last = &dev_dax->ranges[dev_dax->nr_range - 1];
drivers/dax/bus.c
1023
for (i = 0; i < dev_dax->nr_range - 1; i++) {
drivers/dax/bus.c
1024
struct dev_dax_range *dax_range = &dev_dax->ranges[i];
drivers/dax/bus.c
1034
struct dev_dax *dev_dax, resource_size_t size)
drivers/dax/bus.c
1037
resource_size_t dev_size = dev_dax_size(dev_dax);
drivers/dax/bus.c
1039
struct device *dev = &dev_dax->dev;
drivers/dax/bus.c
1051
return dev_dax_shrink(dev_dax, size);
drivers/dax/bus.c
1054
if (dev_WARN_ONCE(dev, !alloc_is_aligned(dev_dax, to_alloc),
drivers/dax/bus.c
1066
return alloc_dev_dax_range(dev_dax, 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
1091
if (adjust_ok(dev_dax, res)) {
drivers/dax/bus.c
1092
rc = adjust_dev_dax_range(dev_dax, res, resource_size(res) + alloc);
drivers/dax/bus.c
1095
rc = alloc_dev_dax_range(dev_dax, res->end + 1, alloc);
drivers/dax/bus.c
1111
struct dev_dax *dev_dax = to_dev_dax(dev);
drivers/dax/bus.c
1112
struct dax_region *dax_region = dev_dax->region;
drivers/dax/bus.c
1118
if (!alloc_is_aligned(dev_dax, val)) {
drivers/dax/bus.c
1134
rc = dev_dax_resize(dax_region, dev_dax, val);
drivers/dax/bus.c
1180
struct dev_dax *dev_dax = to_dev_dax(dev);
drivers/dax/bus.c
1181
struct dax_region *dax_region = dev_dax->region;
drivers/dax/bus.c
1204
if (alloc_is_aligned(dev_dax, to_alloc))
drivers/dax/bus.c
1205
rc = alloc_dev_dax_range(dev_dax, r.start, to_alloc);
drivers/dax/bus.c
1216
struct dev_dax *dev_dax = to_dev_dax(dev);
drivers/dax/bus.c
1218
return sysfs_emit(buf, "%d\n", dev_dax->align);
drivers/dax/bus.c
1221
static ssize_t dev_dax_validate_align(struct dev_dax *dev_dax)
drivers/dax/bus.c
1223
struct device *dev = &dev_dax->dev;
drivers/dax/bus.c
1226
for (i = 0; i < dev_dax->nr_range; i++) {
drivers/dax/bus.c
1227
size_t len = range_len(&dev_dax->ranges[i].range);
drivers/dax/bus.c
1229
if (!alloc_is_aligned(dev_dax, len)) {
drivers/dax/bus.c
1231
__func__, dev_dax->align, i);
drivers/dax/bus.c
1242
struct dev_dax *dev_dax = to_dev_dax(dev);
drivers/dax/bus.c
1243
struct dax_region *dax_region = dev_dax->region;
drivers/dax/bus.c
1272
align_save = dev_dax->align;
drivers/dax/bus.c
1273
dev_dax->align = val;
drivers/dax/bus.c
1274
rc = dev_dax_validate_align(dev_dax);
drivers/dax/bus.c
1276
dev_dax->align = align_save;
drivers/dax/bus.c
1284
static int dev_dax_target_node(struct dev_dax *dev_dax)
drivers/dax/bus.c
1286
struct dax_region *dax_region = dev_dax->region;
drivers/dax/bus.c
1294
struct dev_dax *dev_dax = to_dev_dax(dev);
drivers/dax/bus.c
1296
return sysfs_emit(buf, "%d\n", dev_dax_target_node(dev_dax));
drivers/dax/bus.c
1303
struct dev_dax *dev_dax = to_dev_dax(dev);
drivers/dax/bus.c
1304
struct dax_region *dax_region = dev_dax->region;
drivers/dax/bus.c
1307
if (dev_dax->nr_range < 1)
drivers/dax/bus.c
1310
start = dev_dax->ranges[0].range.start;
drivers/dax/bus.c
1337
struct dev_dax *dev_dax = to_dev_dax(dev);
drivers/dax/bus.c
1339
return sysfs_emit(buf, "%d\n", dev_dax->memmap_on_memory);
drivers/dax/bus.c
1346
struct dev_dax *dev_dax = to_dev_dax(dev);
drivers/dax/bus.c
1363
if (dev_dax->memmap_on_memory != val && dev->driver &&
drivers/dax/bus.c
1369
dev_dax->memmap_on_memory = val;
drivers/dax/bus.c
1379
struct dev_dax *dev_dax = to_dev_dax(dev);
drivers/dax/bus.c
1380
struct dax_region *dax_region = dev_dax->region;
drivers/dax/bus.c
1382
if (a == &dev_attr_target_node.attr && dev_dax_target_node(dev_dax) < 0)
drivers/dax/bus.c
1418
struct dev_dax *dev_dax = to_dev_dax(dev);
drivers/dax/bus.c
1419
struct dax_device *dax_dev = dev_dax->dax_dev;
drivers/dax/bus.c
1422
free_dev_dax_id(dev_dax);
drivers/dax/bus.c
1423
kfree(dev_dax->pgmap);
drivers/dax/bus.c
1424
kfree(dev_dax);
drivers/dax/bus.c
1433
__weak phys_addr_t dax_pgoff_to_phys(struct dev_dax *dev_dax, pgoff_t pgoff,
drivers/dax/bus.c
1436
for (int i = 0; i < dev_dax->nr_range; i++) {
drivers/dax/bus.c
1437
struct dev_dax_range *dax_range = &dev_dax->ranges[i];
drivers/dax/bus.c
1452
static struct dev_dax *__devm_create_dev_dax(struct dev_dax_data *data)
drivers/dax/bus.c
1457
struct dev_dax *dev_dax;
drivers/dax/bus.c
1462
dev_dax = kzalloc_obj(*dev_dax);
drivers/dax/bus.c
1463
if (!dev_dax)
drivers/dax/bus.c
1466
dev_dax->region = dax_region;
drivers/dax/bus.c
1474
dev_dax->id = data->id;
drivers/dax/bus.c
1482
rc = alloc_dev_dax_id(dev_dax);
drivers/dax/bus.c
1487
dev = &dev_dax->dev;
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
1499
dev_dax->pgmap = kmemdup(data->pgmap,
drivers/dax/bus.c
1501
if (!dev_dax->pgmap) {
drivers/dax/bus.c
1511
dax_dev = alloc_dax(dev_dax, NULL);
drivers/dax/bus.c
1523
dev_dax->dax_dev = dax_dev;
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
1526
ida_init(&dev_dax->ida);
drivers/dax/bus.c
1528
dev_dax->memmap_on_memory = data->memmap_on_memory;
drivers/dax/bus.c
1538
kill_dev_dax(dev_dax);
drivers/dax/bus.c
1548
if (dev_dax->nr_range && range_len(&dev_dax->ranges[0].range)) {
drivers/dax/bus.c
1549
rc = devm_register_dax_mapping(dev_dax, 0);
drivers/dax/bus.c
1554
return dev_dax;
drivers/dax/bus.c
1557
kfree(dev_dax->pgmap);
drivers/dax/bus.c
1559
free_dev_dax_ranges(dev_dax);
drivers/dax/bus.c
1561
free_dev_dax_id(dev_dax);
drivers/dax/bus.c
1563
kfree(dev_dax);
drivers/dax/bus.c
1568
struct dev_dax *devm_create_dev_dax(struct dev_dax_data *data)
drivers/dax/bus.c
1570
struct dev_dax *dev_dax;
drivers/dax/bus.c
1573
dev_dax = __devm_create_dev_dax(data);
drivers/dax/bus.c
1576
return dev_dax;
drivers/dax/bus.c
180
bool static_dev_dax(struct dev_dax *dev_dax)
drivers/dax/bus.c
182
return is_static(dev_dax->region);
drivers/dax/bus.c
186
static u64 dev_dax_size(struct dev_dax *dev_dax)
drivers/dax/bus.c
193
for (i = 0; i < dev_dax->nr_range; i++)
drivers/dax/bus.c
194
size += range_len(&dev_dax->ranges[i].range);
drivers/dax/bus.c
202
struct dev_dax *dev_dax = to_dev_dax(dev);
drivers/dax/bus.c
203
struct dax_region *dax_region = dev_dax->region;
drivers/dax/bus.c
210
size = dev_dax_size(dev_dax);
drivers/dax/bus.c
213
if (size == 0 || dev_dax->id < 0)
drivers/dax/bus.c
216
rc = dax_drv->probe(dev_dax);
drivers/dax/bus.c
234
struct dev_dax *dev_dax = to_dev_dax(dev);
drivers/dax/bus.c
237
dax_drv->remove(dev_dax);
drivers/dax/bus.c
366
static struct dev_dax *__devm_create_dev_dax(struct dev_dax_data *data);
drivers/dax/bus.c
398
struct dev_dax *dev_dax = __devm_create_dev_dax(&data);
drivers/dax/bus.c
400
if (IS_ERR(dev_dax))
drivers/dax/bus.c
401
rc = PTR_ERR(dev_dax);
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
422
void kill_dev_dax(struct dev_dax *dev_dax)
drivers/dax/bus.c
424
struct dax_device *dax_dev = dev_dax->dax_dev;
drivers/dax/bus.c
435
if (!static_dev_dax(dev_dax))
drivers/dax/bus.c
436
dev_dax->pgmap = NULL;
drivers/dax/bus.c
440
static void trim_dev_dax_range(struct dev_dax *dev_dax)
drivers/dax/bus.c
442
int i = dev_dax->nr_range - 1;
drivers/dax/bus.c
443
struct range *range = &dev_dax->ranges[i].range;
drivers/dax/bus.c
444
struct dax_region *dax_region = dev_dax->region;
drivers/dax/bus.c
447
dev_dbg(&dev_dax->dev, "delete range[%d]: %#llx:%#llx\n", i,
drivers/dax/bus.c
452
if (--dev_dax->nr_range == 0) {
drivers/dax/bus.c
453
kfree(dev_dax->ranges);
drivers/dax/bus.c
454
dev_dax->ranges = NULL;
drivers/dax/bus.c
458
static void free_dev_dax_ranges(struct dev_dax *dev_dax)
drivers/dax/bus.c
460
while (dev_dax->nr_range)
drivers/dax/bus.c
461
trim_dev_dax_range(dev_dax);
drivers/dax/bus.c
466
struct dev_dax *dev_dax = to_dev_dax(dev);
drivers/dax/bus.c
471
kill_dev_dax(dev_dax);
drivers/dax/bus.c
473
free_dev_dax_ranges(dev_dax);
drivers/dax/bus.c
492
static int __free_dev_dax_id(struct dev_dax *dev_dax)
drivers/dax/bus.c
495
int rc = dev_dax->id;
drivers/dax/bus.c
499
if (!dev_dax->dyn_id || dev_dax->id < 0)
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
504
dev_dax->id = -1;
drivers/dax/bus.c
508
static int free_dev_dax_id(struct dev_dax *dev_dax)
drivers/dax/bus.c
515
rc = __free_dev_dax_id(dev_dax);
drivers/dax/bus.c
520
static int alloc_dev_dax_id(struct dev_dax *dev_dax)
drivers/dax/bus.c
522
struct dax_region *dax_region = dev_dax->region;
drivers/dax/bus.c
529
dev_dax->dyn_id = true;
drivers/dax/bus.c
530
dev_dax->id = id;
drivers/dax/bus.c
538
struct dev_dax *dev_dax;
drivers/dax/bus.c
552
dev_dax = to_dev_dax(victim);
drivers/dax/bus.c
554
if (victim->driver || dev_dax_size(dev_dax))
drivers/dax/bus.c
563
if (dev_dax->id > 0) {
drivers/dax/bus.c
564
do_del = __free_dev_dax_id(dev_dax) >= 0;
drivers/dax/bus.c
697
struct dev_dax *dev_dax = to_dev_dax(parent);
drivers/dax/bus.c
699
ida_free(&dev_dax->ida, mapping->id);
drivers/dax/bus.c
70
struct dev_dax *dev_dax = to_dev_dax(dev);
drivers/dax/bus.c
708
struct dev_dax *dev_dax = to_dev_dax(dev->parent);
drivers/dax/bus.c
712
dev_dax->ranges[mapping->range_id].mapping = NULL;
drivers/dax/bus.c
72
if (dev_dax->region->res.flags & IORESOURCE_DAX_KMEM)
drivers/dax/bus.c
721
struct dev_dax *dev_dax = to_dev_dax(dev->parent);
drivers/dax/bus.c
732
return &dev_dax->ranges[mapping->range_id];
drivers/dax/bus.c
809
static int devm_register_dax_mapping(struct dev_dax *dev_dax, int range_id)
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
826
mapping->id = ida_alloc(&dev_dax->ida, GFP_KERNEL);
drivers/dax/bus.c
831
dev_dax->ranges[range_id].mapping = mapping;
drivers/dax/bus.c
834
dev->parent = &dev_dax->dev;
drivers/dax/bus.c
851
static int alloc_dev_dax_range(struct dev_dax *dev_dax, u64 start,
drivers/dax/bus.c
854
struct dax_region *dax_region = dev_dax->region;
drivers/dax/bus.c
856
struct device *dev = &dev_dax->dev;
drivers/dax/bus.c
866
if (dev_WARN_ONCE(dev, dev_dax->nr_range,
drivers/dax/bus.c
877
ranges = krealloc(dev_dax->ranges, sizeof(*ranges)
drivers/dax/bus.c
878
* (dev_dax->nr_range + 1), GFP_KERNEL);
drivers/dax/bus.c
884
for (i = 0; i < dev_dax->nr_range; i++)
drivers/dax/bus.c
886
dev_dax->ranges = ranges;
drivers/dax/bus.c
887
ranges[dev_dax->nr_range++] = (struct dev_dax_range) {
drivers/dax/bus.c
895
dev_dbg(dev, "alloc range[%d]: %pa:%pa\n", dev_dax->nr_range - 1,
drivers/dax/bus.c
902
if (!device_is_registered(&dev_dax->dev))
drivers/dax/bus.c
905
rc = devm_register_dax_mapping(dev_dax, dev_dax->nr_range - 1);
drivers/dax/bus.c
907
trim_dev_dax_range(dev_dax);
drivers/dax/bus.c
912
static int adjust_dev_dax_range(struct dev_dax *dev_dax, struct resource *res, resource_size_t size)
drivers/dax/bus.c
914
int last_range = dev_dax->nr_range - 1;
drivers/dax/bus.c
915
struct dev_dax_range *dax_range = &dev_dax->ranges[last_range];
drivers/dax/bus.c
918
struct device *dev = &dev_dax->dev;
drivers/dax/bus.c
945
struct dev_dax *dev_dax = to_dev_dax(dev);
drivers/dax/bus.c
952
size = dev_dax_size(dev_dax);
drivers/dax/bus.c
958
static bool alloc_is_aligned(struct dev_dax *dev_dax, resource_size_t size)
drivers/dax/bus.c
964
return IS_ALIGNED(size, max_t(unsigned long, dev_dax->align, memremap_compat_align()));
drivers/dax/bus.c
967
static int dev_dax_shrink(struct dev_dax *dev_dax, resource_size_t size)
drivers/dax/bus.c
969
resource_size_t to_shrink = dev_dax_size(dev_dax) - size;
drivers/dax/bus.c
970
struct dax_region *dax_region = dev_dax->region;
drivers/dax/bus.c
971
struct device *dev = &dev_dax->dev;
drivers/dax/bus.c
974
for (i = dev_dax->nr_range - 1; i >= 0; i--) {
drivers/dax/bus.c
975
struct range *range = &dev_dax->ranges[i].range;
drivers/dax/bus.c
976
struct dax_mapping *mapping = dev_dax->ranges[i].mapping;
drivers/dax/bus.c
984
trim_dev_dax_range(dev_dax);
drivers/dax/bus.c
998
if (dev_WARN_ONCE(dev, !adjust || i != dev_dax->nr_range - 1,
drivers/dax/bus.h
10
struct dev_dax;
drivers/dax/bus.h
31
struct dev_dax *devm_create_dev_dax(struct dev_dax_data *data);
drivers/dax/bus.h
43
int (*probe)(struct dev_dax *dev);
drivers/dax/bus.h
44
void (*remove)(struct dev_dax *dev);
drivers/dax/bus.h
54
void kill_dev_dax(struct dev_dax *dev_dax);
drivers/dax/bus.h
55
bool static_dev_dax(struct dev_dax *dev_dax);
drivers/dax/dax-private.h
109
static inline struct dev_dax *to_dev_dax(struct device *dev)
drivers/dax/dax-private.h
111
return container_of(dev, struct dev_dax, dev);
drivers/dax/dax-private.h
119
phys_addr_t dax_pgoff_to_phys(struct dev_dax *dev_dax, pgoff_t pgoff, unsigned long size);
drivers/dax/device.c
103
if (fault_size != dev_dax->align)
drivers/dax/device.c
106
phys = dax_pgoff_to_phys(dev_dax, vmf->pgoff, PAGE_SIZE);
drivers/dax/device.c
120
static vm_fault_t __dev_dax_pmd_fault(struct dev_dax *dev_dax,
drivers/dax/device.c
124
struct device *dev = &dev_dax->dev;
drivers/dax/device.c
130
if (check_vma(dev_dax, vmf->vma, __func__))
drivers/dax/device.c
133
if (dev_dax->align > PMD_SIZE) {
drivers/dax/device.c
135
dev_dax->align, fault_size);
drivers/dax/device.c
139
if (fault_size < dev_dax->align)
drivers/dax/device.c
141
else if (fault_size > dev_dax->align)
drivers/dax/device.c
150
phys = dax_pgoff_to_phys(dev_dax, pgoff, PMD_SIZE);
drivers/dax/device.c
16
static int __check_vma(struct dev_dax *dev_dax, vma_flags_t flags,
drivers/dax/device.c
165
static vm_fault_t __dev_dax_pud_fault(struct dev_dax *dev_dax,
drivers/dax/device.c
169
struct device *dev = &dev_dax->dev;
drivers/dax/device.c
176
if (check_vma(dev_dax, vmf->vma, __func__))
drivers/dax/device.c
179
if (dev_dax->align > PUD_SIZE) {
drivers/dax/device.c
181
dev_dax->align, fault_size);
drivers/dax/device.c
185
if (fault_size < dev_dax->align)
drivers/dax/device.c
187
else if (fault_size > dev_dax->align)
drivers/dax/device.c
196
phys = dax_pgoff_to_phys(dev_dax, pgoff, PUD_SIZE);
drivers/dax/device.c
20
struct device *dev = &dev_dax->dev;
drivers/dax/device.c
210
static vm_fault_t __dev_dax_pud_fault(struct dev_dax *dev_dax,
drivers/dax/device.c
222
struct dev_dax *dev_dax = filp->private_data;
drivers/dax/device.c
224
dev_dbg(&dev_dax->dev, "%s: op=%s addr=%#lx order=%d\n", current->comm,
drivers/dax/device.c
23
if (!dax_alive(dev_dax->dax_dev))
drivers/dax/device.c
230
rc = __dev_dax_pte_fault(dev_dax, vmf);
drivers/dax/device.c
232
rc = __dev_dax_pmd_fault(dev_dax, vmf);
drivers/dax/device.c
234
rc = __dev_dax_pud_fault(dev_dax, vmf);
drivers/dax/device.c
251
struct dev_dax *dev_dax = filp->private_data;
drivers/dax/device.c
253
if (!IS_ALIGNED(addr, dev_dax->align))
drivers/dax/device.c
261
struct dev_dax *dev_dax = filp->private_data;
drivers/dax/device.c
263
return dev_dax->align;
drivers/dax/device.c
276
struct dev_dax *dev_dax = filp->private_data;
drivers/dax/device.c
279
dev_dbg(&dev_dax->dev, "trace\n");
drivers/dax/device.c
286
rc = __check_vma(dev_dax, desc->vma_flags, desc->start, desc->end, filp,
drivers/dax/device.c
303
struct dev_dax *dev_dax = filp ? filp->private_data : NULL;
drivers/dax/device.c
305
if (!dev_dax || addr)
drivers/dax/device.c
308
align = dev_dax->align;
drivers/dax/device.c
337
struct dev_dax *dev_dax = dax_get_private(dax_dev);
drivers/dax/device.c
339
dev_dbg(&dev_dax->dev, "trace\n");
drivers/dax/device.c
34
mask = dev_dax->align - 1;
drivers/dax/device.c
346
filp->private_data = dev_dax;
drivers/dax/device.c
354
struct dev_dax *dev_dax = filp->private_data;
drivers/dax/device.c
356
dev_dbg(&dev_dax->dev, "trace\n");
drivers/dax/device.c
375
static void dev_dax_kill(void *dev_dax)
drivers/dax/device.c
377
kill_dev_dax(dev_dax);
drivers/dax/device.c
380
static int dev_dax_probe(struct dev_dax *dev_dax)
drivers/dax/device.c
382
struct dax_device *dax_dev = dev_dax->dax_dev;
drivers/dax/device.c
383
struct device *dev = &dev_dax->dev;
drivers/dax/device.c
390
if (static_dev_dax(dev_dax)) {
drivers/dax/device.c
391
if (dev_dax->nr_range > 1) {
drivers/dax/device.c
397
pgmap = dev_dax->pgmap;
drivers/dax/device.c
399
if (dev_dax->pgmap) {
drivers/dax/device.c
406
struct_size(pgmap, ranges, dev_dax->nr_range - 1),
drivers/dax/device.c
411
pgmap->nr_range = dev_dax->nr_range;
drivers/dax/device.c
412
dev_dax->pgmap = pgmap;
drivers/dax/device.c
414
for (i = 0; i < dev_dax->nr_range; i++) {
drivers/dax/device.c
415
struct range *range = &dev_dax->ranges[i].range;
drivers/dax/device.c
420
for (i = 0; i < dev_dax->nr_range; i++) {
drivers/dax/device.c
421
struct range *range = &dev_dax->ranges[i].range;
drivers/dax/device.c
432
if (dev_dax->align > PAGE_SIZE)
drivers/dax/device.c
434
order_base_2(dev_dax->align >> PAGE_SHIFT);
drivers/dax/device.c
453
return devm_add_action_or_reset(dev, dev_dax_kill, dev_dax);
drivers/dax/device.c
53
static int check_vma(struct dev_dax *dev_dax, struct vm_area_struct *vma,
drivers/dax/device.c
56
return __check_vma(dev_dax, vma->flags, vma->vm_start, vma->vm_end,
drivers/dax/device.c
65
struct dev_dax *dev_dax = filp->private_data;
drivers/dax/device.c
69
if (dev_dax->pgmap->vmemmap_shift)
drivers/dax/device.c
86
static vm_fault_t __dev_dax_pte_fault(struct dev_dax *dev_dax,
drivers/dax/device.c
89
struct device *dev = &dev_dax->dev;
drivers/dax/device.c
94
if (check_vma(dev_dax, vmf->vma, __func__))
drivers/dax/device.c
97
if (dev_dax->align > PAGE_SIZE) {
drivers/dax/device.c
99
dev_dax->align, fault_size);
drivers/dax/fsdev.c
118
static void fsdev_kill(void *dev_dax)
drivers/dax/fsdev.c
120
kill_dev_dax(dev_dax);
drivers/dax/fsdev.c
125
struct dev_dax *dev_dax = data;
drivers/dax/fsdev.c
127
dax_set_ops(dev_dax->dax_dev, NULL);
drivers/dax/fsdev.c
141
struct dev_dax *dev_dax = pgmap->owner;
drivers/dax/fsdev.c
142
u64 offset = PFN_PHYS(pfn) - dev_dax->ranges[0].range.start;
drivers/dax/fsdev.c
145
return dax_holder_notify_failure(dev_dax->dax_dev, offset,
drivers/dax/fsdev.c
164
static void fsdev_clear_folio_state(struct dev_dax *dev_dax)
drivers/dax/fsdev.c
166
for (int i = 0; i < dev_dax->nr_range; i++) {
drivers/dax/fsdev.c
167
struct range *range = &dev_dax->ranges[i].range;
drivers/dax/fsdev.c
188
struct dev_dax *dev_dax = dax_get_private(dax_dev);
drivers/dax/fsdev.c
190
filp->private_data = dev_dax;
drivers/dax/fsdev.c
207
static int fsdev_dax_probe(struct dev_dax *dev_dax)
drivers/dax/fsdev.c
209
struct dax_device *dax_dev = dev_dax->dax_dev;
drivers/dax/fsdev.c
210
struct device *dev = &dev_dax->dev;
drivers/dax/fsdev.c
218
if (static_dev_dax(dev_dax)) {
drivers/dax/fsdev.c
219
if (dev_dax->nr_range > 1) {
drivers/dax/fsdev.c
224
pgmap = dev_dax->pgmap;
drivers/dax/fsdev.c
228
if (dev_dax->pgmap) {
drivers/dax/fsdev.c
233
pgmap_size = struct_size(pgmap, ranges, dev_dax->nr_range - 1);
drivers/dax/fsdev.c
238
pgmap->nr_range = dev_dax->nr_range;
drivers/dax/fsdev.c
239
dev_dax->pgmap = pgmap;
drivers/dax/fsdev.c
241
for (i = 0; i < dev_dax->nr_range; i++) {
drivers/dax/fsdev.c
242
struct range *range = &dev_dax->ranges[i].range;
drivers/dax/fsdev.c
248
for (i = 0; i < dev_dax->nr_range; i++) {
drivers/dax/fsdev.c
249
struct range *range = &dev_dax->ranges[i].range;
drivers/dax/fsdev.c
260
dev_dax->cached_size = 0;
drivers/dax/fsdev.c
261
for (i = 0; i < dev_dax->nr_range; i++)
drivers/dax/fsdev.c
262
dev_dax->cached_size += range_len(&dev_dax->ranges[i].range);
drivers/dax/fsdev.c
272
pgmap->owner = dev_dax;
drivers/dax/fsdev.c
284
fsdev_clear_folio_state(dev_dax);
drivers/dax/fsdev.c
286
dev_dax);
drivers/dax/fsdev.c
291
if (pgmap->range.start != dev_dax->ranges[0].range.start) {
drivers/dax/fsdev.c
292
u64 phys = dev_dax->ranges[0].range.start;
drivers/dax/fsdev.c
293
u64 pgmap_phys = dev_dax->pgmap[0].range.start;
drivers/dax/fsdev.c
301
dev_dax->virt_addr = addr + data_offset;
drivers/dax/fsdev.c
321
rc = devm_add_action_or_reset(dev, fsdev_clear_ops, dev_dax);
drivers/dax/fsdev.c
326
return devm_add_action_or_reset(dev, fsdev_kill, dev_dax);
drivers/dax/fsdev.c
51
struct dev_dax *dev_dax = dax_get_private(dax_dev);
drivers/dax/fsdev.c
54
void *virt_addr = dev_dax->virt_addr + offset;
drivers/dax/fsdev.c
58
phys = dax_pgoff_to_phys(dev_dax, pgoff, size);
drivers/dax/fsdev.c
60
dev_dbg(&dev_dax->dev,
drivers/dax/fsdev.c
76
return PHYS_PFN(min(size, dev_dax->cached_size - offset));
drivers/dax/kmem.c
100
orig_len += range_len(&dev_dax->ranges[i].range);
drivers/dax/kmem.c
101
rc = dax_kmem_range(dev_dax, i, &range);
drivers/dax/kmem.c
124
data = kzalloc_flex(*data, res, dev_dax->nr_range);
drivers/dax/kmem.c
137
for (i = 0; i < dev_dax->nr_range; i++) {
drivers/dax/kmem.c
141
rc = dax_kmem_range(dev_dax, i, &range);
drivers/dax/kmem.c
170
if (dev_dax->memmap_on_memory)
drivers/dax/kmem.c
209
static void dev_dax_kmem_remove(struct dev_dax *dev_dax)
drivers/dax/kmem.c
212
int node = dev_dax->target_node;
drivers/dax/kmem.c
213
struct device *dev = &dev_dax->dev;
drivers/dax/kmem.c
222
for (i = 0; i < dev_dax->nr_range; i++) {
drivers/dax/kmem.c
226
rc = dax_kmem_range(dev_dax, i, &range);
drivers/dax/kmem.c
250
if (success >= dev_dax->nr_range) {
drivers/dax/kmem.c
266
static void dev_dax_kmem_remove(struct dev_dax *dev_dax)
drivers/dax/kmem.c
31
static int dax_kmem_range(struct dev_dax *dev_dax, int i, struct range *r)
drivers/dax/kmem.c
33
struct dev_dax_range *dax_range = &dev_dax->ranges[i];
drivers/dax/kmem.c
68
static int dev_dax_kmem_probe(struct dev_dax *dev_dax)
drivers/dax/kmem.c
70
struct device *dev = &dev_dax->dev;
drivers/dax/kmem.c
85
numa_node = dev_dax->target_node;
drivers/dax/kmem.c
97
for (i = 0; i < dev_dax->nr_range; i++) {
drivers/dax/pmem.c
9
static struct dev_dax *__dax_pmem_probe(struct device *dev)
drivers/dax/super.c
144
struct dev_dax *dev_dax;
drivers/dax/super.c
156
dev_dax = dax_get_private(dax_dev);
drivers/dax/super.c
157
if (!dev_dax) {
drivers/dax/super.c
162
device_lock(&dev_dax->dev);
drivers/dax/super.c
163
if (!dev_dax->dev.driver) {
drivers/dax/super.c
164
device_unlock(&dev_dax->dev);
drivers/dax/super.c
168
dax_drv = to_dax_drv(dev_dax->dev.driver);
drivers/dax/super.c
170
device_unlock(&dev_dax->dev);
drivers/dax/super.c
174
device_unlock(&dev_dax->dev);
tools/testing/nvdimm/dax-dev.c
14
for (i = 0; i < dev_dax->nr_range; i++) {
tools/testing/nvdimm/dax-dev.c
15
struct dev_dax_range *dax_range = &dev_dax->ranges[i];
tools/testing/nvdimm/dax-dev.c
28
if (dev_dax->region->align > PAGE_SIZE)
tools/testing/nvdimm/dax-dev.c
9
phys_addr_t dax_pgoff_to_phys(struct dev_dax *dev_dax, pgoff_t pgoff,