From bbcfac6abd6a009e7e59703072a5f6619d62575d Mon Sep 17 00:00:00 2001
From: Keerthana K <keerthanak@vmware.com>
Date: Wed, 6 Jan 2021 07:35:04 +0000
Subject: [PATCH 4/5] Fix PAX function pointer overwritten for tasklet callback

Tasklet_struct has union of function pointers which is called based on
use_callback bool value. GCC RAP plugin has a bug which does not generate
RAP hash for the function pointers declared inside union. Fix here is to remove
the union of function pointers and declare it separately.

Signed-off-by: Keerthana K <keerthanak@vmware.com>
---
 include/linux/interrupt.h | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h
index ee8299eb1..d1498e678 100644
--- a/include/linux/interrupt.h
+++ b/include/linux/interrupt.h
@@ -612,10 +612,8 @@ struct tasklet_struct
 	unsigned long state;
 	atomic_t count;
 	bool use_callback;
-	union {
-		void (*func)(unsigned long data);
-		void (*callback)(struct tasklet_struct *t);
-	};
+	void (*func)(unsigned long data);
+	void (*callback)(struct tasklet_struct *t);
 	unsigned long data;
 };
 
-- 
2.28.0