Dave Airlie
9b340aeb26
nouveau/firmware: use dma non-coherent allocator
Currently, enabling SG_DEBUG in the kernel will cause nouveau to hit a
BUG() on startup, when the iommu is enabled:
kernel BUG at include/linux/scatterlist.h:187!
invalid opcode: 0000 [#1] PREEMPT SMP NOPTI
CPU: 7 PID: 930 Comm: (udev-worker) Not tainted 6.9.0-rc3Lyude-Test+ #30
Hardware name: MSI MS-7A39/A320M GAMING PRO (MS-7A39), BIOS 1.I0 01/22/2019
RIP: 0010:sg_init_one+0x85/0xa0
Code: 69 88 32 01 83 e1 03 f6 c3 03 75 20 a8 01 75 1e 48 09 cb 41 89 54
24 08 49 89 1c 24 41 89 6c 24 0c 5b 5d 41 5c e9 7b b9 88 00 <0f> 0b 0f 0b
0f 0b 48 8b 05 5e 46 9a 01 eb b2 66 66 2e 0f 1f 84 00
RSP: 0018:ffffa776017bf6a0 EFLAGS: 00010246
RAX: 0000000000000000 RBX: ffffa77600d87000 RCX: 000000000000002b
RDX: 0000000000000001 RSI: 0000000000000000 RDI: ffffa77680d87000
RBP: 000000000000e000 R08: 0000000000000000 R09: 0000000000000000
R10: ffff98f4c46aa508 R11: 0000000000000000 R12: ffff98f4c46aa508
R13: ffff98f4c46aa008 R14: ffffa77600d4a000 R15: ffffa77600d4a018
FS: 00007feeb5aae980(0000) GS:ffff98f5c4dc0000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007f22cb9a4520 CR3: 00000001043ba000 CR4: 00000000003506f0
Call Trace:
<TASK>
? die+0x36/0x90
? do_trap+0xdd/0x100
? sg_init_one+0x85/0xa0
? do_error_trap+0x65/0x80
? sg_init_one+0x85/0xa0
? exc_invalid_op+0x50/0x70
? sg_init_one+0x85/0xa0
? asm_exc_invalid_op+0x1a/0x20
? sg_init_one+0x85/0xa0
nvkm_firmware_ctor+0x14a/0x250 [nouveau]
nvkm_falcon_fw_ctor+0x42/0x70 [nouveau]
ga102_gsp_booter_ctor+0xb4/0x1a0 [nouveau]
r535_gsp_oneinit+0xb3/0x15f0 [nouveau]
? srso_return_thunk+0x5/0x5f
? srso_return_thunk+0x5/0x5f
? nvkm_udevice_new+0x95/0x140 [nouveau]
? srso_return_thunk+0x5/0x5f
? srso_return_thunk+0x5/0x5f
? ktime_get+0x47/0xb0
Fix this by using the non-coherent allocator instead, I think there
might be a better answer to this, but it involve ripping up some of
APIs using sg lists.
Cc: stable@vger.kernel.org
Fixes: 2541626cfb ("drm/nouveau/acr: use common falcon HS FW code for ACR FWs")
Signed-off-by: Dave Airlie <airlied@redhat.com>
Signed-off-by: Danilo Krummrich <dakr@kernel.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20240815201923.632803-1-airlied@gmail.com
2024-08-16 03:42:24 +02:00
..
2024-07-24 17:30:49 -04:00
2024-07-05 10:47:28 +02:00
2024-04-25 17:05:48 +03:00
2024-07-30 10:17:14 +02:00
2024-05-30 15:47:55 +02:00
2024-07-18 09:34:02 -07:00
2024-06-17 08:02:48 -03:00
2024-07-25 10:42:22 -07:00
2024-06-26 15:33:25 +02:00
2024-07-05 10:47:28 +02:00
2024-07-18 09:34:02 -07:00
2024-06-10 12:44:39 +02:00
2024-05-27 15:31:18 +03:00
2024-05-02 11:33:17 +02:00
2024-05-13 19:10:57 +02:00
2024-07-26 10:57:07 -07:00
2024-05-27 10:13:55 +02:00
2024-05-27 17:25:49 +03:00
2024-05-27 11:08:31 +02:00
2024-07-05 12:37:22 +02:00
2024-05-27 15:31:36 +03:00
2024-07-05 11:36:25 +02:00
2024-07-18 09:34:02 -07:00
2024-07-03 17:55:29 +02:00
2024-07-19 09:59:58 -07:00
2024-03-20 04:32:55 +01:00
2024-08-16 03:42:24 +02:00
2024-08-05 15:54:29 +03:00
2024-07-12 12:50:30 +10:00
2024-07-05 12:37:22 +02:00
2024-07-18 09:34:02 -07:00
2024-07-10 09:12:42 +02:00
2024-07-01 16:54:22 -04:00
2024-07-05 10:47:28 +02:00
2024-08-15 12:31:47 +02:00
2024-05-22 20:14:47 -04:00
2024-05-02 11:33:18 +02:00
2024-05-28 21:43:46 +03:00
2024-07-25 10:42:22 -07:00
2024-06-10 12:44:41 +02:00
2024-05-02 17:58:23 +02:00
2024-08-02 09:24:31 +02:00
2024-06-18 10:06:35 +02:00
2024-04-10 14:27:00 +03:00
2024-06-10 12:44:32 +02:00
2024-07-18 09:34:02 -07:00
2024-06-10 12:44:39 +02:00
2024-08-12 11:14:21 -03:00
2024-07-19 19:03:18 -07:00
2024-06-20 10:02:41 +02:00
2024-07-30 09:09:23 +02:00
2024-05-02 11:33:22 +02:00
2024-07-30 09:09:23 +02:00
2024-07-26 10:57:07 -07:00
2024-04-25 20:55:49 -07:00
2024-06-17 10:38:18 +03:00
2024-04-15 16:11:26 +02:00
2024-08-06 20:16:31 +02:00
2024-07-10 10:36:47 +02:00
2024-08-05 17:39:14 +02:00
2024-06-10 14:09:42 +02:00
2024-05-27 13:47:14 +10:00
2024-08-02 09:23:54 +02:00
2024-07-29 08:50:23 +02:00
2024-07-28 13:41:14 -07:00
2024-06-18 11:13:30 +02:00
2024-03-11 11:47:07 +02:00
2024-04-15 16:22:50 +03:00
2024-07-10 10:36:47 +02:00
2024-06-24 17:08:33 +03:00
2024-06-12 10:56:57 +03:00
2024-04-22 11:38:11 +03:00
2024-04-17 16:11:28 +03:00
2024-05-08 15:31:58 +03:00
2024-02-26 14:05:18 +01:00
2024-05-23 14:37:24 +03:00
2024-04-17 16:11:17 +03:00
2024-01-29 14:20:23 +01:00
2024-05-02 23:39:21 +02:00
2024-07-30 09:09:23 +02:00
2024-07-12 12:50:30 +10:00
2024-05-15 14:50:46 +02:00
2024-07-18 09:34:02 -07:00
2024-06-28 08:56:26 +10:00
2024-04-19 17:36:49 +02:00
2024-05-29 09:30:44 +02:00
2024-04-02 09:51:30 +02:00
2024-03-11 13:33:50 +01:00
2024-04-17 16:11:17 +03:00
2024-05-10 20:56:12 +03:00
2024-07-03 10:11:03 +02:00
2024-06-10 12:44:39 +02:00
2024-07-25 10:42:22 -07:00
2024-06-06 10:24:13 -04:00
2024-04-11 18:28:58 +03:00
2024-05-28 09:57:28 +02:00
2024-06-18 11:13:30 +02:00
2024-02-28 15:07:15 +01:00
2024-02-09 11:52:43 +02:00
2024-08-12 10:28:33 +02:00
2024-03-13 10:44:14 +02:00
2024-06-27 11:41:58 +02:00
2024-06-24 17:08:53 +03:00
2024-03-28 19:52:22 +01:00
2024-06-06 14:46:15 -04:00
2024-06-18 11:13:30 +02:00
2024-06-10 12:44:39 +02:00
2024-02-26 11:41:07 +01:00
2024-05-23 14:37:24 +03:00
2024-06-24 18:03:18 +02:00
2024-04-18 13:27:56 +03:00
2024-07-30 09:09:23 +02:00
2024-05-02 11:33:32 +02:00