[PATCH 8/8] Staging: unisys: Remove RETINT macro

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The RETINT macro included a goto statement which is not allowed in the
kernel.

Signed-off-by: Ken Cox <jkc@xxxxxxxxxx>
---
 drivers/staging/unisys/include/timskmod.h          |  4 --
 drivers/staging/unisys/uislib/uisqueue.c           |  9 ++--
 .../unisys/visorchannel/visorchannel_funcs.c       | 10 ++--
 drivers/staging/unisys/visorchipset/file.c         | 33 ++++++------
 .../unisys/visorchipset/visorchipset_main.c        | 62 ++++++++++++++--------
 drivers/staging/unisys/visorutil/charqueue.c       | 11 ++--
 6 files changed, 68 insertions(+), 61 deletions(-)

diff --git a/drivers/staging/unisys/include/timskmod.h b/drivers/staging/unisys/include/timskmod.h
index 3f8e6a2..5fd5ad5 100644
--- a/drivers/staging/unisys/include/timskmod.h
+++ b/drivers/staging/unisys/include/timskmod.h
@@ -122,10 +122,6 @@ typedef long VMMIO32;/**< #VMMIO pointing to 32-bit data */
 #define RETTRACE(x)
 #endif
 
-/** return from an int function, using a common exit point "Away"
- *  @param x the value to return
- */
-#define RETINT(x)  do { rc = (x); RETTRACE(x); goto Away; } while (0)
 /** Try to evaulate the provided expression, and do a RETINT(x) iff
  *  the expression evaluates to < 0.
  *  @param x the expression to try
diff --git a/drivers/staging/unisys/uislib/uisqueue.c b/drivers/staging/unisys/uislib/uisqueue.c
index 91b03ed..40598ff 100644
--- a/drivers/staging/unisys/uislib/uisqueue.c
+++ b/drivers/staging/unisys/uislib/uisqueue.c
@@ -28,8 +28,6 @@
 #define CURRENT_FILE_PC UISLIB_PC_uisqueue_c
 #define __MYFILE__ "uisqueue.c"
 
-#define RETINT(x)  do { rc = (x); goto Away; } while (0)
-
 #define CHECK_CACHE_ALIGN 0
 
 /*****************************************************/
