tools headers UAPI: Sync linux/prctl.h with the kernel sources
[linux-2.6-microblaze.git] / kernel / async.c
index 33258e6..b8d7a66 100644 (file)
@@ -78,6 +78,12 @@ static DECLARE_WAIT_QUEUE_HEAD(async_done);
 
 static atomic_t entry_count;
 
+static long long microseconds_since(ktime_t start)
+{
+       ktime_t now = ktime_get();
+       return ktime_to_ns(ktime_sub(now, start)) >> 10;
+}
+
 static async_cookie_t lowest_in_progress(struct async_domain *domain)
 {
        struct async_entry *first = NULL;
@@ -111,24 +117,18 @@ static void async_run_entry_fn(struct work_struct *work)
        struct async_entry *entry =
                container_of(work, struct async_entry, work);
        unsigned long flags;
-       ktime_t calltime, delta, rettime;
+       ktime_t calltime;
 
        /* 1) run (and print duration) */
-       if (initcall_debug && system_state < SYSTEM_RUNNING) {
-               pr_debug("calling  %lli_%pS @ %i\n",
-                       (long long)entry->cookie,
-                       entry->func, task_pid_nr(current));
-               calltime = ktime_get();
-       }
+       pr_debug("calling  %lli_%pS @ %i\n", (long long)entry->cookie,
+                entry->func, task_pid_nr(current));
+       calltime = ktime_get();
+
        entry->func(entry->data, entry->cookie);
-       if (initcall_debug && system_state < SYSTEM_RUNNING) {
-               rettime = ktime_get();
-               delta = ktime_sub(rettime, calltime);
-               pr_debug("initcall %lli_%pS returned 0 after %lld usecs\n",
-                       (long long)entry->cookie,
-                       entry->func,
-                       (long long)ktime_to_ns(delta) >> 10);
-       }
+
+       pr_debug("initcall %lli_%pS returned after %lld usecs\n",
+                (long long)entry->cookie, entry->func,
+                microseconds_since(calltime));
 
        /* 2) remove self from the pending queues */
        spin_lock_irqsave(&async_lock, flags);
@@ -245,24 +245,6 @@ void async_synchronize_full(void)
 }
 EXPORT_SYMBOL_GPL(async_synchronize_full);
 
-/**
- * async_unregister_domain - ensure no more anonymous waiters on this domain
- * @domain: idle domain to flush out of any async_synchronize_full instances
- *
- * async_synchronize_{cookie|full}_domain() are not flushed since callers
- * of these routines should know the lifetime of @domain
- *
- * Prefer ASYNC_DOMAIN_EXCLUSIVE() declarations over flushing
- */
-void async_unregister_domain(struct async_domain *domain)
-{
-       spin_lock_irq(&async_lock);
-       WARN_ON(!domain->registered || !list_empty(&domain->pending));
-       domain->registered = 0;
-       spin_unlock_irq(&async_lock);
-}
-EXPORT_SYMBOL_GPL(async_unregister_domain);
-
 /**
  * async_synchronize_full_domain - synchronize all asynchronous function within a certain domain
  * @domain: the domain to synchronize
@@ -287,23 +269,15 @@ EXPORT_SYMBOL_GPL(async_synchronize_full_domain);
  */
 void async_synchronize_cookie_domain(async_cookie_t cookie, struct async_domain *domain)
 {
-       ktime_t starttime, delta, endtime;
+       ktime_t starttime;
 
-       if (initcall_debug && system_state < SYSTEM_RUNNING) {
-               pr_debug("async_waiting @ %i\n", task_pid_nr(current));
-               starttime = ktime_get();
-       }
+       pr_debug("async_waiting @ %i\n", task_pid_nr(current));
+       starttime = ktime_get();
 
        wait_event(async_done, lowest_in_progress(domain) >= cookie);
 
-       if (initcall_debug && system_state < SYSTEM_RUNNING) {
-               endtime = ktime_get();
-               delta = ktime_sub(endtime, starttime);
-
-               pr_debug("async_continuing @ %i after %lli usec\n",
-                       task_pid_nr(current),
-                       (long long)ktime_to_ns(delta) >> 10);
-       }
+       pr_debug("async_continuing @ %i after %lli usec\n", task_pid_nr(current),
+                microseconds_since(starttime));
 }
 EXPORT_SYMBOL_GPL(async_synchronize_cookie_domain);