--- /dev/null
+From 156baec39732f025dc778e00da95fc10d6e45885 Mon Sep 17 00:00:00 2001
+From: "Paul E. McKenney" <paulmck@linux.vnet.ibm.com>
+Date: Thu, 7 Dec 2017 09:40:38 -0800
+Subject: rcu: Export init_rcu_head() and destroy_rcu_head() to GPL modules
+
+From: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
+
+commit 156baec39732f025dc778e00da95fc10d6e45885 upstream.
+
+Use of init_rcu_head() and destroy_rcu_head() from modules results in
+the following build-time error with CONFIG_DEBUG_OBJECTS_RCU_HEAD=y:
+
+ ERROR: "init_rcu_head" [drivers/scsi/scsi_mod.ko] undefined!
+ ERROR: "destroy_rcu_head" [drivers/scsi/scsi_mod.ko] undefined!
+
+This commit therefore adds EXPORT_SYMBOL_GPL() for each to allow them to
+be used by GPL-licensed kernel modules.
+
+Reported-by: Bart Van Assche <Bart.VanAssche@wdc.com>
+Reported-by: Stephen Rothwell <sfr@canb.auug.org.au>
+Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
+Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ kernel/rcu/update.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/kernel/rcu/update.c
++++ b/kernel/rcu/update.c
+@@ -421,11 +421,13 @@ void init_rcu_head(struct rcu_head *head
+ {
+ debug_object_init(head, &rcuhead_debug_descr);
+ }
++EXPORT_SYMBOL_GPL(init_rcu_head);
+
+ void destroy_rcu_head(struct rcu_head *head)
+ {
+ debug_object_free(head, &rcuhead_debug_descr);
+ }
++EXPORT_SYMBOL_GPL(destroy_rcu_head);
+
+ static bool rcuhead_is_static_object(void *addr)
+ {
devpts-fix-error-handling-in-devpts_mntget.patch
ftrace-remove-incorrect-setting-of-glob-search-field.patch
scsi-core-ensure-that-the-scsi-error-handler-gets-woken-up.patch
+rcu-export-init_rcu_head-and-destroy_rcu_head-to-gpl-modules.patch
scsi-lpfc-fix-crash-after-bad-bar-setup-on-driver-attachment.patch
scsi-cxlflash-reset-command-ioasc.patch