Skip to content

Commit a61fe6f

Browse files
committed
nfit, tools/testing/nvdimm: unify common init for acpi_nfit_desc
The nvdimm unit test infrastructure performs its own initialization of an acpi_nfit_desc to specify test overrides over the native implementation. Make it clear which attributes and operations it is overriding by re-using acpi_nfit_init_desc() as a common starting point. Signed-off-by: Dan Williams <dan.j.williams@intel.com>
1 parent 7199946 commit a61fe6f

File tree

3 files changed

+20
-48
lines changed

3 files changed

+20
-48
lines changed

drivers/acpi/nfit.c

Lines changed: 16 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -748,12 +748,11 @@ static struct attribute_group acpi_nfit_attribute_group = {
748748
.attrs = acpi_nfit_attributes,
749749
};
750750

751-
const struct attribute_group *acpi_nfit_attribute_groups[] = {
751+
static const struct attribute_group *acpi_nfit_attribute_groups[] = {
752752
&nvdimm_bus_attribute_group,
753753
&acpi_nfit_attribute_group,
754754
NULL,
755755
};
756-
EXPORT_SYMBOL_GPL(acpi_nfit_attribute_groups);
757756

758757
static struct acpi_nfit_memory_map *to_nfit_memdev(struct device *dev)
759758
{
@@ -1962,15 +1961,9 @@ int acpi_nfit_init(struct acpi_nfit_desc *acpi_desc, acpi_size sz)
19621961
}
19631962
EXPORT_SYMBOL_GPL(acpi_nfit_init);
19641963

1965-
static struct acpi_nfit_desc *acpi_nfit_desc_init(struct acpi_device *adev)
1964+
void acpi_nfit_desc_init(struct acpi_nfit_desc *acpi_desc, struct device *dev)
19661965
{
19671966
struct nvdimm_bus_descriptor *nd_desc;
1968-
struct acpi_nfit_desc *acpi_desc;
1969-
struct device *dev = &adev->dev;
1970-
1971-
acpi_desc = devm_kzalloc(dev, sizeof(*acpi_desc), GFP_KERNEL);
1972-
if (!acpi_desc)
1973-
return ERR_PTR(-ENOMEM);
19741967

19751968
dev_set_drvdata(dev, acpi_desc);
19761969
acpi_desc->dev = dev;
@@ -1980,12 +1973,6 @@ static struct acpi_nfit_desc *acpi_nfit_desc_init(struct acpi_device *adev)
19801973
nd_desc->ndctl = acpi_nfit_ctl;
19811974
nd_desc->attr_groups = acpi_nfit_attribute_groups;
19821975

1983-
acpi_desc->nvdimm_bus = nvdimm_bus_register(dev, nd_desc);
1984-
if (!acpi_desc->nvdimm_bus) {
1985-
devm_kfree(dev, acpi_desc);
1986-
return ERR_PTR(-ENXIO);
1987-
}
1988-
19891976
INIT_LIST_HEAD(&acpi_desc->spa_maps);
19901977
INIT_LIST_HEAD(&acpi_desc->spas);
19911978
INIT_LIST_HEAD(&acpi_desc->dcrs);
@@ -1996,9 +1983,8 @@ static struct acpi_nfit_desc *acpi_nfit_desc_init(struct acpi_device *adev)
19961983
INIT_LIST_HEAD(&acpi_desc->dimms);
19971984
mutex_init(&acpi_desc->spa_map_mutex);
19981985
mutex_init(&acpi_desc->init_mutex);
1999-
2000-
return acpi_desc;
20011986
}
1987+
EXPORT_SYMBOL_GPL(acpi_nfit_desc_init);
20021988

20031989
static int acpi_nfit_add(struct acpi_device *adev)
20041990
{
@@ -2017,12 +2003,13 @@ static int acpi_nfit_add(struct acpi_device *adev)
20172003
return 0;
20182004
}
20192005

2020-
acpi_desc = acpi_nfit_desc_init(adev);
2021-
if (IS_ERR(acpi_desc)) {
2022-
dev_err(dev, "%s: error initializing acpi_desc: %ld\n",
2023-
__func__, PTR_ERR(acpi_desc));
2024-
return PTR_ERR(acpi_desc);
2025-
}
2006+
acpi_desc = devm_kzalloc(dev, sizeof(*acpi_desc), GFP_KERNEL);
2007+
if (!acpi_desc)
2008+
return -ENOMEM;
2009+
acpi_nfit_desc_init(acpi_desc, &adev->dev);
2010+
acpi_desc->nvdimm_bus = nvdimm_bus_register(dev, &acpi_desc->nd_desc);
2011+
if (!acpi_desc->nvdimm_bus)
2012+
return -ENOMEM;
20262013

20272014
/*
20282015
* Save the acpi header for later and then skip it,
@@ -2085,12 +2072,13 @@ static void acpi_nfit_notify(struct acpi_device *adev, u32 event)
20852072
}
20862073

20872074
if (!acpi_desc) {
2088-
acpi_desc = acpi_nfit_desc_init(adev);
2089-
if (IS_ERR(acpi_desc)) {
2090-
dev_err(dev, "%s: error initializing acpi_desc: %ld\n",
2091-
__func__, PTR_ERR(acpi_desc));
2075+
acpi_desc = devm_kzalloc(dev, sizeof(*acpi_desc), GFP_KERNEL);
2076+
if (!acpi_desc)
2077+
goto out_unlock;
2078+
acpi_nfit_desc_init(acpi_desc, &adev->dev);
2079+
acpi_desc->nvdimm_bus = nvdimm_bus_register(dev, &acpi_desc->nd_desc);
2080+
if (!acpi_desc->nvdimm_bus)
20922081
goto out_unlock;
2093-
}
20942082
}
20952083

20962084
/* Evaluate _FIT */

drivers/acpi/nfit.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -195,5 +195,5 @@ static inline struct acpi_nfit_desc *to_acpi_desc(
195195

196196
const u8 *to_nfit_uuid(enum nfit_uuids id);
197197
int acpi_nfit_init(struct acpi_nfit_desc *nfit, acpi_size sz);
198-
extern const struct attribute_group *acpi_nfit_attribute_groups[];
198+
void acpi_nfit_desc_init(struct acpi_nfit_desc *acpi_desc, struct device *dev);
199199
#endif /* __NFIT_H__ */

tools/testing/nvdimm/test/nfit.c

Lines changed: 3 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -499,7 +499,6 @@ static int nfit_test1_alloc(struct nfit_test *t)
499499

500500
static void nfit_test0_setup(struct nfit_test *t)
501501
{
502-
struct nvdimm_bus_descriptor *nd_desc;
503502
struct acpi_nfit_desc *acpi_desc;
504503
struct acpi_nfit_memory_map *memdev;
505504
void *nfit_buf = t->nfit_buf;
@@ -1165,8 +1164,6 @@ static void nfit_test0_setup(struct nfit_test *t)
11651164
set_bit(ND_CMD_ARS_CAP, &acpi_desc->bus_dsm_force_en);
11661165
set_bit(ND_CMD_ARS_START, &acpi_desc->bus_dsm_force_en);
11671166
set_bit(ND_CMD_ARS_STATUS, &acpi_desc->bus_dsm_force_en);
1168-
nd_desc = &acpi_desc->nd_desc;
1169-
nd_desc->ndctl = nfit_test_ctl;
11701167
}
11711168

11721169
static void nfit_test1_setup(struct nfit_test *t)
@@ -1176,7 +1173,6 @@ static void nfit_test1_setup(struct nfit_test *t)
11761173
struct acpi_nfit_memory_map *memdev;
11771174
struct acpi_nfit_control_region *dcr;
11781175
struct acpi_nfit_system_address *spa;
1179-
struct nvdimm_bus_descriptor *nd_desc;
11801176
struct acpi_nfit_desc *acpi_desc;
11811177

11821178
offset = 0;
@@ -1226,8 +1222,6 @@ static void nfit_test1_setup(struct nfit_test *t)
12261222
set_bit(ND_CMD_ARS_CAP, &acpi_desc->bus_dsm_force_en);
12271223
set_bit(ND_CMD_ARS_START, &acpi_desc->bus_dsm_force_en);
12281224
set_bit(ND_CMD_ARS_STATUS, &acpi_desc->bus_dsm_force_en);
1229-
nd_desc = &acpi_desc->nd_desc;
1230-
nd_desc->ndctl = nfit_test_ctl;
12311225
}
12321226

12331227
static int nfit_test_blk_do_io(struct nd_blk_region *ndbr, resource_size_t dpa,
@@ -1310,26 +1304,16 @@ static int nfit_test_probe(struct platform_device *pdev)
13101304

13111305
nfit_test->setup(nfit_test);
13121306
acpi_desc = &nfit_test->acpi_desc;
1313-
acpi_desc->dev = &pdev->dev;
1307+
acpi_nfit_desc_init(acpi_desc, &pdev->dev);
13141308
acpi_desc->nfit = nfit_test->nfit_buf;
13151309
acpi_desc->blk_do_io = nfit_test_blk_do_io;
13161310
nd_desc = &acpi_desc->nd_desc;
1317-
nd_desc->attr_groups = acpi_nfit_attribute_groups;
1311+
nd_desc->provider_name = NULL;
1312+
nd_desc->ndctl = nfit_test_ctl;
13181313
acpi_desc->nvdimm_bus = nvdimm_bus_register(&pdev->dev, nd_desc);
13191314
if (!acpi_desc->nvdimm_bus)
13201315
return -ENXIO;
13211316

1322-
INIT_LIST_HEAD(&acpi_desc->spa_maps);
1323-
INIT_LIST_HEAD(&acpi_desc->spas);
1324-
INIT_LIST_HEAD(&acpi_desc->dcrs);
1325-
INIT_LIST_HEAD(&acpi_desc->bdws);
1326-
INIT_LIST_HEAD(&acpi_desc->idts);
1327-
INIT_LIST_HEAD(&acpi_desc->flushes);
1328-
INIT_LIST_HEAD(&acpi_desc->memdevs);
1329-
INIT_LIST_HEAD(&acpi_desc->dimms);
1330-
mutex_init(&acpi_desc->spa_map_mutex);
1331-
mutex_init(&acpi_desc->init_mutex);
1332-
13331317
rc = acpi_nfit_init(acpi_desc, nfit_test->nfit_size);
13341318
if (rc) {
13351319
nvdimm_bus_unregister(acpi_desc->nvdimm_bus);

0 commit comments

Comments
 (0)