mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git
synced 2026-05-02 18:17:50 -04:00
Merge tag 'libnvdimm-for-5.18' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm
Pull libnvdimm updates from Dan Williams:
"The update for this cycle includes the deprecation of block-aperture
mode and a new perf events interface for the papr_scm nvdimm driver.
The perf events approach was acked by PeterZ.
- Add perf support for nvdimm events, initially only for 'papr_scm'
devices.
- Deprecate the 'block aperture' support in libnvdimm, it only ever
existed in the specification, not in shipping product"
* tag 'libnvdimm-for-5.18' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm:
nvdimm/blk: Fix title level
MAINTAINERS: remove section LIBNVDIMM BLK: MMIO-APERTURE DRIVER
powerpc/papr_scm: Fix build failure when
drivers/nvdimm: Fix build failure when CONFIG_PERF_EVENTS is not set
nvdimm/region: Delete nd_blk_region infrastructure
ACPI: NFIT: Remove block aperture support
nvdimm/namespace: Delete nd_namespace_blk
nvdimm/namespace: Delete blk namespace consideration in shared paths
nvdimm/blk: Delete the block-aperture window driver
nvdimm/region: Fix default alignment for small regions
docs: ABI: sysfs-bus-nvdimm: Document sysfs event format entries for nvdimm pmu
powerpc/papr_scm: Add perf interface support
drivers/nvdimm: Add perf interface to expose nvdimm performance stats
drivers/nvdimm: Add nvdimm pmu structure
This commit is contained in:
@@ -27,7 +27,6 @@ ccflags-y += -I$(srctree)/drivers/acpi/nfit/
|
||||
obj-$(CONFIG_LIBNVDIMM) += libnvdimm.o
|
||||
obj-$(CONFIG_BLK_DEV_PMEM) += nd_pmem.o
|
||||
obj-$(CONFIG_ND_BTT) += nd_btt.o
|
||||
obj-$(CONFIG_ND_BLK) += nd_blk.o
|
||||
obj-$(CONFIG_X86_PMEM_LEGACY) += nd_e820.o
|
||||
obj-$(CONFIG_ACPI_NFIT) += nfit.o
|
||||
ifeq ($(CONFIG_DAX),m)
|
||||
@@ -50,9 +49,6 @@ nd_pmem-y += config_check.o
|
||||
nd_btt-y := $(NVDIMM_SRC)/btt.o
|
||||
nd_btt-y += config_check.o
|
||||
|
||||
nd_blk-y := $(NVDIMM_SRC)/blk.o
|
||||
nd_blk-y += config_check.o
|
||||
|
||||
nd_e820-y := $(NVDIMM_SRC)/e820.o
|
||||
nd_e820-y += config_check.o
|
||||
|
||||
|
||||
@@ -11,7 +11,6 @@ void check(void)
|
||||
BUILD_BUG_ON(!IS_MODULE(CONFIG_BLK_DEV_PMEM));
|
||||
BUILD_BUG_ON(!IS_MODULE(CONFIG_ND_BTT));
|
||||
BUILD_BUG_ON(!IS_MODULE(CONFIG_ND_PFN));
|
||||
BUILD_BUG_ON(!IS_MODULE(CONFIG_ND_BLK));
|
||||
if (IS_ENABLED(CONFIG_ACPI_NFIT))
|
||||
BUILD_BUG_ON(!IS_MODULE(CONFIG_ACPI_NFIT));
|
||||
BUILD_BUG_ON(!IS_MODULE(CONFIG_DEV_DAX));
|
||||
|
||||
@@ -338,62 +338,6 @@ static int ndtest_ctl(struct nvdimm_bus_descriptor *nd_desc,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int ndtest_blk_do_io(struct nd_blk_region *ndbr, resource_size_t dpa,
|
||||
void *iobuf, u64 len, int rw)
|
||||
{
|
||||
struct ndtest_dimm *dimm = ndbr->blk_provider_data;
|
||||
struct ndtest_blk_mmio *mmio = dimm->mmio;
|
||||
struct nd_region *nd_region = &ndbr->nd_region;
|
||||
unsigned int lane;
|
||||
|
||||
if (!mmio)
|
||||
return -ENOMEM;
|
||||
|
||||
lane = nd_region_acquire_lane(nd_region);
|
||||
if (rw)
|
||||
memcpy(mmio->base + dpa, iobuf, len);
|
||||
else {
|
||||
memcpy(iobuf, mmio->base + dpa, len);
|
||||
arch_invalidate_pmem(mmio->base + dpa, len);
|
||||
}
|
||||
|
||||
nd_region_release_lane(nd_region, lane);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int ndtest_blk_region_enable(struct nvdimm_bus *nvdimm_bus,
|
||||
struct device *dev)
|
||||
{
|
||||
struct nd_blk_region *ndbr = to_nd_blk_region(dev);
|
||||
struct nvdimm *nvdimm;
|
||||
struct ndtest_dimm *dimm;
|
||||
struct ndtest_blk_mmio *mmio;
|
||||
|
||||
nvdimm = nd_blk_region_to_dimm(ndbr);
|
||||
dimm = nvdimm_provider_data(nvdimm);
|
||||
|
||||
nd_blk_region_set_provider_data(ndbr, dimm);
|
||||
dimm->blk_region = to_nd_region(dev);
|
||||
|
||||
mmio = devm_kzalloc(dev, sizeof(struct ndtest_blk_mmio), GFP_KERNEL);
|
||||
if (!mmio)
|
||||
return -ENOMEM;
|
||||
|
||||
mmio->base = (void __iomem *) devm_nvdimm_memremap(
|
||||
dev, dimm->address, 12, nd_blk_memremap_flags(ndbr));
|
||||
if (!mmio->base) {
|
||||
dev_err(dev, "%s failed to map blk dimm\n", nvdimm_name(nvdimm));
|
||||
return -ENOMEM;
|
||||
}
|
||||
mmio->size = dimm->size;
|
||||
mmio->base_offset = 0;
|
||||
|
||||
dimm->mmio = mmio;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct nfit_test_resource *ndtest_resource_lookup(resource_size_t addr)
|
||||
{
|
||||
int i;
|
||||
@@ -523,17 +467,16 @@ static int ndtest_create_region(struct ndtest_priv *p,
|
||||
struct ndtest_region *region)
|
||||
{
|
||||
struct nd_mapping_desc mappings[NDTEST_MAX_MAPPING];
|
||||
struct nd_blk_region_desc ndbr_desc;
|
||||
struct nd_region_desc *ndr_desc, _ndr_desc;
|
||||
struct nd_interleave_set *nd_set;
|
||||
struct nd_region_desc *ndr_desc;
|
||||
struct resource res;
|
||||
int i, ndimm = region->mapping[0].dimm;
|
||||
u64 uuid[2];
|
||||
|
||||
memset(&res, 0, sizeof(res));
|
||||
memset(&mappings, 0, sizeof(mappings));
|
||||
memset(&ndbr_desc, 0, sizeof(ndbr_desc));
|
||||
ndr_desc = &ndbr_desc.ndr_desc;
|
||||
memset(&_ndr_desc, 0, sizeof(_ndr_desc));
|
||||
ndr_desc = &_ndr_desc;
|
||||
|
||||
if (!ndtest_alloc_resource(p, region->size, &res.start))
|
||||
return -ENOMEM;
|
||||
@@ -857,10 +800,8 @@ static int ndtest_dimm_register(struct ndtest_priv *priv,
|
||||
struct device *dev = &priv->pdev.dev;
|
||||
unsigned long dimm_flags = dimm->flags;
|
||||
|
||||
if (dimm->num_formats > 1) {
|
||||
set_bit(NDD_ALIASING, &dimm_flags);
|
||||
if (dimm->num_formats > 1)
|
||||
set_bit(NDD_LABELING, &dimm_flags);
|
||||
}
|
||||
|
||||
if (dimm->flags & PAPR_PMEM_UNARMED_MASK)
|
||||
set_bit(NDD_UNARMED, &dimm_flags);
|
||||
|
||||
@@ -2842,28 +2842,6 @@ static void nfit_test1_setup(struct nfit_test *t)
|
||||
set_bit(ND_CMD_SET_CONFIG_DATA, &acpi_desc->dimm_cmd_force_en);
|
||||
}
|
||||
|
||||
static int nfit_test_blk_do_io(struct nd_blk_region *ndbr, resource_size_t dpa,
|
||||
void *iobuf, u64 len, int rw)
|
||||
{
|
||||
struct nfit_blk *nfit_blk = ndbr->blk_provider_data;
|
||||
struct nfit_blk_mmio *mmio = &nfit_blk->mmio[BDW];
|
||||
struct nd_region *nd_region = &ndbr->nd_region;
|
||||
unsigned int lane;
|
||||
|
||||
lane = nd_region_acquire_lane(nd_region);
|
||||
if (rw)
|
||||
memcpy(mmio->addr.base + dpa, iobuf, len);
|
||||
else {
|
||||
memcpy(iobuf, mmio->addr.base + dpa, len);
|
||||
|
||||
/* give us some some coverage of the arch_invalidate_pmem() API */
|
||||
arch_invalidate_pmem(mmio->addr.base + dpa, len);
|
||||
}
|
||||
nd_region_release_lane(nd_region, lane);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static unsigned long nfit_ctl_handle;
|
||||
|
||||
union acpi_object *result;
|
||||
@@ -3219,7 +3197,6 @@ static int nfit_test_probe(struct platform_device *pdev)
|
||||
nfit_test->setup(nfit_test);
|
||||
acpi_desc = &nfit_test->acpi_desc;
|
||||
acpi_nfit_desc_init(acpi_desc, &pdev->dev);
|
||||
acpi_desc->blk_do_io = nfit_test_blk_do_io;
|
||||
nd_desc = &acpi_desc->nd_desc;
|
||||
nd_desc->provider_name = NULL;
|
||||
nd_desc->module = THIS_MODULE;
|
||||
|
||||
Reference in New Issue
Block a user