@@ -91,13 +89,13 @@ do_locked_client_insert(struct uisqueue_info *queueinfo,
 	locked = 1;
 
 	if (!ULTRA_CHANNEL_CLIENT_ACQUIRE_OS(queueinfo->chan, channelId, NULL))
-		RETINT(0);
+		goto Away;
 
 	acquired = 1;
 
 	queueWasEmpty = visor_signalqueue_empty(queueinfo->chan, whichqueue);
 	if (!visor_signal_insert(queueinfo->chan, whichqueue, pSignal))
-		RETINT(0);
+		goto Away;
 	ULTRA_CHANNEL_CLIENT_RELEASE_OS(queueinfo->chan, channelId, NULL);
 	acquired = 0;
 	spin_unlock_irqrestore(lock, flags);
@@ -105,8 +103,7 @@ do_locked_client_insert(struct uisqueue_info *queueinfo,
 
 	queueinfo->packets_sent++;
 
-	RETINT(1);
-
+	rc = 1;
 Away:
 	if (acquired) {
 		ULTRA_CHANNEL_CLIENT_RELEASE_OS(queueinfo->chan, channelId,
diff --git a/drivers/staging/unisys/visorchannel/visorchannel_funcs.c b/drivers/staging/unisys/visorchannel/visorchannel_funcs.c
index 8a200af..0536816 100644
--- a/drivers/staging/unisys/visorchannel/visorchannel_funcs.c
+++ b/drivers/staging/unisys/visorchannel/visorchannel_funcs.c
@@ -250,7 +250,7 @@ visorchannel_clear(VISORCHANNEL *channel, ulong offset, U8 ch, ulong nbytes)
 
 	if (buf == NULL) {
 		ERRDRV("%s failed memory allocation", __func__);
-		RETINT(-1);
+		goto Away;
 	}
 	memset(buf, ch, bufsize);
 	while (nbytes > 0) {
@@ -260,12 +260,14 @@ visorchannel_clear(VISORCHANNEL *channel, ulong offset, U8 ch, ulong nbytes)
 			thisbytes = nbytes;
 		x = visor_memregion_write(channel->memregion, offset + written,
 					  buf, thisbytes);
-		if (x < 0)
-			RETINT(x);
+		if (x < 0) {
+			rc = x;
+			goto Away;
+		}
 		written += thisbytes;
 		nbytes -= thisbytes;
 	}
-	RETINT(0);
+	rc = 0;
 
 Away:
 	if (buf != NULL) {
diff --git a/drivers/staging/unisys/visorchipset/file.c b/drivers/staging/unisys/visorchipset/file.c
index 839a943..e214a11 100644
--- a/drivers/staging/unisys/visorchipset/file.c
+++ b/drivers/staging/unisys/visorchipset/file.c
@@ -71,7 +71,7 @@ visorchipset_file_init(dev_t majorDev, VISORCHANNEL **pControlVm_channel)
 		if (alloc_chrdev_region(&MajorDev, 0, 1, MYDRVNAME) < 0) {
 			ERRDRV("Unable to allocate+register char device %s",
 			       MYDRVNAME);
-			RETINT(-1);
+			goto Away;
 		}
 		Registered = TRUE;
 		INFODRV("New major number %d registered\n", MAJOR(MajorDev));
@@ -79,19 +79,18 @@ visorchipset_file_init(dev_t majorDev, VISORCHANNEL **pControlVm_channel)
 		/* static major device number registration required */
 		if (register_chrdev_region(MajorDev, 1, MYDRVNAME) < 0) {
 			ERRDRV("Unable to register char device %s", MYDRVNAME);
-			RETINT(-1);
+			goto Away;
 		}
 		Registered = TRUE;
 		INFODRV("Static major number %d registered\n", MAJOR(MajorDev));
 	}
 	if (cdev_add(&Cdev, MKDEV(MAJOR(MajorDev), 0), 1) < 0) {
-		ERRDRV("failed to create char device: (status=-1)\n");
-		rc = -1;
+		ERRDRV("failed to create char device: (status=%d)\n", rc);
 		goto Away;
 	}
 	INFODRV("Registered char device for %s (major=%d)",
 		MYDRVNAME, MAJOR(MajorDev));
-	RETINT(0);
+	rc = 0;
 Away:
 	return rc;
 }
@@ -119,9 +118,9 @@ visorchipset_open(struct inode *inode, struct file *file)
 
 	DEBUGDRV("%s", __func__);
 	if (minor_number != 0)
-		RETINT(-ENODEV);
+		goto Away;
 	file->private_data = NULL;
-	RETINT(0);
+	rc = 0;
 Away:
 	if (rc < 0)
 		ERRDRV("%s minor=%d failed", __func__, minor_number);
@@ -131,11 +130,8 @@ Away:
 static int
 visorchipset_release(struct inode *inode, struct file *file)
 {
-	int rc = -1;
 	DEBUGDRV("%s", __func__);
-	RETINT(0);
-Away:
-	return rc;
+	return 0;
 }
 
 static int
@@ -202,25 +198,28 @@ visorchipset_ioctl(struct inode *inode, struct file *file,
 		/* get the physical rtc offset */
 		vrtc_offset = Issue_VMCALL_QUERY_GUEST_VIRTUAL_TIME_OFFSET();
 		if (copy_to_user
-		    ((void __user *)arg, &vrtc_offset, sizeof(vrtc_offset)))
-			RETINT(-EFAULT);
+		    ((void __user *)arg, &vrtc_offset, sizeof(vrtc_offset))) {
+			rc = -EFAULT;
+			goto Away;
+		}
 		DBGINF("insde visorchipset_ioctl, cmd=%d, vrtc_offset=%lld",
 		       cmd, vrtc_offset);
 		break;
 	case VMCALL_UPDATE_PHYSICAL_TIME:
 		if (copy_from_user
-		    (&adjustment, (void __user *)arg, sizeof(adjustment)))
-			RETINT(-EFAULT);
+		    (&adjustment, (void __user *)arg, sizeof(adjustment))) {
+			rc = -EFAULT;
+			goto Away;
+		}
 		DBGINF("insde visorchipset_ioctl, cmd=%d, adjustment=%lld", cmd,
 		       adjustment);
 		rc = Issue_VMCALL_UPDATE_PHYSICAL_TIME(adjustment);
 		break;
 	default:
 		LOGERR("visorchipset_ioctl received invalid command");
-		RETINT(-EFAULT);
+		rc = -EFAULT;
 		break;
 	}
-	RETINT(rc);
 Away:
 	DBGINF("exiting %d!", rc);
 	return rc;
diff --git a/drivers/staging/unisys/visorchipset/visorchipset_main.c b/drivers/staging/unisys/visorchipset/visorchipset_main.c
index b2355d9..8252ca1 100644
--- a/drivers/staging/unisys/visorchipset/visorchipset_main.c
+++ b/drivers/staging/unisys/visorchipset/visorchipset_main.c
@@ -631,7 +631,8 @@ chipset_init(CONTROLVM_MESSAGE *inmsg)
 	POSTCODE_LINUX_2(CHIPSET_INIT_ENTRY_PC, POSTCODE_SEVERITY_INFO);
 	if (chipset_inited) {
 		LOGERR("CONTROLVM_CHIPSET_INIT Failed: Already Done.");
-		RETINT(-CONTROLVM_RESP_ERROR_ALREADY_DONE);
+		rc = -CONTROLVM_RESP_ERROR_ALREADY_DONE;
+		goto Away;
 	}
 	chipset_inited = 1;
 	POSTCODE_LINUX_2(CHIPSET_INIT_EXIT_PC, POSTCODE_SEVERITY_INFO);
@@ -1079,7 +1080,8 @@ bus_create(CONTROLVM_MESSAGE *inmsg)
 		       busNo);
 		POSTCODE_LINUX_3(BUS_CREATE_FAILURE_PC, busNo,
 				 POSTCODE_SEVERITY_ERR);
