+static void fill_sc_table(void)
+{
+ int i;
+
+ if (sc_table_filled) {
+ smp_rmb(); /* read flag before table */
+ return;
+ }
+
+ for (i = 0; i < ARRAY_SIZE(sc_table); i++) {
+ if (sc_table[i].func)
+ continue;
+ sc_table[i].func = __event_probe__sys_unknown;
+ sc_table[i].nrargs = UNKNOWN_SYSCALL_NRARGS;
+ sc_table[i].fields = __event_fields___sys_unknown;
+ sc_table[i].desc = &__event_desc___sys_unknown;
+ }
+ smp_wmb(); /* Fill sc table before set flag to 1 */
+ sc_table_filled = 1;
+}
+