static struct slow_work *slow_work_unreg_work_item;
 static DECLARE_WAIT_QUEUE_HEAD(slow_work_unreg_wq);
 static DEFINE_MUTEX(slow_work_unreg_sync_lock);
+
+static void slow_work_set_thread_processing(int id, struct slow_work *work)
+{
+       if (work)
+               slow_work_thread_processing[id] = work->owner;
+}
+static void slow_work_done_thread_processing(int id, struct slow_work *work)
+{
+       struct module *module = slow_work_thread_processing[id];
+
+       slow_work_thread_processing[id] = NULL;
+       smp_mb();
+       if (slow_work_unreg_work_item == work ||
+           slow_work_unreg_module == module)
+               wake_up_all(&slow_work_unreg_wq);
+}
+static void slow_work_clear_thread_processing(int id)
+{
+       slow_work_thread_processing[id] = NULL;
+}
+#else
+static void slow_work_set_thread_processing(int id, struct slow_work *work) {}
+static void slow_work_done_thread_processing(int id, struct slow_work *work) {}
+static void slow_work_clear_thread_processing(int id) {}
 #endif
 
 /*
  */
 static noinline bool slow_work_execute(int id)
 {
-#ifdef CONFIG_MODULES
-       struct module *module;
-#endif
        struct slow_work *work = NULL;
        unsigned vsmax;
        bool very_slow;
                very_slow = false; /* avoid the compiler warning */
        }
 
-#ifdef CONFIG_MODULES
-       if (work)
-               slow_work_thread_processing[id] = work->owner;
-#endif
+       slow_work_set_thread_processing(id, work);
        if (work) {
                slow_work_mark_time(work);
                slow_work_begin_exec(id, work);
 
        /* sort out the race between module unloading and put_ref() */
        slow_work_put_ref(work);
-
-#ifdef CONFIG_MODULES
-       module = slow_work_thread_processing[id];
-       slow_work_thread_processing[id] = NULL;
-       smp_mb();
-       if (slow_work_unreg_work_item == work ||
-           slow_work_unreg_module == module)
-               wake_up_all(&slow_work_unreg_wq);
-#endif
+       slow_work_done_thread_processing(id, work);
 
        return true;
 
        else
                list_add_tail(&work->link, &slow_work_queue);
        spin_unlock_irq(&slow_work_queue_lock);
-       slow_work_thread_processing[id] = NULL;
+       slow_work_clear_thread_processing(id);
        return true;
 }
 
  */
 static void slow_work_wait_for_items(struct module *module)
 {
+#ifdef CONFIG_MODULES
        DECLARE_WAITQUEUE(myself, current);
        struct slow_work *work;
        int loop;
 
        remove_wait_queue(&slow_work_unreg_wq, &myself);
        mutex_unlock(&slow_work_unreg_sync_lock);
+#endif /* CONFIG_MODULES */
 }
 
 /**