diff --git a/libsel4bench/include/sel4bench/kernel_logging.h b/libsel4bench/include/sel4bench/kernel_logging.h
index 441ce63..b00fa94 100644
--- a/libsel4bench/include/sel4bench/kernel_logging.h
+++ b/libsel4bench/include/sel4bench/kernel_logging.h
@@ -34,8 +34,7 @@
 unsigned int kernel_logging_sync_log(kernel_log_entry_t log[], unsigned int n);
 
 /* Returns the key field of a log entry. */
-static inline seL4_Word
-kernel_logging_entry_get_key(kernel_log_entry_t *entry)
+static inline seL4_Word kernel_logging_entry_get_key(kernel_log_entry_t *entry)
 {
 #if CONFIG_MAX_NUM_TRACE_POINTS > 0
     return entry->id;
@@ -45,8 +44,7 @@
 }
 
 /* Sets the key field of a log entry to a given value. */
-static inline void
-kernel_logging_entry_set_key(kernel_log_entry_t *entry, seL4_Word key)
+static inline void kernel_logging_entry_set_key(kernel_log_entry_t *entry, seL4_Word key)
 {
 #if CONFIG_MAX_NUM_TRACE_POINTS > 0
     entry->id = key;
@@ -54,8 +52,7 @@
 }
 
 /* Returns the data field of a log entry. */
-static inline seL4_Word
-kernel_logging_entry_get_data(kernel_log_entry_t *entry)
+static inline seL4_Word kernel_logging_entry_get_data(kernel_log_entry_t *entry)
 {
 #if CONFIG_MAX_NUM_TRACE_POINTS > 0
     return entry->duration;
@@ -65,8 +62,7 @@
 }
 
 /* Sets the data field of a log entry to a given value. */
-static inline void
-kernel_logging_entry_set_data(kernel_log_entry_t *entry, seL4_Word data)
+static inline void kernel_logging_entry_set_data(kernel_log_entry_t *entry, seL4_Word data)
 {
 #if CONFIG_MAX_NUM_TRACE_POINTS > 0
     entry->duration = data;
@@ -74,8 +70,7 @@
 }
 
 /* Resets the log buffer to contain no entries. */
-static inline void
-kernel_logging_reset_log(void)
+static inline void kernel_logging_reset_log(void)
 {
 #ifdef CONFIG_ENABLE_BENCHMARKS
     seL4_BenchmarkResetLog();
@@ -85,8 +80,7 @@
 /* Calls to kernel_logging_sync_log will extract entries created before
  * the most-recent call to this function. Call this function before calling
  * kernel_logging_sync_log. */
-static inline void
-kernel_logging_finalize_log(void)
+static inline void kernel_logging_finalize_log(void)
 {
 #ifdef CONFIG_ENABLE_BENCHMARKS
     seL4_BenchmarkFinalizeLog();
@@ -99,8 +93,7 @@
  *
  * @logBuffer_cap should be a cap of a large frame size.
  */
-static inline seL4_Error
-kernel_logging_set_log_buffer(seL4_CPtr logBuffer_cap)
+static inline seL4_Error kernel_logging_set_log_buffer(seL4_CPtr logBuffer_cap)
 {
 #ifdef CONFIG_KERNEL_LOG_BUFFER
     return seL4_BenchmarkSetLogBuffer(logBuffer_cap);
