diff --git a/src/signaltest/signaltest.8 b/src/signaltest/signaltest.8
index bd6ffe5c7a36..dc3eaab2293a 100644
--- a/src/signaltest/signaltest.8
+++ b/src/signaltest/signaltest.8
@@ -1,11 +1,11 @@
 .\"
-.TH SIGNALTEST 8 "October 1, 2015"
+.TH SIGNALTEST 8 "September 18, 2020"
 .\" Please adjust this date whenever updating this manpage
 .SH NAME
 signaltest \- signal roundtrip test software
 .SH SYNOPSIS
-.B signaltest
-.RI "[ \-b USEC ] [ \-l LOOPS ] [ \-p PRIO] [ \-q ] [ \-t NUM ] [ \-m ] [ \-v ] [ \-\-help ]"
+.LP
+signaltest [ -b|--backtrace USEC ] [-D|--duration TIME] [-h|--help] [-l|--loops LOOPS ] [-p|--prio PRIO] [-q|--quiet] [-t|--threads NUM] [-m|--mlockall ] [-v|--verbose ]
 .SH OPTIONS
 These programs follow the usual GNU command line syntax, with long options
 starting with two dashes ('\-\-').
@@ -18,6 +18,10 @@ Specify a length for the test run.
 .br
 Append 'm', 'h', or 'd' to specify minutes, hours or days.
 .TP
+.B \-\-help
+.br
+display usage information
+.TP
 .B \-l, \-\-loops=LOOPS
 Number of loops: default=0 (endless)
 .TP
@@ -37,9 +41,6 @@ lock current and future memory allocations
 output values on stdout for statistics
 .br
 format: n:c:v n=tasknum c=count v=value in us
-.TP
-.B \-\-help
-display usage information
 .SH AUTHOR
 signaltest was written by Thomas Gleixner <tglx@linuxtronix.de>.
 .PP
diff --git a/src/signaltest/signaltest.c b/src/signaltest/signaltest.c
index a67eddaf8420..c718f8676b9f 100644
--- a/src/signaltest/signaltest.c
+++ b/src/signaltest/signaltest.c
@@ -180,23 +180,25 @@ void *signalthread(void *param)
 
 
 /* Print usage information */
-static void display_help(void)
+static void display_help(int error)
 {
 	printf("signaltest V %1.2f\n", VERSION);
 	printf("Usage:\n"
 		"signaltest <options>\n\n"
 		"-b USEC  --breaktrace=USEC send break trace command when latency > USEC\n"
-		"-l LOOPS --loops=LOOPS     number of loops: default=0(endless)\n"
 		"-D       --duration=TIME   specify a length for the test run.\n"
-		"                           Append 'm', 'h', or 'd' to specify minutes, hours or days.\n"
+		"                           Append 'm', 'h', or 'd' to specify minutes, hours or\n"
+		"                           days.\n"
+		"-h       --help            display usage information\n"
+		"-l LOOPS --loops=LOOPS     number of loops: default=0(endless)\n"
+		"-m       --mlockall        lock current and future memory allocations\n"
 		"-p PRIO  --prio=PRIO       priority of highest prio thread\n"
 		"-q       --quiet           print a summary only on exit\n"
 		"-t NUM   --threads=NUM     number of threads: default=2\n"
-		"-m       --mlockall        lock current and future memory allocations\n"
 		"-v       --verbose         output values on stdout for statistics\n"
 		"                           format: n:c:v n=tasknum c=count v=value in us\n"
-		"--help			    display usage information\n");
-	exit(0);
+		);
+	exit(error);
 }
 
 static int priority;
@@ -208,38 +210,39 @@ static int quiet;
 static int lockall = 0;
 
 /* Process commandline options */
-static void process_options (int argc, char *argv[])
+static void process_options(int argc, char *argv[])
 {
 	int error = 0;
 	for (;;) {
 		int option_index = 0;
 		/** Options for getopt */
 		static struct option long_options[] = {
-			{"breaktrace", required_argument, NULL, 'b'},
-			{"loops", required_argument, NULL, 'l'},
-			{"duration", required_argument, NULL, 'D'},
-			{"priority", required_argument, NULL, 'p'},
-			{"quiet", no_argument, NULL, 'q'},
-			{"threads", required_argument, NULL, 't'},
-			{"verbose", no_argument, NULL, 'v'},
-			{"mlockall", no_argument, NULL, 'm'},
-			{"help", no_argument, NULL, '?'},
+			{"breaktrace",		required_argument,	NULL, 'b'},
+			{"duration",		required_argument,	NULL, 'D'},
+			{"help",		no_argument,		NULL, 'h'},
+			{"loops",		required_argument,	NULL, 'l'},
+			{"mlockall",		no_argument,		NULL, 'm'},
+			{"priority",		required_argument,	NULL, 'p'},
+			{"quiet",		no_argument,		NULL, 'q'},
+			{"threads",		required_argument,	NULL, 't'},
+			{"verbose",		no_argument,		NULL, 'v'},
 			{NULL, 0, NULL, 0}
 		};
-		int c = getopt_long (argc, argv, "b:c:d:i:l:D:np:qrsmt:v",
-			long_options, &option_index);
+		int c = getopt_long(argc, argv, "b:D:hl:mp:qt:v",
+				long_options, &option_index);
 		if (c == -1)
 			break;
 		switch (c) {
 		case 'b': tracelimit = atoi(optarg); break;
-		case 'l': max_cycles = atoi(optarg); break;
 		case 'D': duration = parse_time_string(optarg); break;
+		case '?':
+		case 'h': display_help(0); break;
+		case 'l': max_cycles = atoi(optarg); break;
+		case 'm': lockall = 1; break;
 		case 'p': priority = atoi(optarg); break;
 		case 'q': quiet = 1; break;
 		case 't': num_threads = atoi(optarg); break;
-		case 'm': lockall = 1; break;
 		case 'v': verbose = 1; break;
-		case '?': error = 1; break;
 		}
 	}
 
@@ -253,7 +256,7 @@ static void process_options (int argc, char *argv[])
 		error = 1;
 
 	if (error)
-		display_help ();
+		display_help(error);
 }
 
 static void check_kernel(void)
