diff options
author | Dan Williams <dan.j.williams@intel.com> | 2015-07-30 23:57:47 +0200 |
---|---|---|
committer | Dan Williams <dan.j.williams@intel.com> | 2015-08-29 05:39:36 +0200 |
commit | e1455744b27c9e6115c3508a7b2902157c2c4347 (patch) | |
tree | 6bfbc5d78269c9389f5bcfc1adc35d4f7f2e6fa4 /drivers/nvdimm/btt.c | |
parent | x86, pmem: clarify that ARCH_HAS_PMEM_API implies PMEM mapped WB (diff) | |
download | linux-e1455744b27c9e6115c3508a7b2902157c2c4347.tar.xz linux-e1455744b27c9e6115c3508a7b2902157c2c4347.zip |
libnvdimm, pfn: 'struct page' provider infrastructure
Implement the base infrastructure for libnvdimm PFN devices. Similar to
BTT devices they take a namespace as a backing device and layer
functionality on top. In this case the functionality is reserving space
for an array of 'struct page' entries to be handed out through
pfn_to_page(). For now this is just the basic libnvdimm-device-model for
configuring the base PFN device.
As the namespace claiming mechanism for PFN devices is mostly identical
to BTT devices drivers/nvdimm/claim.c is created to house the common
bits.
Cc: Ross Zwisler <ross.zwisler@linux.intel.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Diffstat (limited to 'drivers/nvdimm/btt.c')
-rw-r--r-- | drivers/nvdimm/btt.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/nvdimm/btt.c b/drivers/nvdimm/btt.c index 19588291550b..028d2d137bc5 100644 --- a/drivers/nvdimm/btt.c +++ b/drivers/nvdimm/btt.c @@ -731,6 +731,7 @@ static int create_arenas(struct btt *btt) static int btt_arena_write_layout(struct arena_info *arena) { int ret; + u64 sum; struct btt_sb *super; struct nd_btt *nd_btt = arena->nd_btt; const u8 *parent_uuid = nd_dev_to_uuid(&nd_btt->ndns->dev); @@ -770,7 +771,8 @@ static int btt_arena_write_layout(struct arena_info *arena) super->info2off = cpu_to_le64(arena->info2off - arena->infooff); super->flags = 0; - super->checksum = cpu_to_le64(nd_btt_sb_checksum(super)); + sum = nd_sb_checksum((struct nd_gen_sb *) super); + super->checksum = cpu_to_le64(sum); ret = btt_info_write(arena, super); @@ -1422,8 +1424,6 @@ static int __init nd_btt_init(void) { int rc; - BUILD_BUG_ON(sizeof(struct btt_sb) != SZ_4K); - btt_major = register_blkdev(0, "btt"); if (btt_major < 0) return btt_major; |