Files
tegra-linux-noble/include/linux
Michael S. Tsirkin 662bbcb274 mm, sched: Allow uaccess in atomic with pagefault_disable()
This changes might_fault() so that it does not
trigger a false positive diagnostic for e.g. the following
sequence:

	spin_lock_irqsave()
	pagefault_disable()
	copy_to_user()
	pagefault_enable()
	spin_unlock_irqrestore()

In particular vhost wants to do this, to call
socket ops from under a lock.

There are 3 cases to consider:

 - CONFIG_PROVE_LOCKING - might_fault is non-inline
   so it's easy to move the in_atomic test to fix
   up the false positive warning.

 - CONFIG_DEBUG_ATOMIC_SLEEP - might_fault
   is currently inline, but we are calling a
   non-inline __might_sleep anyway,
   so let's use the non-line version of might_fault
   that does the right thing.

 - !CONFIG_DEBUG_ATOMIC_SLEEP && !CONFIG_PROVE_LOCKING
   __might_sleep is a nop so might_fault is a nop.

Make this explicit.

Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Peter Zijlstra <peterz@infradead.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1369577426-26721-11-git-send-email-mst@redhat.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
2013-05-28 09:41:11 +02:00
..
2013-05-17 14:31:05 -04:00
2013-05-07 19:46:02 -07:00
2013-04-29 15:40:23 -04:00
2013-03-23 16:11:31 -07:00
2013-05-07 20:16:25 -07:00
2013-03-22 15:18:18 -07:00
2013-04-08 17:39:23 +02:00
2013-05-10 14:37:17 +01:00
2013-05-01 16:36:22 +05:30
2013-03-28 10:10:25 -06:00
2013-05-07 18:38:27 -07:00
2013-04-29 18:28:40 -07:00
2013-05-01 16:28:48 -04:00
2013-05-07 02:16:31 -04:00
2013-05-06 13:07:33 +02:00
2013-04-30 17:04:06 -07:00
2013-04-01 11:04:50 -07:00
2013-04-30 17:04:00 -07:00
2013-04-29 18:28:44 -07:00
2013-05-04 14:47:26 -04:00
2013-04-29 15:54:28 -07:00
2013-04-29 15:54:28 -07:00
2013-04-12 10:26:23 +02:00
2013-04-09 14:13:29 -04:00
2013-03-29 15:31:30 -04:00
2013-04-30 15:50:12 +05:30
2013-03-21 11:47:51 -04:00
2013-03-28 11:10:22 -07:00
2013-04-29 15:54:37 -07:00