Skip to content

Commit a73cc50

Browse files
jagalacticweiny2
authored andcommitted
dax: move dax_pgoff_to_phys from [drivers/dax/] device.c to bus.c
This function will be used by both device.c and fsdev.c, but both are loadable modules. Moving to bus.c puts it in core and makes it available to both. No code changes - just relocated. Reviewed-by: Ira Weiny <ira.weiny@intel.com> Reviewed-by: Dave Jiang <dave.jiang@intel.com> Reviewed-by: Jonathan Cameron <jonathan.cameron@huawei.com> Signed-off-by: John Groves <john@groves.net> Link: https://patch.msgid.link/0100019d311c90eb-a582ff97-93ba-49f3-8140-6c5c4bf8bc62-000000@email.amazonses.com Signed-off-by: Ira Weiny <ira.weiny@intel.com>
1 parent 7aaa804 commit a73cc50

2 files changed

Lines changed: 20 additions & 23 deletions

File tree

drivers/dax/bus.c

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1417,6 +1417,26 @@ static const struct device_type dev_dax_type = {
14171417
.groups = dax_attribute_groups,
14181418
};
14191419

1420+
/* see "strong" declaration in tools/testing/nvdimm/dax-dev.c */
1421+
__weak phys_addr_t dax_pgoff_to_phys(struct dev_dax *dev_dax, pgoff_t pgoff,
1422+
unsigned long size)
1423+
{
1424+
for (int i = 0; i < dev_dax->nr_range; i++) {
1425+
struct dev_dax_range *dax_range = &dev_dax->ranges[i];
1426+
struct range *range = &dax_range->range;
1427+
phys_addr_t phys;
1428+
1429+
if (!in_range(pgoff, dax_range->pgoff, PHYS_PFN(range_len(range))))
1430+
continue;
1431+
phys = PFN_PHYS(pgoff - dax_range->pgoff) + range->start;
1432+
if (phys + size - 1 <= range->end)
1433+
return phys;
1434+
break;
1435+
}
1436+
return -1;
1437+
}
1438+
EXPORT_SYMBOL_GPL(dax_pgoff_to_phys);
1439+
14201440
static struct dev_dax *__devm_create_dev_dax(struct dev_dax_data *data)
14211441
{
14221442
struct dax_region *dax_region = data->dax_region;

drivers/dax/device.c

Lines changed: 0 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -57,29 +57,6 @@ static int check_vma(struct dev_dax *dev_dax, struct vm_area_struct *vma,
5757
vma->vm_file, func);
5858
}
5959

60-
/* see "strong" declaration in tools/testing/nvdimm/dax-dev.c */
61-
__weak phys_addr_t dax_pgoff_to_phys(struct dev_dax *dev_dax, pgoff_t pgoff,
62-
unsigned long size)
63-
{
64-
int i;
65-
66-
for (i = 0; i < dev_dax->nr_range; i++) {
67-
struct dev_dax_range *dax_range = &dev_dax->ranges[i];
68-
struct range *range = &dax_range->range;
69-
unsigned long long pgoff_end;
70-
phys_addr_t phys;
71-
72-
pgoff_end = dax_range->pgoff + PHYS_PFN(range_len(range)) - 1;
73-
if (pgoff < dax_range->pgoff || pgoff > pgoff_end)
74-
continue;
75-
phys = PFN_PHYS(pgoff - dax_range->pgoff) + range->start;
76-
if (phys + size - 1 <= range->end)
77-
return phys;
78-
break;
79-
}
80-
return -1;
81-
}
82-
8360
static void dax_set_mapping(struct vm_fault *vmf, unsigned long pfn,
8461
unsigned long fault_size)
8562
{

0 commit comments

Comments
 (0)