-		RETINT(-CONTROLVM_RESP_ERROR_ALREADY_DONE);
+		rc = -CONTROLVM_RESP_ERROR_ALREADY_DONE;
+		goto Away;
 	}
 	pBusInfo = kzalloc(sizeof(VISORCHIPSET_BUS_INFO), GFP_KERNEL);
 	if (pBusInfo == NULL) {
@@ -1087,7 +1089,8 @@ bus_create(CONTROLVM_MESSAGE *inmsg)
 		       busNo);
 		POSTCODE_LINUX_3(BUS_CREATE_FAILURE_PC, busNo,
 				 POSTCODE_SEVERITY_ERR);
-		RETINT(-CONTROLVM_RESP_ERROR_KMALLOC_FAILED);
+		rc = -CONTROLVM_RESP_ERROR_KMALLOC_FAILED;
+		goto Away;
 	}
 
 	INIT_LIST_HEAD(&pBusInfo->entry);
@@ -1127,12 +1130,14 @@ bus_destroy(CONTROLVM_MESSAGE *inmsg)
 	pBusInfo = findbus(&BusInfoList, busNo);
 	if (!pBusInfo) {
 		LOGERR("CONTROLVM_BUS_DESTROY Failed: bus %lu invalid", busNo);
-		RETINT(-CONTROLVM_RESP_ERROR_BUS_INVALID);
+		rc = -CONTROLVM_RESP_ERROR_BUS_INVALID;
+		goto Away;
 	}
 	if (pBusInfo->state.created == 0) {
 		LOGERR("CONTROLVM_BUS_DESTROY Failed: bus %lu already destroyed",
 		     busNo);
-		RETINT(-CONTROLVM_RESP_ERROR_ALREADY_DONE);
+		rc = -CONTROLVM_RESP_ERROR_ALREADY_DONE;
+		goto Away;
 	}
 
 Away:
