Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ddcae017 authored by Tomas Henzl's avatar Tomas Henzl Committed by Christoph Hellwig
Browse files

esas2r: fir error handling in do_fm_api



This patch fixes an error path and rearranges error handling.

Signed-off-by: default avatarTomas Henzl <thenzl@redhat.com>
Acked-by: default avatarBradley Grove <bgrove@attotech.com>
Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
parent 71bd849d
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -117,9 +117,8 @@ static void do_fm_api(struct esas2r_adapter *a, struct esas2r_flash_img *fi)

	rq = esas2r_alloc_request(a);
	if (rq == NULL) {
		up(&a->fm_api_semaphore);
		fi->status = FI_STAT_BUSY;
		return;
		goto free_sem;
	}

	if (fi == &a->firmware.header) {
@@ -135,7 +134,7 @@ static void do_fm_api(struct esas2r_adapter *a, struct esas2r_flash_img *fi)
		if (a->firmware.header_buff == NULL) {
			esas2r_debug("failed to allocate header buffer!");
			fi->status = FI_STAT_BUSY;
			return;
			goto free_req;
		}

		memcpy(a->firmware.header_buff, fi,
@@ -171,9 +170,10 @@ static void do_fm_api(struct esas2r_adapter *a, struct esas2r_flash_img *fi)
				  a->firmware.header_buff,
				  (dma_addr_t)a->firmware.header_buff_phys);
	}

	up(&a->fm_api_semaphore);
free_req:
	esas2r_free_request(a, (struct esas2r_request *)rq);
free_sem:
	up(&a->fm_api_semaphore);
	return;

}