preempt_schedule_notrace — preempt_schedule called by tracing
| __visible void __sched notrace preempt_schedule_notrace ( | void ); | 
   The tracing infrastructure uses preempt_enable_notrace to prevent
   recursion and tracing preempt enabling caused by the tracing
   infrastructure itself. But as tracing can happen in areas coming
   from userspace or just about to enter userspace, a preempt enable
   can occur before user_exit is called. This will cause the scheduler
   to be called when the system is still in usermode.
   
   To prevent this, the preempt_enable_notrace will use this function
   instead of preempt_schedule to exit user context if needed before
   calling the scheduler.