@@ -1158,14 +1163,16 @@ bus_configure(CONTROLVM_MESSAGE *inmsg, PARSER_CONTEXT *parser_ctx)
 		       busNo);
 		POSTCODE_LINUX_3(BUS_CONFIGURE_FAILURE_PC, busNo,
 				 POSTCODE_SEVERITY_ERR);
-		RETINT(-CONTROLVM_RESP_ERROR_BUS_INVALID);
+		rc = -CONTROLVM_RESP_ERROR_BUS_INVALID;
+		goto Away;
 	}
 	if (pBusInfo->state.created == 0) {
 		LOGERR("CONTROLVM_BUS_CONFIGURE Failed: Invalid bus %lu - not created yet",
 		     busNo);
 		POSTCODE_LINUX_3(BUS_CONFIGURE_FAILURE_PC, busNo,
 				 POSTCODE_SEVERITY_ERR);
-		RETINT(-CONTROLVM_RESP_ERROR_BUS_INVALID);
+		rc = -CONTROLVM_RESP_ERROR_BUS_INVALID;
+		goto Away;
 	}
 	/* TBD - add this check to other commands also... */
 	if (pBusInfo->pendingMsgHdr.Id != CONTROLVM_INVALID) {
@@ -1173,7 +1180,8 @@ bus_configure(CONTROLVM_MESSAGE *inmsg, PARSER_CONTEXT *parser_ctx)
 		     busNo, (uint) pBusInfo->pendingMsgHdr.Id);
 		POSTCODE_LINUX_3(BUS_CONFIGURE_FAILURE_PC, busNo,
 				 POSTCODE_SEVERITY_ERR);
-		RETINT(-CONTROLVM_RESP_ERROR_MESSAGE_ID_INVALID_FOR_CLIENT);
+		rc = -CONTROLVM_RESP_ERROR_MESSAGE_ID_INVALID_FOR_CLIENT;
+		goto Away;
 	}
 
 	pBusInfo->partitionHandle = cmd->configureBus.guestHandle;
@@ -1189,7 +1197,8 @@ bus_configure(CONTROLVM_MESSAGE *inmsg, PARSER_CONTEXT *parser_ctx)
 		     busNo);
 		POSTCODE_LINUX_3(BUS_CONFIGURE_FAILURE_PC, busNo,
 				 POSTCODE_SEVERITY_ERR);
-		RETINT(-CONTROLVM_RESP_ERROR_KMALLOC_FAILED);
+		rc = -CONTROLVM_RESP_ERROR_KMALLOC_FAILED;
+		goto Away;
 	}
 	POSTCODE_LINUX_3(BUS_CONFIGURE_EXIT_PC, busNo, POSTCODE_SEVERITY_INFO);
 Away:
@@ -1213,7 +1222,8 @@ my_device_create(CONTROLVM_MESSAGE *inmsg)
 		     busNo, devNo);
 		POSTCODE_LINUX_4(DEVICE_CREATE_FAILURE_PC, devNo, busNo,
 				 POSTCODE_SEVERITY_ERR);
-		RETINT(-CONTROLVM_RESP_ERROR_ALREADY_DONE);
+		rc = -CONTROLVM_RESP_ERROR_ALREADY_DONE;
+		goto Away;
 	}
 	pBusInfo = findbus(&BusInfoList, busNo);
 	if (!pBusInfo) {
@@ -1221,14 +1231,16 @@ my_device_create(CONTROLVM_MESSAGE *inmsg)
 		     busNo);
 		POSTCODE_LINUX_4(DEVICE_CREATE_FAILURE_PC, devNo, busNo,
 				 POSTCODE_SEVERITY_ERR);
