Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi
[linux-2.6-microblaze.git] / drivers / scsi / megaraid / megaraid_sas_fusion.c
index f4d988d..98a7a09 100644 (file)
@@ -684,15 +684,14 @@ megasas_alloc_rdpq_fusion(struct megasas_instance *instance)
        array_size = sizeof(struct MPI2_IOC_INIT_RDPQ_ARRAY_ENTRY) *
                     MAX_MSIX_QUEUES_FUSION;
 
-       fusion->rdpq_virt = pci_alloc_consistent(instance->pdev, array_size,
-                                                &fusion->rdpq_phys);
+       fusion->rdpq_virt = pci_zalloc_consistent(instance->pdev, array_size,
+                                                 &fusion->rdpq_phys);
        if (!fusion->rdpq_virt) {
                dev_err(&instance->pdev->dev,
                        "Failed from %s %d\n",  __func__, __LINE__);
                return -ENOMEM;
        }
 
-       memset(fusion->rdpq_virt, 0, array_size);
        msix_count = instance->msix_vectors > 0 ? instance->msix_vectors : 1;
 
        fusion->reply_frames_desc_pool = dma_pool_create("mr_rdpq",
@@ -2981,6 +2980,9 @@ megasas_build_syspd_fusion(struct megasas_instance *instance,
                pRAID_Context->timeout_value = cpu_to_le16(os_timeout_value);
                pRAID_Context->virtual_disk_tgt_id = cpu_to_le16(device_id);
        } else {
+               if (os_timeout_value)
+                       os_timeout_value++;
+
                /* system pd Fast Path */
                io_request->Function = MPI2_FUNCTION_SCSI_IO_REQUEST;
                timeout_limit = (scmd->device->type == TYPE_DISK) ?