From: Ben Hutchings <ben@decadent.org.uk>
Date: Sat, 07 May 2016 13:39:16 +0100
Subject: cgroups: Fix ABI change in 4.5.3
Forwarded: not-needed

The cgroup_subsys structure is instantiated statically in non-modular
code, and should not be used by modules (or at least, none of its
operations should be invoked from modules).  So move the new member
to the end of the structure and hide it from genksyms.

---
--- a/include/linux/cgroup-defs.h
+++ b/include/linux/cgroup-defs.h
@@ -442,7 +442,6 @@ struct cgroup_subsys {
 	int (*can_attach)(struct cgroup_taskset *tset);
 	void (*cancel_attach)(struct cgroup_taskset *tset);
 	void (*attach)(struct cgroup_taskset *tset);
-	void (*post_attach)(void);
 	int (*can_fork)(struct task_struct *task);
 	void (*cancel_fork)(struct task_struct *task);
 	void (*fork)(struct task_struct *task);
@@ -501,6 +500,10 @@ struct cgroup_subsys {
 	 * specifies the mask of subsystems that this one depends on.
 	 */
 	unsigned int depends_on;
+
+#ifndef __GENKSYMS__
+	void (*post_attach)(void);
+#endif
 };
 
 extern struct percpu_rw_semaphore cgroup_threadgroup_rwsem;
