Merge branch 'stable-3.2' into pandora-3.2
[pandora-kernel.git] / drivers / scsi / qla2xxx / qla_os.c
index f9e5b85..6cda887 100644 (file)
@@ -1999,10 +1999,10 @@ qla2x00_probe_one(struct pci_dev *pdev, const struct pci_device_id *id)
 
        if (mem_only) {
                if (pci_enable_device_mem(pdev))
-                       goto probe_out;
+                       return ret;
        } else {
                if (pci_enable_device(pdev))
-                       goto probe_out;
+                       return ret;
        }
 
        /* This may fail but that's ok */
@@ -2012,7 +2012,7 @@ qla2x00_probe_one(struct pci_dev *pdev, const struct pci_device_id *id)
        if (!ha) {
                ql_log_pci(ql_log_fatal, pdev, 0x0009,
                    "Unable to allocate memory for ha.\n");
-               goto probe_out;
+               goto disable_device;
        }
        ql_dbg_pci(ql_dbg_init, pdev, 0x000a,
            "Memory allocated for ha=%p.\n", ha);
@@ -2433,7 +2433,7 @@ probe_hw_failed:
        kfree(ha);
        ha = NULL;
 
-probe_out:
+disable_device:
        pci_disable_device(pdev);
        return ret;
 }
@@ -3541,9 +3541,9 @@ qla2x00_do_dpc(void *data)
                            "ISP abort end.\n");
                }
 
-               if (test_bit(FCPORT_UPDATE_NEEDED, &base_vha->dpc_flags)) {
+               if (test_and_clear_bit(FCPORT_UPDATE_NEEDED,
+                   &base_vha->dpc_flags)) {
                        qla2x00_update_fcports(base_vha);
-                       clear_bit(FCPORT_UPDATE_NEEDED, &base_vha->dpc_flags);
                }
 
                if (test_bit(ISP_QUIESCE_NEEDED, &base_vha->dpc_flags)) {