From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Tony Camuso <tcamuso@redhat.com>
Date: Wed, 19 Feb 2020 11:52:17 +0100
Subject: [PATCH] redhat: rh_kabi: Fix RH_KABI_SET_SIZE to use dereference
 operator

RH-Acked-by: Prarit Bhargava <prarit@redhat.com>
RH-Acked-by: Jiri Benc <jbenc@redhat.com>

Upstream Status: RHEL only

Since this macro is intended to record the sizeof extension structs that
are dynamically allocated, using the structure dereference operator '->'
is a better choice, else the macro would have to be invoked with the
_name argument dereferenced as (*_name).

Also added a short note explaining that, unlike the other RH_KABI
macros that are invoked from within structs, this macro is invoked
outside a struct and therefore needs a semicolon termination.

Upstream Status: RHEL only
Signed-off-by: Tony Camuso <tcamuso@redhat.com>
Signed-off-by: Jiri Benc <jbenc@redhat.com>
---
 include/linux/rh_kabi.h | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/include/linux/rh_kabi.h b/include/linux/rh_kabi.h
index d551df994583..9a4fea93ad99 100644
--- a/include/linux/rh_kabi.h
+++ b/include/linux/rh_kabi.h
@@ -224,9 +224,11 @@
  * This macro MUST be called when expanding a base struct with
  * RH_KABI_SIZE_AND_EXTEND, and it MUST be called from the allocation site
  * regardless of being allocated in the kernel or a module.
+ * Note: since this macro is intended to be invoked outside of a struct,
+ * a semicolon is necessary at the end of the line where it is invoked.
  */
 #define RH_KABI_SET_SIZE(_name, _struct) ({				\
-	_name._struct##_size_rh = sizeof(struct _struct##_rh);		\
+	_name->_struct##_size_rh = sizeof(struct _struct##_rh);		\
 })

 /*
-- 
2.26.2