-		RETINT(-CONTROLVM_RESP_ERROR_BUS_INVALID);
+		rc = -CONTROLVM_RESP_ERROR_BUS_INVALID;
+		goto Away;
 	}
 	if (pBusInfo->state.created == 0) {
 		LOGERR("CONTROLVM_DEVICE_CREATE Failed: Invalid bus %lu - not created yet",
 		     busNo);
 		POSTCODE_LINUX_4(DEVICE_CREATE_FAILURE_PC, devNo, busNo,
 				 POSTCODE_SEVERITY_ERR);
-		RETINT(-CONTROLVM_RESP_ERROR_BUS_INVALID);
+		rc = -CONTROLVM_RESP_ERROR_BUS_INVALID;
+		goto Away;
 	}
 	pDevInfo = kzalloc(sizeof(VISORCHIPSET_DEVICE_INFO), GFP_KERNEL);
 	if (pDevInfo == NULL) {
@@ -1236,7 +1248,8 @@ my_device_create(CONTROLVM_MESSAGE *inmsg)
 		     busNo, devNo);
 		POSTCODE_LINUX_4(DEVICE_CREATE_FAILURE_PC, devNo, busNo,
 				 POSTCODE_SEVERITY_ERR);
-		RETINT(-CONTROLVM_RESP_ERROR_KMALLOC_FAILED);
+		rc = -CONTROLVM_RESP_ERROR_KMALLOC_FAILED;
+		goto Away;
 	}
 
 	INIT_LIST_HEAD(&pDevInfo->entry);
@@ -1287,14 +1300,15 @@ my_device_changestate(CONTROLVM_MESSAGE *inmsg)
 		     busNo, devNo);
 		POSTCODE_LINUX_4(DEVICE_CHANGESTATE_FAILURE_PC, devNo, busNo,
 				 POSTCODE_SEVERITY_ERR);
-		RETINT(-CONTROLVM_RESP_ERROR_DEVICE_INVALID);
+		rc = -CONTROLVM_RESP_ERROR_DEVICE_INVALID;
+		goto Away;
 	}
 	if (pDevInfo->state.created == 0) {
 		LOGERR("CONTROLVM_DEVICE_CHANGESTATE Failed: busNo=%lu, devNo=%lu invalid (not created)",
 		     busNo, devNo);
 		POSTCODE_LINUX_4(DEVICE_CHANGESTATE_FAILURE_PC, devNo, busNo,
 				 POSTCODE_SEVERITY_ERR);
-		RETINT(-CONTROLVM_RESP_ERROR_DEVICE_INVALID);
+		rc = -CONTROLVM_RESP_ERROR_DEVICE_INVALID;
 	}
 Away:
 	if ((rc >= CONTROLVM_RESP_SUCCESS) && pDevInfo)
@@ -1317,12 +1331,13 @@ my_device_destroy(CONTROLVM_MESSAGE *inmsg)
 	if (!pDevInfo) {
 		LOGERR("CONTROLVM_DEVICE_DESTROY Failed: busNo=%lu, devNo=%lu invalid",
 		     busNo, devNo);
-		RETINT(-CONTROLVM_RESP_ERROR_DEVICE_INVALID);
+		rc = -CONTROLVM_RESP_ERROR_DEVICE_INVALID;
+		goto Away;
 	}
 	if (pDevInfo->state.created == 0) {
 		LOGERR("CONTROLVM_DEVICE_DESTROY Failed: busNo=%lu, devNo=%lu already destroyed",
 		     busNo, devNo);
-		RETINT(-CONTROLVM_RESP_ERROR_ALREADY_DONE);
+		rc = -CONTROLVM_RESP_ERROR_ALREADY_DONE;
 	}
 
 Away:
