[SCSI] lpfc 8.3.32: lpfc_sli.c: add missing jumps to mempool_free
authorJames Smart <james.smart@emulex.com>
Tue, 12 Jun 2012 17:54:02 +0000 (13:54 -0400)
committerJames Bottomley <JBottomley@Parallels.com>
Fri, 20 Jul 2012 07:58:25 +0000 (08:58 +0100)
Incorporate patch originally supplied by Julia Lawall <Julia.Lawall@lip6.fr>
http://marc.info/?l=linux-scsi&m=133572879711140&w=2

"It appears that mempool_free should be performed on these failures as on
 the other exists from the containing functions."

Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
Acked-by: Alex Iannicelli <alex.iannicelli@emulex.com>
Signed-off-by: James Smart <james.smart@emulex.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
drivers/scsi/lpfc/lpfc_sli.c

index b4720a1..aace596 100644 (file)
@@ -12228,8 +12228,10 @@ lpfc_cq_create(struct lpfc_hba *phba, struct lpfc_queue *cq,
                lpfc_printf_log(phba, KERN_ERR, LOG_SLI,
                                "0361 Unsupported CQ count. (%d)\n",
                                cq->entry_count);
-               if (cq->entry_count < 256)
-                       return -EINVAL;
+               if (cq->entry_count < 256) {
+                       status = -EINVAL;
+                       goto out;
+               }
                /* otherwise default to smallest count (drop through) */
        case 256:
                bf_set(lpfc_cq_context_count, &cq_create->u.request.context,
@@ -12420,8 +12422,10 @@ lpfc_mq_create(struct lpfc_hba *phba, struct lpfc_queue *mq,
                lpfc_printf_log(phba, KERN_ERR, LOG_SLI,
                                "0362 Unsupported MQ count. (%d)\n",
                                mq->entry_count);
-               if (mq->entry_count < 16)
-                       return -EINVAL;
+               if (mq->entry_count < 16) {
+                       status = -EINVAL;
+                       goto out;
+               }
                /* otherwise default to smallest count (drop through) */
        case 16:
                bf_set(lpfc_mq_context_ring_size,
@@ -12710,8 +12714,10 @@ lpfc_rq_create(struct lpfc_hba *phba, struct lpfc_queue *hrq,
                        lpfc_printf_log(phba, KERN_ERR, LOG_SLI,
                                        "2535 Unsupported RQ count. (%d)\n",
                                        hrq->entry_count);
-                       if (hrq->entry_count < 512)
-                               return -EINVAL;
+                       if (hrq->entry_count < 512) {
+                               status = -EINVAL;
+                               goto out;
+                       }
                        /* otherwise default to smallest count (drop through) */
                case 512:
                        bf_set(lpfc_rq_context_rqe_count,
@@ -12791,8 +12797,10 @@ lpfc_rq_create(struct lpfc_hba *phba, struct lpfc_queue *hrq,
                        lpfc_printf_log(phba, KERN_ERR, LOG_SLI,
                                        "2536 Unsupported RQ count. (%d)\n",
                                        drq->entry_count);
-                       if (drq->entry_count < 512)
-                               return -EINVAL;
+                       if (drq->entry_count < 512) {
+                               status = -EINVAL;
+                               goto out;
+                       }
                        /* otherwise default to smallest count (drop through) */
                case 512:
                        bf_set(lpfc_rq_context_rqe_count,