Commit e476f944 authored by Dan Williams's avatar Dan Williams

Merge branch 'for-4.9/dax' into libnvdimm-for-next

parents 178d6f4b 4e65e938
...@@ -23,4 +23,9 @@ config DEV_DAX_PMEM ...@@ -23,4 +23,9 @@ config DEV_DAX_PMEM
Say Y if unsure Say Y if unsure
config NR_DEV_DAX
int "Maximum number of Device-DAX instances"
default 32768
range 256 2147483647
endif endif
This diff is collapsed.
...@@ -13,12 +13,13 @@ ...@@ -13,12 +13,13 @@
#ifndef __DAX_H__ #ifndef __DAX_H__
#define __DAX_H__ #define __DAX_H__
struct device; struct device;
struct dax_dev;
struct resource; struct resource;
struct dax_region; struct dax_region;
void dax_region_put(struct dax_region *dax_region); void dax_region_put(struct dax_region *dax_region);
struct dax_region *alloc_dax_region(struct device *parent, struct dax_region *alloc_dax_region(struct device *parent,
int region_id, struct resource *res, unsigned int align, int region_id, struct resource *res, unsigned int align,
void *addr, unsigned long flags); void *addr, unsigned long flags);
int devm_create_dax_dev(struct dax_region *dax_region, struct resource *res, struct dax_dev *devm_create_dax_dev(struct dax_region *dax_region,
int count); struct resource *res, int count);
#endif /* __DAX_H__ */ #endif /* __DAX_H__ */
...@@ -24,7 +24,7 @@ struct dax_pmem { ...@@ -24,7 +24,7 @@ struct dax_pmem {
struct completion cmp; struct completion cmp;
}; };
struct dax_pmem *to_dax_pmem(struct percpu_ref *ref) static struct dax_pmem *to_dax_pmem(struct percpu_ref *ref)
{ {
return container_of(ref, struct dax_pmem, ref); return container_of(ref, struct dax_pmem, ref);
} }
...@@ -61,6 +61,7 @@ static int dax_pmem_probe(struct device *dev) ...@@ -61,6 +61,7 @@ static int dax_pmem_probe(struct device *dev)
int rc; int rc;
void *addr; void *addr;
struct resource res; struct resource res;
struct dax_dev *dax_dev;
struct nd_pfn_sb *pfn_sb; struct nd_pfn_sb *pfn_sb;
struct dax_pmem *dax_pmem; struct dax_pmem *dax_pmem;
struct nd_region *nd_region; struct nd_region *nd_region;
...@@ -126,12 +127,12 @@ static int dax_pmem_probe(struct device *dev) ...@@ -126,12 +127,12 @@ static int dax_pmem_probe(struct device *dev)
return -ENOMEM; return -ENOMEM;
/* TODO: support for subdividing a dax region... */ /* TODO: support for subdividing a dax region... */
rc = devm_create_dax_dev(dax_region, &res, 1); dax_dev = devm_create_dax_dev(dax_region, &res, 1);
/* child dax_dev instances now own the lifetime of the dax_region */ /* child dax_dev instances now own the lifetime of the dax_region */
dax_region_put(dax_region); dax_region_put(dax_region);
return rc; return PTR_ERR_OR_ZERO(dax_dev);
} }
static struct nd_device_driver dax_pmem_driver = { static struct nd_device_driver dax_pmem_driver = {
......
...@@ -89,7 +89,7 @@ config NVDIMM_PFN ...@@ -89,7 +89,7 @@ config NVDIMM_PFN
Select Y if unsure Select Y if unsure
config NVDIMM_DAX config NVDIMM_DAX
bool "NVDIMM DAX: Raw access to persistent memory" tristate "NVDIMM DAX: Raw access to persistent memory"
default LIBNVDIMM default LIBNVDIMM
depends on NVDIMM_PFN depends on NVDIMM_PFN
help help
......
...@@ -406,6 +406,7 @@ void cd_forget(struct inode *inode) ...@@ -406,6 +406,7 @@ void cd_forget(struct inode *inode)
spin_lock(&cdev_lock); spin_lock(&cdev_lock);
list_del_init(&inode->i_devices); list_del_init(&inode->i_devices);
inode->i_cdev = NULL; inode->i_cdev = NULL;
inode->i_mapping = &inode->i_data;
spin_unlock(&cdev_lock); spin_unlock(&cdev_lock);
} }
......
...@@ -65,6 +65,7 @@ ...@@ -65,6 +65,7 @@
#define V9FS_MAGIC 0x01021997 #define V9FS_MAGIC 0x01021997
#define BDEVFS_MAGIC 0x62646576 #define BDEVFS_MAGIC 0x62646576
#define DAXFS_MAGIC 0x64646178
#define BINFMTFS_MAGIC 0x42494e4d #define BINFMTFS_MAGIC 0x42494e4d
#define DEVPTS_SUPER_MAGIC 0x1cd1 #define DEVPTS_SUPER_MAGIC 0x1cd1
#define FUTEXFS_SUPER_MAGIC 0xBAD1DEA #define FUTEXFS_SUPER_MAGIC 0xBAD1DEA
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment