+ /*
+ * Go to sleep and proc_schedule() another process.
+ *
+ * We re-enable IRQs because proc_schedule() does not
+ * guarantee to save and restore the interrupt mask.
+ */
+ IRQ_RESTORE(flags);
+ proc_schedule();
+ IRQ_SAVE_DISABLE(flags);
+
+ /*
+ * When we come back here, the wait mask must have been
+ * cleared by someone through sig_signal(), and at least
+ * one of the signals we were expecting must have been
+ * delivered to us.
+ */