]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - drivers/nvme/host/core.c
block: ensure bios return from blk_get_request are properly initialized
[karo-tx-linux.git] / drivers / nvme / host / core.c
index a51946a35dcf5c1d4d69893068000131af1b9077..9f0ec3b4659fcfeeede6cee056fc19e6e22be8b9 100644 (file)
@@ -48,8 +48,10 @@ unsigned char shutdown_timeout = 5;
 module_param(shutdown_timeout, byte, 0644);
 MODULE_PARM_DESC(shutdown_timeout, "timeout in seconds for controller shutdown");
 
-static int nvme_major;
-module_param(nvme_major, int, 0);
+unsigned int nvme_max_retries = 5;
+module_param_named(max_retries, nvme_max_retries, uint, 0644);
+MODULE_PARM_DESC(max_retries, "max number of retries a command may have");
+EXPORT_SYMBOL_GPL(nvme_max_retries);
 
 static int nvme_char_major;
 module_param(nvme_char_major, int, 0);
@@ -220,10 +222,6 @@ struct request *nvme_alloc_request(struct request_queue *q,
 
        req->cmd_type = REQ_TYPE_DRV_PRIV;
        req->cmd_flags |= REQ_FAILFAST_DRIVER;
-       req->__data_len = 0;
-       req->__sector = (sector_t) -1;
-       req->bio = req->biotail = NULL;
-
        req->cmd = (unsigned char *)cmd;
        req->cmd_len = sizeof(struct nvme_command);
 
@@ -1669,8 +1667,6 @@ static void nvme_alloc_ns(struct nvme_ctrl *ctrl, unsigned nsid)
        blk_queue_logical_block_size(ns->queue, 1 << ns->lba_shift);
        nvme_set_queue_limits(ctrl, ns->queue);
 
-       disk->major = nvme_major;
-       disk->first_minor = 0;
        disk->fops = &nvme_fops;
        disk->private_data = ns;
        disk->queue = ns->queue;
@@ -2080,16 +2076,10 @@ int __init nvme_core_init(void)
 {
        int result;
 
-       result = register_blkdev(nvme_major, "nvme");
-       if (result < 0)
-               return result;
-       else if (result > 0)
-               nvme_major = result;
-
        result = __register_chrdev(nvme_char_major, 0, NVME_MINORS, "nvme",
                                                        &nvme_dev_fops);
        if (result < 0)
-               goto unregister_blkdev;
+               return result;
        else if (result > 0)
                nvme_char_major = result;
 
@@ -2103,8 +2093,6 @@ int __init nvme_core_init(void)
 
  unregister_chrdev:
        __unregister_chrdev(nvme_char_major, 0, NVME_MINORS, "nvme");
- unregister_blkdev:
-       unregister_blkdev(nvme_major, "nvme");
        return result;
 }
 
@@ -2112,7 +2100,6 @@ void nvme_core_exit(void)
 {
        class_destroy(nvme_class);
        __unregister_chrdev(nvme_char_major, 0, NVME_MINORS, "nvme");
-       unregister_blkdev(nvme_major, "nvme");
 }
 
 MODULE_LICENSE("GPL");