Skip to contentSkip to conversation

qla2xxx: fix error handling of qla2x00_mem_alloc()

PATCH In review Dan Carpenter 2 participants 2 messages Jan 21, 2014 – Jan 22, 2014

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 qla2xxx: fix error handling of qla2x00_mem_alloc()

qla2x00_mem_alloc() returns 1 on success and -ENOMEM on failure. On the one hand the caller assumes non-zero is success but on the other hand the caller also assumes that it returns an error code.

I've fixed it to return zero on success and a negative error code on failure. This matches the documentation as well.

Fixes e315cd28b9ef ('[SCSI] qla2xxx: Code changes for qla data structure refactoring')
drivers/scsi/qla2xxx/qla_os.c +2 -2
index 89a53002b585..8d5a67fcffa1 100644
@@ -2536,7 +2536,7 @@ qla2x00_probe_one(struct pci_dev *pdev, const struct pci_device_id *id)
 	    ha->flags.enable_64bit_addressing ? "enable" :
 	    "disable");
 	ret = qla2x00_mem_alloc(ha, req_length, rsp_length, &req, &rsp);
-	if (!ret) {
+	if (ret) {
 		ql_log_pci(ql_log_fatal, pdev, 0x0031,
 		    "Failed to allocate memory for adapter, aborting.\n");
 
@@ -3481,7 +3481,7 @@ qla2x00_mem_alloc(struct qla_hw_data *ha, uint16_t req_len, uint16_t rsp_len,
 		    "loop_id_map=%p. \n", ha->loop_id_map);
 	}
 
-	return 1;
+	return 0;
 
 fail_async_pd:
 	dma_pool_free(ha->s_dma_pool, ha->ex_init_cb, ha->ex_init_cb_dma);
Acked-by on v1 1/1
#1 lore raw

Thanks,
~Saurav

Quoted 35 lines

qla2x00_mem_alloc() returns 1 on success and -ENOMEM on failure. On the one hand the caller assumes non-zero is success but on the other hand the caller also assumes that it returns an error code.

I've fixed it to return zero on success and a negative error code on failure. This matches the documentation as well.

Fixes e315cd28b9ef ('[SCSI] qla2xxx: Code changes for qla data structure

refactoring')

drivers/scsi/qla2xxx/qla_os.c +2 -2
index 89a53002b585..8d5a67fcffa1 100644
@@ -2536,7 +2536,7 @@ qla2x00_probe_one(struct pci_dev *pdev, const
 struct pci_device_id *id)
 	    ha->flags.enable_64bit_addressing ? "enable" :
 	    "disable");
 	ret = qla2x00_mem_alloc(ha, req_length, rsp_length, &req, &rsp);
-	if (!ret) {
+	if (ret) {
 		ql_log_pci(ql_log_fatal, pdev, 0x0031,
 		    "Failed to allocate memory for adapter, aborting.\n");
@@ -3481,7 +3481,7 @@ qla2x00_mem_alloc(struct qla_hw_data *ha, uint16_t
 req_len, uint16_t rsp_len,
 		    "loop_id_map=%p. \n", ha->loop_id_map);
 	}
 
-	return 1;
+	return 0;
 

fail_async_pd:

	dma_pool_free(ha->s_dma_pool, ha->ex_init_cb, ha->ex_init_cb_dma);