aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/nvdimm
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2016-07-26 18:37:51 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2016-07-26 18:37:51 -0400
commit3fc9d690936fb2e20e180710965ba2cc3a0881f8 (patch)
treeeaf4d9f788ee4d17cd40a116413873b7f80f9aa7 /drivers/nvdimm
parentd05d7f40791ccbb6e543cc5dd6a6aa08fc71d635 (diff)
parent13880f5b57adf34d050cf7e229a6326da45a7347 (diff)
Merge branch 'for-4.8/drivers' of git://git.kernel.dk/linux-block
Pull block driver updates from Jens Axboe: "This branch also contains core changes. I've come to the conclusion that from 4.9 and forward, I'll be doing just a single branch. We often have dependencies between core and drivers, and it's hard to always split them up appropriately without pulling core into drivers when that happens. That said, this contains: - separate secure erase type for the core block layer, from Christoph. - set of discard fixes, from Christoph. - bio shrinking fixes from Christoph, as a followup up to the op/flags change in the core branch. - map and append request fixes from Christoph. - NVMeF (NVMe over Fabrics) code from Christoph. This is pretty exciting! - nvme-loop fixes from Arnd. - removal of ->driverfs_dev from Dan, after providing a device_add_disk() helper. - bcache fixes from Bhaktipriya and Yijing. - cdrom subchannel read fix from Vchannaiah. - set of lightnvm updates from Wenwei, Matias, Johannes, and Javier. - set of drbd updates and fixes from Fabian, Lars, and Philipp. - mg_disk error path fix from Bart. - user notification for failed device add for loop, from Minfei. - NVMe in general: + NVMe delay quirk from Guilherme. + SR-IOV support and command retry limits from Keith. + fix for memory-less NUMA node from Masayoshi. + use UINT_MAX for discard sectors, from Minfei. + cancel IO fixes from Ming. + don't allocate unused major, from Neil. + error code fixup from Dan. + use constants for PSDT/FUSE from James. + variable init fix from Jay. + fabrics fixes from Ming, Sagi, and Wei. + various fixes" * 'for-4.8/drivers' of git://git.kernel.dk/linux-block: (115 commits) nvme/pci: Provide SR-IOV support nvme: initialize variable before logical OR'ing it block: unexport various bio mapping helpers scsi/osd: open code blk_make_request target: stop using blk_make_request block: simplify and export blk_rq_append_bio block: ensure bios return from blk_get_request are properly initialized virtio_blk: use blk_rq_map_kern memstick: don't allow REQ_TYPE_BLOCK_PC requests block: shrink bio size again block: simplify and cleanup bvec pool handling block: get rid of bio_rw and READA block: don't ignore -EOPNOTSUPP blkdev_issue_write_same block: introduce BLKDEV_DISCARD_ZERO to fix zeroout NVMe: don't allocate unused nvme_major nvme: avoid crashes when node 0 is memoryless node. nvme: Limit command retries loop: Make user notify for adding loop device failed nvme-loop: fix nvme-loop Kconfig dependencies nvmet: fix return value check in nvmet_subsys_alloc() ...
Diffstat (limited to 'drivers/nvdimm')
-rw-r--r--drivers/nvdimm/blk.c3
-rw-r--r--drivers/nvdimm/btt.c3
-rw-r--r--drivers/nvdimm/bus.c2
-rw-r--r--drivers/nvdimm/pmem.c3
4 files changed, 4 insertions, 7 deletions
diff --git a/drivers/nvdimm/blk.c b/drivers/nvdimm/blk.c
index 495e06d9f7e7..7e262ef06ede 100644
--- a/drivers/nvdimm/blk.c
+++ b/drivers/nvdimm/blk.c
@@ -287,14 +287,13 @@ static int nsblk_attach_disk(struct nd_namespace_blk *nsblk)
287 return -ENOMEM; 287 return -ENOMEM;
288 } 288 }
289 289
290 disk->driverfs_dev = dev;
291 disk->first_minor = 0; 290 disk->first_minor = 0;
292 disk->fops = &nd_blk_fops; 291 disk->fops = &nd_blk_fops;
293 disk->queue = q; 292 disk->queue = q;
294 disk->flags = GENHD_FL_EXT_DEVT; 293 disk->flags = GENHD_FL_EXT_DEVT;
295 nvdimm_namespace_disk_name(&nsblk->common, disk->disk_name); 294 nvdimm_namespace_disk_name(&nsblk->common, disk->disk_name);
296 set_capacity(disk, 0); 295 set_capacity(disk, 0);
297 add_disk(disk); 296 device_add_disk(dev, disk);
298 297
299 if (nsblk_meta_size(nsblk)) { 298 if (nsblk_meta_size(nsblk)) {
300 int rc = nd_integrity_init(disk, nsblk_meta_size(nsblk)); 299 int rc = nd_integrity_init(disk, nsblk_meta_size(nsblk));
diff --git a/drivers/nvdimm/btt.c b/drivers/nvdimm/btt.c
index 68a7c3c1eed9..9dce03f420eb 100644
--- a/drivers/nvdimm/btt.c
+++ b/drivers/nvdimm/btt.c
@@ -1243,7 +1243,6 @@ static int btt_blk_init(struct btt *btt)
1243 } 1243 }
1244 1244
1245 nvdimm_namespace_disk_name(ndns, btt->btt_disk->disk_name); 1245 nvdimm_namespace_disk_name(ndns, btt->btt_disk->disk_name);
1246 btt->btt_disk->driverfs_dev = &btt->nd_btt->dev;
1247 btt->btt_disk->first_minor = 0; 1246 btt->btt_disk->first_minor = 0;
1248 btt->btt_disk->fops = &btt_fops; 1247 btt->btt_disk->fops = &btt_fops;
1249 btt->btt_disk->private_data = btt; 1248 btt->btt_disk->private_data = btt;
@@ -1258,7 +1257,7 @@ static int btt_blk_init(struct btt *btt)
1258 btt->btt_queue->queuedata = btt; 1257 btt->btt_queue->queuedata = btt;
1259 1258
1260 set_capacity(btt->btt_disk, 0); 1259 set_capacity(btt->btt_disk, 0);
1261 add_disk(btt->btt_disk); 1260 device_add_disk(&btt->nd_btt->dev, btt->btt_disk);
1262 if (btt_meta_size(btt)) { 1261 if (btt_meta_size(btt)) {
1263 int rc = nd_integrity_init(btt->btt_disk, btt_meta_size(btt)); 1262 int rc = nd_integrity_init(btt->btt_disk, btt_meta_size(btt));
1264 1263
diff --git a/drivers/nvdimm/bus.c b/drivers/nvdimm/bus.c
index f085f8bceae8..5e4e5c772ea5 100644
--- a/drivers/nvdimm/bus.c
+++ b/drivers/nvdimm/bus.c
@@ -312,7 +312,7 @@ EXPORT_SYMBOL(__nd_driver_register);
312 312
313int nvdimm_revalidate_disk(struct gendisk *disk) 313int nvdimm_revalidate_disk(struct gendisk *disk)
314{ 314{
315 struct device *dev = disk->driverfs_dev; 315 struct device *dev = disk_to_dev(disk)->parent;
316 struct nd_region *nd_region = to_nd_region(dev->parent); 316 struct nd_region *nd_region = to_nd_region(dev->parent);
317 const char *pol = nd_region->ro ? "only" : "write"; 317 const char *pol = nd_region->ro ? "only" : "write";
318 318
diff --git a/drivers/nvdimm/pmem.c b/drivers/nvdimm/pmem.c
index 53b701b2f73e..36cb39047d5b 100644
--- a/drivers/nvdimm/pmem.c
+++ b/drivers/nvdimm/pmem.c
@@ -298,14 +298,13 @@ static int pmem_attach_disk(struct device *dev,
298 disk->queue = q; 298 disk->queue = q;
299 disk->flags = GENHD_FL_EXT_DEVT; 299 disk->flags = GENHD_FL_EXT_DEVT;
300 nvdimm_namespace_disk_name(ndns, disk->disk_name); 300 nvdimm_namespace_disk_name(ndns, disk->disk_name);
301 disk->driverfs_dev = dev;
302 set_capacity(disk, (pmem->size - pmem->pfn_pad - pmem->data_offset) 301 set_capacity(disk, (pmem->size - pmem->pfn_pad - pmem->data_offset)
303 / 512); 302 / 512);
304 if (devm_init_badblocks(dev, &pmem->bb)) 303 if (devm_init_badblocks(dev, &pmem->bb))
305 return -ENOMEM; 304 return -ENOMEM;
306 nvdimm_badblocks_populate(to_nd_region(dev->parent), &pmem->bb, res); 305 nvdimm_badblocks_populate(to_nd_region(dev->parent), &pmem->bb, res);
307 disk->bb = &pmem->bb; 306 disk->bb = &pmem->bb;
308 add_disk(disk); 307 device_add_disk(dev, disk);
309 revalidate_disk(disk); 308 revalidate_disk(disk);
310 309
311 return 0; 310 return 0;