Chen Li
ede6b6bc43
drm/radeon: use writel to avoid gcc optimization v3
When using e8860(gcn1) on arm64, the kernel crashed on drm/radeon:
[ 11.240414] pc : __memset+0x4c/0x188
[ 11.244101] lr : radeon_uvd_get_create_msg+0x114/0x1d0 [radeon]
[ 11.249995] sp : ffff00000d7eb700
[ 11.253295] x29: ffff00000d7eb700 x28: ffff8001f632a868
[ 11.258585] x27: 0000000000040000 x26: ffff00000de00000
[ 11.263875] x25: 0000000000000125 x24: 0000000000000001
[ 11.269168] x23: 0000000000000000 x22: 0000000000000005
[ 11.274459] x21: ffff00000df24000 x20: ffff8001f74b4000
[ 11.279753] x19: 0000000000124000 x18: 0000000000000020
[ 11.285043] x17: 0000000000000000 x16: 0000000000000000
[ 11.290336] x15: ffff000009309000 x14: ffffffffffffffff
[ 11.290340] x13: ffff0000094b6f88 x12: ffff0000094b6bd2
[ 11.290343] x11: ffff00000d7eb700 x10: ffff00000d7eb700
[ 11.306246] x9 : ffff00000d7eb700 x8 : ffff00000df2402c
[ 11.306254] x7 : 0000000000000000 x6 : ffff0000094b626a
[ 11.306257] x5 : 0000000000000000 x4 : 0000000000000004
[ 11.306262] x3 : ffffffffffffffff x2 : 0000000000000fd4
[ 11.306265] x1 : 0000000000000000 x0 : ffff00000df2402c
[ 11.306272] Call trace:
[ 11.306316] __memset+0x4c/0x188
[ 11.306638] uvd_v1_0_ib_test+0x70/0x1c0 [radeon]
[ 11.306758] radeon_ib_ring_tests+0x54/0xe0 [radeon]
...
Obviously, the __memset call is generated by gcc(8.3.1). It optimizes
this for loop into memset. But this may break on some platforms which
cannot map device memory correctly. So, just invoke `writel` to handle this.
v3 (chk): minor cleanups in code and commit message
Signed-off-by: Chen Li <chenli@uniontech.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
2021-01-05 11:32:05 -05:00
..
2020-03-25 11:50:48 +01:00
2020-04-30 16:48:42 -04:00
2020-11-16 15:56:34 -05:00
2020-11-13 00:03:54 -05:00
2020-01-07 12:04:13 -05:00
2020-11-16 15:56:33 -05:00
2019-12-18 16:09:13 -05:00
2017-02-27 18:43:46 -08:00
2020-11-16 15:56:35 -05:00
2019-06-10 22:30:24 +02:00
2020-11-24 12:05:42 -05:00
2019-06-10 22:30:24 +02:00
2019-06-10 22:30:24 +02:00
2017-12-20 12:00:22 -05:00
2020-11-16 15:56:35 -05:00
2020-11-16 15:56:35 -05:00
2020-11-16 15:56:35 -05:00
2017-10-30 14:16:21 +01:00
2019-06-10 22:30:24 +02:00
2019-06-10 22:30:24 +02:00
2019-06-10 22:30:24 +02:00
2020-11-16 15:56:35 -05:00
2019-06-10 22:30:24 +02:00
2020-11-16 15:56:35 -05:00
2020-11-16 15:56:35 -05:00
2020-11-16 15:56:35 -05:00
2020-11-16 15:56:34 -05:00
2020-11-16 15:56:34 -05:00
2020-11-16 15:56:34 -05:00
2020-11-16 15:56:35 -05:00
2020-11-16 15:56:35 -05:00
2019-05-21 10:50:46 +02:00
2020-11-13 00:11:53 -05:00
2019-06-10 22:30:24 +02:00
2020-04-01 14:44:43 -04:00
2018-10-15 16:16:12 -05:00
2020-11-16 15:56:34 -05:00
2020-11-16 15:56:35 -05:00
2020-11-16 15:56:34 -05:00
2020-11-16 15:56:34 -05:00
2020-11-16 15:56:34 -05:00
2019-06-10 22:30:24 +02:00
2020-11-13 00:12:14 -05:00
2019-12-03 16:26:59 -05:00
2020-11-24 12:05:42 -05:00
2020-08-23 17:36:59 -05:00
2019-06-10 22:30:24 +02:00
2020-11-16 15:56:35 -05:00
2020-11-16 15:56:34 -05:00
2019-06-10 22:30:24 +02:00
2019-06-10 22:30:24 +02:00
2020-11-16 15:56:35 -05:00
2018-08-27 11:10:19 -05:00
2020-11-16 15:56:34 -05:00
2020-11-16 15:56:35 -05:00
2020-11-16 15:56:33 -05:00
2017-08-15 14:46:07 -04:00
2019-12-05 08:44:28 +01:00
2020-10-27 17:43:42 -04:00
2020-10-27 17:43:42 -04:00
2020-11-16 15:56:34 -05:00
2020-11-16 15:56:34 -05:00
2019-05-30 11:29:21 -07:00
2020-11-16 15:56:35 -05:00
2020-11-16 15:56:33 -05:00
2019-08-13 09:09:30 +02:00
2020-03-30 09:52:23 -05:00
2019-12-05 08:44:28 +01:00
2020-11-16 15:56:33 -05:00
2020-11-13 00:11:10 -05:00
2020-11-13 00:11:24 -05:00
2020-05-19 22:31:34 +01:00
2020-11-24 12:09:52 -05:00
2020-11-16 15:56:33 -05:00
2020-11-16 15:56:33 -05:00
2019-06-10 22:30:24 +02:00
2020-11-13 00:11:58 -05:00
2020-12-10 16:55:53 +10:00
2020-11-13 00:03:49 -05:00
2020-11-16 15:56:34 -05:00
2020-05-19 22:31:34 +01:00
2020-11-13 00:11:00 -05:00
2020-07-27 16:45:29 -04:00
2020-12-10 16:55:53 +10:00
2020-11-16 15:56:34 -05:00
2020-11-13 00:12:05 -05:00
2020-11-16 15:56:34 -05:00
2020-12-10 16:55:53 +10:00
2020-11-16 15:56:34 -05:00
2020-02-13 13:08:14 +01:00
2020-11-16 15:56:33 -05:00
2020-11-16 15:56:33 -05:00
2019-11-19 10:12:54 -05:00
2020-11-13 00:12:11 -05:00
2020-03-06 14:19:57 +01:00
2020-11-16 15:56:33 -05:00
2020-09-28 12:37:19 +02:00
2020-11-16 15:56:33 -05:00
2020-11-16 15:56:33 -05:00
2020-12-10 16:55:53 +10:00
2020-11-16 15:56:35 -05:00
2020-11-13 00:11:18 -05:00
2019-06-10 22:30:24 +02:00
2019-06-10 22:30:24 +02:00
2020-11-13 00:12:01 -05:00
2019-08-06 08:21:54 +02:00
2019-06-10 22:30:24 +02:00
2019-06-10 22:30:24 +02:00
2020-12-10 16:55:53 +10:00
2020-11-16 15:56:33 -05:00
2019-06-10 22:30:24 +02:00
2021-01-05 11:32:05 -05:00
2020-12-15 11:36:00 -05:00
2020-11-13 00:11:50 -05:00
2020-12-10 16:55:53 +10:00
2019-06-10 22:30:24 +02:00
2019-12-05 08:44:28 +01:00
2019-12-05 08:44:28 +01:00
2019-12-05 08:44:28 +01:00
2019-06-10 22:30:24 +02:00
2019-06-10 22:30:24 +02:00
2020-11-16 15:56:34 -05:00
2020-11-16 15:56:34 -05:00
2019-08-13 09:09:30 +02:00
2020-11-16 15:56:35 -05:00
2019-06-10 22:30:24 +02:00
2019-06-10 22:30:24 +02:00
2020-11-16 15:56:33 -05:00
2020-11-16 15:56:34 -05:00
2020-11-16 15:56:34 -05:00
2020-11-24 12:05:42 -05:00
2020-11-16 15:56:35 -05:00
2019-06-10 22:30:24 +02:00
2020-11-16 15:56:34 -05:00
2020-11-16 15:56:35 -05:00
2020-10-27 17:43:42 -04:00
2020-11-13 00:12:30 -05:00
2020-11-13 00:12:30 -05:00
2020-11-16 15:56:35 -05:00
2019-06-10 22:30:24 +02:00
2020-09-22 17:37:38 -04:00
2020-09-22 17:37:38 -04:00
2019-06-10 22:30:24 +02:00
2020-09-22 17:37:38 -04:00
2020-11-16 15:56:35 -05:00
2020-11-16 15:56:35 -05:00
2020-11-16 15:56:35 -05:00