ufs: tune bkops while power managment events
[firefly-linux-kernel-4.4.55.git] / drivers / scsi / pmcraid.c
index 017f8b9554e53de6c64ae49f73d79e348a97dfd9..bcb64eb1387f0565976449eb9a45941ec7186514 100644 (file)
@@ -4213,9 +4213,9 @@ static ssize_t pmcraid_store_log_level(
 {
        struct Scsi_Host *shost;
        struct pmcraid_instance *pinstance;
-       unsigned long val;
+       u8 val;
 
-       if (strict_strtoul(buf, 10, &val))
+       if (kstrtou8(buf, 10, &val))
                return -EINVAL;
        /* log-level should be from 0 to 2 */
        if (val > 2)
@@ -4698,19 +4698,10 @@ pmcraid_register_interrupt_handler(struct pmcraid_instance *pinstance)
                for (i = 0; i < PMCRAID_NUM_MSIX_VECTORS; i++)
                        entries[i].entry = i;
 
-               rc = pci_enable_msix(pdev, entries, num_hrrq);
-               if (rc < 0)
+               num_hrrq = pci_enable_msix_range(pdev, entries, 1, num_hrrq);
+               if (num_hrrq < 0)
                        goto pmcraid_isr_legacy;
 
-               /* Check how many MSIX vectors are allocated and register
-                * msi-x handlers for each of them giving appropriate buffer
-                */
-               if (rc > 0) {
-                       num_hrrq = rc;
-                       if (pci_enable_msix(pdev, entries, num_hrrq))
-                               goto pmcraid_isr_legacy;
-               }
-
                for (i = 0; i < num_hrrq; i++) {
                        pinstance->hrrq_vector[i].hrrq_id = i;
                        pinstance->hrrq_vector[i].drv_inst = pinstance;
@@ -4746,7 +4737,6 @@ pmcraid_isr_legacy:
        pinstance->hrrq_vector[0].drv_inst = pinstance;
        pinstance->hrrq_vector[0].vector = pdev->irq;
        pinstance->num_hrrq = 1;
-       rc = 0;
 
        rc = request_irq(pdev->irq, pmcraid_isr, IRQF_SHARED,
                         PMCRAID_DRIVER_NAME, &pinstance->hrrq_vector[0]);