libnvdimm fixes for v5.15-rc4
- Fix a regression that caused the sysfs ABI for pmem block devices to not be registered. This fails the nvdimm unit tests and dax xfstests. - Fix numa node lookups for dax-kmem memory (device-dax memory assigned to the page allocator) on ARM64. -----BEGIN PGP SIGNATURE----- iHUEABYIAB0WIQSbo+XnGs+rwLz9XGXfioYZHlFsZwUCYVeyFQAKCRDfioYZHlFs Zx/DAQDU2nQV86dYV4jl5ivNedcG8OMafSXMeSdB8E4kIGMG6gD/UaslrwSnCUO1 LIZZ00ubfV9vySZl5NJ5I7yvkXcj1gU= =P2BW -----END PGP SIGNATURE----- Merge tag 'libnvdimm-fixes-5.15-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm Pull libnvdimm fixes from Dan Williams: "A fix for a regression added this cycle in the pmem driver, and for a long standing bug for failed NUMA node lookups on ARM64. This has appeared in -next for several days with no reported issues. Summary: - Fix a regression that caused the sysfs ABI for pmem block devices to not be registered. This fails the nvdimm unit tests and dax xfstests. - Fix numa node lookups for dax-kmem memory (device-dax memory assigned to the page allocator) on ARM64" * tag 'libnvdimm-fixes-5.15-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm: nvdimm/pmem: fix creating the dax group ACPI: NFIT: Use fallback node id when numa info in NFIT table is incorrect
This commit is contained in:
commit
f05c643743
@ -3007,6 +3007,18 @@ static int acpi_nfit_register_region(struct acpi_nfit_desc *acpi_desc,
|
||||
ndr_desc->target_node = NUMA_NO_NODE;
|
||||
}
|
||||
|
||||
/* Fallback to address based numa information if node lookup failed */
|
||||
if (ndr_desc->numa_node == NUMA_NO_NODE) {
|
||||
ndr_desc->numa_node = memory_add_physaddr_to_nid(spa->address);
|
||||
dev_info(acpi_desc->dev, "changing numa node from %d to %d for nfit region [%pa-%pa]",
|
||||
NUMA_NO_NODE, ndr_desc->numa_node, &res.start, &res.end);
|
||||
}
|
||||
if (ndr_desc->target_node == NUMA_NO_NODE) {
|
||||
ndr_desc->target_node = phys_to_target_node(spa->address);
|
||||
dev_info(acpi_desc->dev, "changing target node from %d to %d for nfit region [%pa-%pa]",
|
||||
NUMA_NO_NODE, ndr_desc->numa_node, &res.start, &res.end);
|
||||
}
|
||||
|
||||
/*
|
||||
* Persistence domain bits are hierarchical, if
|
||||
* ACPI_NFIT_CAPABILITY_CACHE_FLUSH is set then
|
||||
|
@ -380,7 +380,6 @@ static int pmem_attach_disk(struct device *dev,
|
||||
struct nd_pfn_sb *pfn_sb;
|
||||
struct pmem_device *pmem;
|
||||
struct request_queue *q;
|
||||
struct device *gendev;
|
||||
struct gendisk *disk;
|
||||
void *addr;
|
||||
int rc;
|
||||
@ -489,10 +488,8 @@ static int pmem_attach_disk(struct device *dev,
|
||||
}
|
||||
dax_write_cache(dax_dev, nvdimm_has_cache(nd_region));
|
||||
pmem->dax_dev = dax_dev;
|
||||
gendev = disk_to_dev(disk);
|
||||
gendev->groups = pmem_attribute_groups;
|
||||
|
||||
device_add_disk(dev, disk, NULL);
|
||||
device_add_disk(dev, disk, pmem_attribute_groups);
|
||||
if (devm_add_action_or_reset(dev, pmem_release_disk, pmem))
|
||||
return -ENOMEM;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user