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

Commit d9355f89 authored by Ken Cox's avatar Ken Cox Committed by Greg Kroah-Hartman
Browse files

Staging: unisys: Remove RETPTR macro



The RETPTR macro contained a goto statement which is not allowed in
the kernel.

Signed-off-by: default avatarKen Cox <jkc@redhat.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 61e03b43
Loading
Loading
Loading
Loading
+0 −4
Original line number Diff line number Diff line
@@ -128,10 +128,6 @@ typedef long VMMIO32;/**< #VMMIO pointing to 32-bit data */
 *  @param x the value to return
 */
#define RETINT(x)  do { rc = (x); RETTRACE(x); goto Away; } while (0)
/** return from a void* function, using a common exit point "Away"
 *  @param x the value to return
 */
#define RETPTR(x)  do { rc = (x); RETTRACE(x); goto Away; } while (0)
/** Given a typedef/struct/union and a member field name,
 *  return the number of bytes occupied by that field.
 *  @param TYPE     the typedef name, or "struct xx" or "union xx"
+7 −4
Original line number Diff line number Diff line
@@ -270,24 +270,27 @@ init_vbus_channel(U64 channelAddr, U32 channelBytes, int isServer)
		LOGERR("CONTROLVM_BUS_CREATE error: ioremap_cache of channelAddr:%Lx for channelBytes:%llu failed",
		     (unsigned long long) channelAddr,
		     (unsigned long long) channelBytes);
		RETPTR(NULL);
		rc = NULL;
		goto Away;
	}
	if (isServer) {
		memset_io(pChan, 0, channelBytes);
		if (!ULTRA_VBUS_CHANNEL_OK_SERVER(channelBytes, NULL)) {
			ERRDRV("%s channel cannot be used", __func__);
			uislib_iounmap(pChan);
			RETPTR(NULL);
			rc = NULL;
			goto Away;
		}
		ULTRA_VBUS_init_channel(pChan, channelBytes);
	} else {
		if (!ULTRA_VBUS_CHANNEL_OK_CLIENT(pChan, NULL)) {
			ERRDRV("%s channel cannot be used", __func__);
			uislib_iounmap(pChan);
			RETPTR(NULL);
			rc = NULL;
			goto Away;
		}
	}
	RETPTR(pChan);
	rc = pChan;
Away:
	return rc;
}
+0 −1
Original line number Diff line number Diff line
@@ -30,7 +30,6 @@

#define RETVOID    do { goto Away; } while (0)
#define RETINT(x)  do { rc = (x); goto Away; } while (0)
#define RETPTR(x)  do { rc = (x); goto Away; } while (0)

#define CHECK_CACHE_ALIGN 0

+1 −2
Original line number Diff line number Diff line
@@ -89,8 +89,7 @@ visorchannel_create_guts(HOSTADDRESS physaddr, ulong channelBytes,
	p->size = channelBytes;
	p->guid = guid;

	RETPTR(p);

	rc = p;
Away:

	if (rc == NULL) {
+23 −13
Original line number Diff line number Diff line
@@ -63,7 +63,8 @@ parser_init_guts(U64 addr, U32 bytes, BOOL isLocal,
		       MAX_CONTROLVM_PAYLOAD_BYTES);
		if (tryAgain)
			*tryAgain = TRUE;
		RETPTR(NULL);
		rc = NULL;
		goto Away;
	}
	ctx = kzalloc(allocbytes, GFP_KERNEL|__GFP_NORETRY);
	if (ctx == NULL) {
@@ -71,7 +72,8 @@ parser_init_guts(U64 addr, U32 bytes, BOOL isLocal,
		       __func__, __FILE__, __LINE__, allocbytes);
		if (tryAgain)
			*tryAgain = TRUE;
		RETPTR(NULL);
		rc = NULL;
		goto Away;
	}

	ctx->allocbytes = allocbytes;
@@ -85,45 +87,53 @@ parser_init_guts(U64 addr, U32 bytes, BOOL isLocal,
			ERRDRV("%s - bad local address (0x%-16.16Lx for %lu)",
			       __func__,
			       (unsigned long long) addr, (ulong) bytes);
			RETPTR(NULL);
			rc = NULL;
			goto Away;
		}
		p = __va((ulong) (addr));
		memcpy(ctx->data, p, bytes);
	} else {
		rgn = visor_memregion_create(addr, bytes);
		if (!rgn)
			RETPTR(NULL);
		if (visor_memregion_read(rgn, 0, ctx->data, bytes) < 0)
			RETPTR(NULL);
		if (!rgn) {
			rc = NULL;
			goto Away;
		}
		if (visor_memregion_read(rgn, 0, ctx->data, bytes) < 0) {
			rc = NULL;
			goto Away;
		}
	}
	if (!hasStandardPayloadHeader) {
		ctx->byte_stream = TRUE;
		RETPTR(ctx);
		rc = ctx;
		goto Away;
	}
	phdr = (ULTRA_CONTROLVM_PARAMETERS_HEADER *) (ctx->data);
	if (phdr->TotalLength != bytes) {
		ERRDRV("%s - bad total length %lu (should be %lu)",
		       __func__,
		       (ulong) (phdr->TotalLength), (ulong) (bytes));
		RETPTR(NULL);
		rc = NULL;
		goto Away;
	}
	if (phdr->TotalLength < phdr->HeaderLength) {
		ERRDRV("%s - total length < header length (%lu < %lu)",
		       __func__,
		       (ulong) (phdr->TotalLength),
		       (ulong) (phdr->HeaderLength));
		RETPTR(NULL);
		rc = NULL;
		goto Away;
	}
	if (phdr->HeaderLength < sizeof(ULTRA_CONTROLVM_PARAMETERS_HEADER)) {
		ERRDRV("%s - header is too small (%lu < %lu)",
		       __func__,
		       (ulong) (phdr->HeaderLength),
		       (ulong) (sizeof(ULTRA_CONTROLVM_PARAMETERS_HEADER)));
		RETPTR(NULL);
		rc = NULL;
		goto Away;
	}

	RETPTR(ctx);

	rc = ctx;
Away:
	if (rgn) {
		visor_memregion_destroy(rgn);
Loading