Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit aef745fc authored by Ingo Molnar's avatar Ingo Molnar
Browse files

sched: clean up __might_sleep()



add KERN_ to the printout and clean up the flow a bit.

Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent 29cbef48
Loading
Loading
Loading
Loading
+19 −14
Original line number Diff line number Diff line
@@ -8226,20 +8226,25 @@ void __might_sleep(char *file, int line)
#ifdef in_atomic
	static unsigned long prev_jiffy;	/* ratelimiting */

	if ((in_atomic() || irqs_disabled()) &&
	    system_state == SYSTEM_RUNNING && !oops_in_progress) {
	if ((!in_atomic() && !irqs_disabled()) ||
		    system_state != SYSTEM_RUNNING || oops_in_progress)
		return;
	if (time_before(jiffies, prev_jiffy + HZ) && prev_jiffy)
		return;
	prev_jiffy = jiffies;
		printk(KERN_ERR "BUG: sleeping function called from invalid"
				" context at %s:%d\n", file, line);
		printk("in_atomic():%d, irqs_disabled():%d, pid: %d, name: %s\n",
			in_atomic(), irqs_disabled(), current->pid, current->comm);

	printk(KERN_ERR
		"BUG: sleeping function called from invalid context at %s:%d\n",
			file, line);
	printk(KERN_ERR
		"in_atomic(): %d, irqs_disabled(): %d, pid: %d, name: %s\n",
			in_atomic(), irqs_disabled(),
			current->pid, current->comm);

	debug_show_held_locks(current);
	if (irqs_disabled())
		print_irqtrace_events(current);
	dump_stack();
	}
#endif
}
EXPORT_SYMBOL(__might_sleep);