[PATCH 08/14] drivers/firmware/sdei: Cleanup on cross call functions

Gavin Shan gshan at redhat.com
Mon Jul 6 01:47:26 EDT 2020


This applies cleanup on the corss call functions, no functional
changes is introduced:

   * Cleanup struct sdei_crosscall_arg to use tab between fields
     and their types.
   * Move sdei_cross_call_return() ahead of sdei_do_cross_call().
   * Refactor CROSSCALL_INIT to use "do { ... } while (0)".

Signed-off-by: Gavin Shan <gshan at redhat.com>
---
 drivers/firmware/arm_sdei.c | 29 ++++++++++++++++-------------
 1 file changed, 16 insertions(+), 13 deletions(-)

diff --git a/drivers/firmware/arm_sdei.c b/drivers/firmware/arm_sdei.c
index e3efea40df88..3393f1650b20 100644
--- a/drivers/firmware/arm_sdei.c
+++ b/drivers/firmware/arm_sdei.c
@@ -73,14 +73,24 @@ static LIST_HEAD(sdei_list);
 
 /* Private events are registered/enabled via IPI passing one of these */
 struct sdei_crosscall_args {
-	struct sdei_event *event;
-	atomic_t errors;
-	int first_error;
+	struct sdei_event	*event;
+	atomic_t		errors;
+	int			first_error;
 };
 
-#define CROSSCALL_INIT(arg, event)	(arg.event = event, \
-					 arg.first_error = 0, \
-					 atomic_set(&arg.errors, 0))
+#define CROSSCALL_INIT(arg, event)		\
+	do {					\
+		arg.event = event;		\
+		arg.first_error = 0;		\
+		atomic_set(&arg.errors, 0);	\
+	} while (0)
+
+static inline void
+sdei_cross_call_return(struct sdei_crosscall_args *arg, int err)
+{
+	if (err && (atomic_inc_return(&arg->errors) == 1))
+		arg->first_error = err;
+}
 
 static inline int sdei_do_cross_call(void *fn, struct sdei_event * event)
 {
@@ -92,13 +102,6 @@ static inline int sdei_do_cross_call(void *fn, struct sdei_event * event)
 	return arg.first_error;
 }
 
-static inline void
-sdei_cross_call_return(struct sdei_crosscall_args *arg, int err)
-{
-	if (err && (atomic_inc_return(&arg->errors) == 1))
-		arg->first_error = err;
-}
-
 static int sdei_to_linux_errno(unsigned long sdei_err)
 {
 	switch (sdei_err) {
-- 
2.23.0




More information about the linux-arm-kernel mailing list