Alex Xie
b7ae412c6f
drm/amdgpu: Fix blocking in RCU critical section(v2)
In RCU read-side critical sections, blocking or sleeping is prohibited.
v2: Unlock RCU for the code path where result==NULL. (David Zhou)
Update subject
Tested-by and reported by: Dave Airlie <airlied@redhat.com>
[ 141.965723] =============================
[ 141.965724] WARNING: suspicious RCU usage
[ 141.965726] 4.12.0-rc7 #221 Not tainted
[ 141.965727] -----------------------------
[ 141.965728] /home/airlied/devel/kernel/linux-2.6/include/linux/rcupdate.h:531
Illegal context switch in RCU read-side critical section!
[ 141.965730]
other info that might help us debug this:
[ 141.965731]
rcu_scheduler_active = 2, debug_locks = 0
[ 141.965732] 1 lock held by amdgpu_cs:0/1332:
[ 141.965733] #0: (rcu_read_lock){......}, at: [<ffffffffa01a0d07>]
amdgpu_bo_list_get+0x0/0x109 [amdgpu]
[ 141.965774]
stack backtrace:
[ 141.965776] CPU: 6 PID: 1332 Comm: amdgpu_cs:0 Not tainted 4.12.0-rc7 #221
[ 141.965777] Hardware name: To be filled by O.E.M. To be filled by
O.E.M./M5A97 R2.0, BIOS 2603 06/26/2015
[ 141.965778] Call Trace:
[ 141.965782] dump_stack+0x68/0x92
[ 141.965785] lockdep_rcu_suspicious+0xf7/0x100
[ 141.965788] ___might_sleep+0x56/0x1fc
[ 141.965790] __might_sleep+0x68/0x6f
[ 141.965793] __mutex_lock+0x4e/0x7b5
[ 141.965817] ? amdgpu_bo_list_get+0xa4/0x109 [amdgpu]
[ 141.965820] ? lock_acquire+0x125/0x1b9
[ 141.965844] ? amdgpu_bo_list_set+0x464/0x464 [amdgpu]
[ 141.965846] mutex_lock_nested+0x16/0x18
[ 141.965848] ? mutex_lock_nested+0x16/0x18
[ 141.965872] amdgpu_bo_list_get+0xa4/0x109 [amdgpu]
[ 141.965895] amdgpu_cs_ioctl+0x4a0/0x17dd [amdgpu]
[ 141.965898] ? radix_tree_node_alloc.constprop.11+0x77/0xab
[ 141.965916] drm_ioctl+0x264/0x393 [drm]
[ 141.965939] ? amdgpu_cs_find_mapping+0x83/0x83 [amdgpu]
[ 141.965942] ? trace_hardirqs_on_caller+0x16a/0x186
Signed-off-by: Alex Xie <AlexBin.Xie@amd.com>
Reviewed-by: Chunming Zhou <david1.zhou@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2017-07-25 16:15:46 -04:00
..
2017-07-17 11:43:58 -07:00
2017-07-17 14:44:19 +02:00
2017-07-06 09:41:58 -07:00
2017-07-18 11:37:46 -07:00
2017-07-20 14:56:46 -07:00
2017-07-13 08:03:30 -06:00
2017-07-05 12:31:59 -07:00
2017-07-09 18:48:37 -07:00
2017-06-27 12:13:45 -06:00
2017-07-15 12:44:02 -07:00
2017-07-15 10:59:54 -07:00
2017-07-17 22:43:00 +02:00
2017-07-20 18:57:15 +02:00
2017-07-07 13:55:45 -07:00
2017-07-14 22:49:50 -07:00
2017-07-18 17:49:14 -07:00
2017-07-06 10:17:24 +09:00
2017-07-08 12:36:50 -07:00
2017-07-17 11:56:07 -04:00
2017-06-29 10:37:50 +02:00
2017-07-12 16:26:02 -07:00
2017-07-17 16:13:54 +02:00
2017-07-07 13:30:05 -07:00
2017-07-25 16:15:46 -04:00
2017-07-20 15:45:39 +02:00
2017-07-04 14:28:22 -07:00
2017-07-17 15:00:47 +02:00
2017-07-15 16:38:56 -07:00
2017-07-03 20:55:59 -07:00
2017-07-12 10:04:56 -07:00
2017-07-21 04:37:22 +01:00
2017-06-29 22:58:35 +02:00
2017-07-04 11:48:27 -07:00
2017-07-20 11:24:13 -04:00
2017-07-14 22:53:37 -07:00
2017-07-12 10:00:04 -07:00
2017-07-18 21:59:23 +02:00
2017-07-15 21:25:56 -07:00
2017-07-06 11:32:40 -07:00
2017-07-07 13:17:36 -06:00
2017-07-05 13:13:32 -07:00
2017-07-07 10:24:07 -07:00
2017-07-18 11:51:08 -07:00
2017-07-09 18:48:37 -07:00
2017-07-04 14:47:47 -07:00
2017-07-11 09:55:47 -07:00
2017-07-07 13:55:45 -07:00
2017-07-14 13:10:06 -07:00
2017-07-13 12:07:44 -07:00
2017-07-17 16:38:35 +02:00
2017-07-20 16:33:39 -07:00
2017-07-01 14:30:39 -07:00
2017-07-06 11:30:08 -04:00
2017-07-17 11:43:58 -07:00
2017-07-20 08:41:56 -06:00
2017-07-17 16:15:57 +02:00
2017-07-10 15:23:45 -07:00
2017-07-05 21:46:42 +02:00
2017-07-14 22:24:25 -07:00
2017-06-26 10:54:27 +01:00
2017-07-06 11:38:59 -07:00
2017-07-15 10:59:54 -07:00
2017-07-07 12:40:27 -07:00
2017-07-13 11:47:59 -07:00
2017-06-28 00:38:34 +02:00
2017-07-06 11:40:58 +01:00
2017-07-13 11:49:52 -07:00
2017-07-05 17:09:27 -07:00
2017-07-03 16:52:21 +01:00
2017-06-27 16:21:34 -07:00
2017-07-04 14:47:47 -07:00
2017-07-06 15:38:31 -07:00
2017-07-13 12:15:06 -07:00
2017-07-12 16:26:04 -07:00
2017-06-27 12:13:45 -06:00
2017-07-17 12:26:12 -07:00
2017-07-06 16:24:30 -07:00
2017-07-04 14:47:47 -07:00
2017-07-08 10:41:53 -07:00
2017-07-17 15:00:47 +02:00
2017-07-18 09:04:22 +02:00
2017-07-15 12:44:02 -07:00
2017-07-14 13:12:32 -07:00
2017-07-17 15:55:08 +02:00
2017-07-17 17:04:41 +02:00
2017-07-20 14:40:36 +02:00
2017-07-03 20:27:48 -07:00
2017-07-13 12:23:54 -07:00
2017-07-13 14:27:32 -07:00
2017-07-13 12:38:49 -07:00
2017-07-17 16:48:15 +02:00
2017-07-11 09:59:37 -07:00
2017-07-23 08:13:18 +02:00