|
@@ -0,0 +1,48 @@
|
|
|
+--- a/kernel/rcu/tree_plugin.h
|
|
|
++++ b/kernel/rcu/tree_plugin.h
|
|
|
+@@ -402,7 +402,7 @@
|
|
|
+ WRITE_ONCE(current->rcu_read_unlock_special.b.need_qs, true);
|
|
|
+ barrier(); /* critical section after entry code. */
|
|
|
+ }
|
|
|
+-EXPORT_SYMBOL_GPL(__rcu_read_lock);
|
|
|
++EXPORT_SYMBOL(__rcu_read_lock); //nvidia_gpl
|
|
|
+
|
|
|
+ /*
|
|
|
+ * Preemptible RCU implementation for rcu_read_unlock().
|
|
|
+@@ -427,7 +427,7 @@
|
|
|
+ WARN_ON_ONCE(rrln < 0 || rrln > RCU_NEST_PMAX);
|
|
|
+ }
|
|
|
+ }
|
|
|
+-EXPORT_SYMBOL_GPL(__rcu_read_unlock);
|
|
|
++EXPORT_SYMBOL(__rcu_read_unlock); //nvidia_gpl
|
|
|
+
|
|
|
+ /*
|
|
|
+ * Advance a ->blkd_tasks-list pointer to the next entry, instead
|
|
|
+@@ -822,7 +822,7 @@
|
|
|
+ rcu_report_qs_rdp(rdp);
|
|
|
+ udelay(rcu_unlock_delay);
|
|
|
+ }
|
|
|
+-EXPORT_SYMBOL_GPL(rcu_read_unlock_strict);
|
|
|
++EXPORT_SYMBOL(rcu_read_unlock_strict); //nvidia_gpl
|
|
|
+
|
|
|
+ /*
|
|
|
+ * Tell them what RCU they are running.
|
|
|
+@@ -881,7 +881,7 @@
|
|
|
+ rcu_qs();
|
|
|
+ preempt_enable();
|
|
|
+ }
|
|
|
+-EXPORT_SYMBOL_GPL(rcu_all_qs);
|
|
|
++EXPORT_SYMBOL(rcu_all_qs); //nvidia_gpl
|
|
|
+
|
|
|
+ /*
|
|
|
+ * Note a PREEMPTION=n context switch. The caller must have disabled interrupts.
|
|
|
+@@ -900,7 +900,7 @@
|
|
|
+ out:
|
|
|
+ trace_rcu_utilization(TPS("End context switch"));
|
|
|
+ }
|
|
|
+-EXPORT_SYMBOL_GPL(rcu_note_context_switch);
|
|
|
++EXPORT_SYMBOL(rcu_note_context_switch); //nvidia_gpl
|
|
|
+
|
|
|
+ /*
|
|
|
+ * Because preemptible RCU does not exist, there are never any preempted
|
|
|
+
|