pmem.c (0f51c4fa7f60838a87cd45e8ba144dddcd4c066c) pmem.c (581388209405902b56d055f644b4dd124a206112)
1/*
2 * Persistent Memory Driver
3 *
4 * Copyright (c) 2014-2015, Intel Corporation.
5 * Copyright (c) 2015, Christoph Hellwig <hch@lst.de>.
6 * Copyright (c) 2015, Boaz Harrosh <boaz@plexistor.com>.
7 *
8 * This program is free software; you can redistribute it and/or modify it

--- 90 unchanged lines hidden (view full) ---

99
100 return pmem->size - offset;
101}
102
103static const struct block_device_operations pmem_fops = {
104 .owner = THIS_MODULE,
105 .rw_page = pmem_rw_page,
106 .direct_access = pmem_direct_access,
1/*
2 * Persistent Memory Driver
3 *
4 * Copyright (c) 2014-2015, Intel Corporation.
5 * Copyright (c) 2015, Christoph Hellwig <hch@lst.de>.
6 * Copyright (c) 2015, Boaz Harrosh <boaz@plexistor.com>.
7 *
8 * This program is free software; you can redistribute it and/or modify it

--- 90 unchanged lines hidden (view full) ---

99
100 return pmem->size - offset;
101}
102
103static const struct block_device_operations pmem_fops = {
104 .owner = THIS_MODULE,
105 .rw_page = pmem_rw_page,
106 .direct_access = pmem_direct_access,
107 .revalidate_disk = nvdimm_revalidate_disk,
107};
108
109static struct pmem_device *pmem_alloc(struct device *dev,
110 struct resource *res, int id)
111{
112 struct pmem_device *pmem;
113
114 pmem = kzalloc(sizeof(*pmem), GFP_KERNEL);

--- 58 unchanged lines hidden (view full) ---

173 disk->queue = pmem->pmem_queue;
174 disk->flags = GENHD_FL_EXT_DEVT;
175 nvdimm_namespace_disk_name(ndns, disk->disk_name);
176 disk->driverfs_dev = &ndns->dev;
177 set_capacity(disk, pmem->size >> 9);
178 pmem->pmem_disk = disk;
179
180 add_disk(disk);
108};
109
110static struct pmem_device *pmem_alloc(struct device *dev,
111 struct resource *res, int id)
112{
113 struct pmem_device *pmem;
114
115 pmem = kzalloc(sizeof(*pmem), GFP_KERNEL);

--- 58 unchanged lines hidden (view full) ---

174 disk->queue = pmem->pmem_queue;
175 disk->flags = GENHD_FL_EXT_DEVT;
176 nvdimm_namespace_disk_name(ndns, disk->disk_name);
177 disk->driverfs_dev = &ndns->dev;
178 set_capacity(disk, pmem->size >> 9);
179 pmem->pmem_disk = disk;
180
181 add_disk(disk);
182 revalidate_disk(disk);
181
182 return 0;
183}
184
185static int pmem_rw_bytes(struct nd_namespace_common *ndns,
186 resource_size_t offset, void *buf, size_t size, int rw)
187{
188 struct pmem_device *pmem = dev_get_drvdata(ndns->claim);

--- 104 unchanged lines hidden ---
183
184 return 0;
185}
186
187static int pmem_rw_bytes(struct nd_namespace_common *ndns,
188 resource_size_t offset, void *buf, size_t size, int rw)
189{
190 struct pmem_device *pmem = dev_get_drvdata(ndns->claim);

--- 104 unchanged lines hidden ---