@@ -1349,19 +1364,22 @@ initialize_controlvm_payload_info(HOSTADDRESS phys_addr, U64 offset, U32 bytes,
 	if (info == NULL) {
 		LOGERR("HUH ? CONTROLVM_PAYLOAD_INIT Failed : Programmer check at %s:%d",
 		     __FILE__, __LINE__);
-		RETINT(-CONTROLVM_RESP_ERROR_PAYLOAD_INVALID);
+		rc = -CONTROLVM_RESP_ERROR_PAYLOAD_INVALID;
+		goto Away;
 	}
 	memset(info, 0, sizeof(CONTROLVM_PAYLOAD_INFO));
 	if ((offset == 0) || (bytes == 0)) {
 		LOGERR("CONTROLVM_PAYLOAD_INIT Failed: RequestPayloadOffset=%llu RequestPayloadBytes=%llu!",
 		     (u64) offset, (u64) bytes);
-		RETINT(-CONTROLVM_RESP_ERROR_PAYLOAD_INVALID);
+		rc = -CONTROLVM_RESP_ERROR_PAYLOAD_INVALID;
+		goto Away;
 	}
 	payload = ioremap_cache(phys_addr + offset, bytes);
 	if (payload == NULL) {
 		LOGERR("CONTROLVM_PAYLOAD_INIT Failed: ioremap_cache %llu for %llu bytes failed",
 		     (u64) offset, (u64) bytes);
-		RETINT(-CONTROLVM_RESP_ERROR_IOREMAP_FAILED);
+		rc = -CONTROLVM_RESP_ERROR_IOREMAP_FAILED;
+		goto Away;
 	}
 
 	info->offset = offset;
@@ -2796,10 +2814,8 @@ visorchipset_init(void)
 	}
 	LOGINF("visorchipset device created");
 	POSTCODE_LINUX_2(CHIPSET_INIT_SUCCESS_PC, POSTCODE_SEVERITY_INFO);
-	RETINT(0);
-
+	rc = 0;
 Away:
-
 	if (rc) {
 		LOGERR("visorchipset_init failed");
 		POSTCODE_LINUX_3(CHIPSET_INIT_FAILURE_PC, rc,
diff --git a/drivers/staging/unisys/visorutil/charqueue.c b/drivers/staging/unisys/visorutil/charqueue.c
index c1375ed..0ceede1 100644
--- a/drivers/staging/unisys/visorutil/charqueue.c
+++ b/drivers/staging/unisys/visorutil/charqueue.c
@@ -98,11 +98,10 @@ static int charqueue_dequeue_1(CHARQUEUE *charqueue)
 
 int charqueue_dequeue(CHARQUEUE *charqueue)
 {
-	int rc = -1;
+	int rc;
 
 	spin_lock(&charqueue->lock);
-	RETINT(charqueue_dequeue_1(charqueue));
-Away:
+	rc = charqueue_dequeue_1(charqueue);
 	spin_unlock(&charqueue->lock);
 	return rc;
 }
@@ -111,7 +110,7 @@ Away:
 
 int visor_charqueue_dequeue_n(CHARQUEUE *charqueue, unsigned char *buf, int n)
 {
-	int rc = -1, counter = 0, c;
+	int rc, counter = 0, c;
 
 	spin_lock(&charqueue->lock);
 	for (;;) {
@@ -125,9 +124,7 @@ int visor_charqueue_dequeue_n(CHARQUEUE *charqueue, unsigned char *buf, int n)
 		n--;
 		counter++;
 	}
-	RETINT(counter);
-
-Away:
+	rc = counter;
 	spin_unlock(&charqueue->lock);
 	return rc;
 }
-- 
1.8.5.3

_______________________________________________
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxx
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel




[Index of Archives]     [Linux Driver Backports]     [DMA Engine]     [Linux GPIO]     [Linux SPI]     [Video for Linux]     [Linux USB Devel]     [Linux Coverity]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]
  Powered by Linux