On Sun, Jun 23, 2024 at 05:18:31PM +0200, Thomas Gleixner wrote: > This is version 4 of the series to convert ARM MSI handling over to > per device MSI domains. Version 3 can be found here: > > https://lore.kernel.org/lkml/20240614102403.13610-1-shivamurthy.shastri@xxxxxxxxxxxxx > > The conversion aims to replace the existing platform MSI mechanism and > enables ARM to support the future PCI/IMS mechanism. > > The infrastructure to replace the platform MSI mechanism is already > upstream and in use by RISC-V and has been tested on various ARM platforms > during the V2 development. > > Changes vs. V3: > > - Fix the conversion of the GIC V3 MBI driver - Marc > > - Dropped a few stray MSI_FLAG_PCI_MSI_MASK_PARENT flags > > - Dropped the trivial cleanup patches as they have been merged > > - Picked up tags > > The series is only lightly tested due to lack of hardware, so we rely on > the people who have access to affected machines to help with testing. > > If there are no major objections raised or testing fallout reported, I'm > aiming this series for the next merge window. > > The series is also available from git: > > git://git.kernel.org/pub/scm/linux/kernel/git/tglx/devel.git devmsi-arm-v4 Running this thru kernelCI has some failures on x86 QEMU boots[1]. Here's the backtrace: <1>[ 2.199948] BUG: kernel NULL pointer dereference, address: 0000000000000000 <1>[ 2.199948] #PF: supervisor instruction fetch in kernel mode <1>[ 2.199948] #PF: error_code(0x0010) - not-present page <6>[ 2.199948] PGD 0 P4D 0 <4>[ 2.199948] Oops: Oops: 0010 [#1] PREEMPT SMP NOPTI <4>[ 2.199948] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 6.10.0-rc3 #1 <4>[ 2.199948] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.14.0-2 04/01/2014 <4>[ 2.199948] RIP: 0010:0x0 <4>[ 2.199948] Code: Unable to access opcode bytes at 0xffffffffffffffd6. <4>[ 2.199948] RSP: 0018:ffffa7ac80013a90 EFLAGS: 00000002 <4>[ 2.199948] RAX: 0000000000000000 RBX: ffffa4050333d600 RCX: 0000000000000000 <4>[ 2.199948] RDX: ffffa4050333d430 RSI: 0000000000000001 RDI: ffffa40502ff3100 <4>[ 2.199948] RBP: ffffa4050333d600 R08: ffffa405032f1c00 R09: 0000000000000000 <4>[ 2.199948] R10: 0000000000000246 R11: ffffa405032f1d80 R12: ffffa405032f1d80 <4>[ 2.199948] R13: 0000000000000001 R14: 0000000000000000 R15: ffffa4050333d760 <4>[ 2.199948] FS: 0000000000000000(0000) GS:ffffa4053e400000(0000) knlGS:0000000000000000 <4>[ 2.199948] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 <4>[ 2.199948] CR2: ffffffffffffffd6 CR3: 000000002a22e000 CR4: 00000000000006f0 <4>[ 2.199948] Call Trace: <4>[ 2.199948] <TASK> <4>[ 2.199948] ? __die+0x1f/0x70 <4>[ 2.199948] ? page_fault_oops+0x155/0x440 <4>[ 2.199948] ? ondemand_readahead+0x2c0/0x370 <4>[ 2.199948] ? bitmap_find_next_zero_area_off+0x7b/0x90 <4>[ 2.199948] ? exc_page_fault+0x69/0x150 <4>[ 2.199948] ? asm_exc_page_fault+0x26/0x30 <4>[ 2.199948] pci_irq_unmask_msix+0x53/0x60 <4>[ 2.199948] irq_enable+0x32/0x80 <4>[ 2.199948] __irq_startup+0x51/0x70 <4>[ 2.199948] irq_startup+0x62/0x120 <4>[ 2.199948] __setup_irq+0x326/0x730 <4>[ 2.199948] ? __pfx_vp_config_changed+0x10/0x10 <4>[ 2.199948] request_threaded_irq+0x10b/0x180 <4>[ 2.199948] vp_find_vqs_msix+0x16b/0x470 <4>[ 2.199948] vp_find_vqs+0x34/0x1a0 <4>[ 2.199948] vp_modern_find_vqs+0x16/0x60 <4>[ 2.199948] init_vqs+0x3ee/0x690 <4>[ 2.199948] virtnet_probe+0x50c/0xd10 <4>[ 2.199948] virtio_dev_probe+0x1dd/0x2b0 <4>[ 2.199948] really_probe+0xbc/0x2b0 <4>[ 2.199948] __driver_probe_device+0x6e/0x120 <4>[ 2.199948] driver_probe_device+0x19/0xe0 <4>[ 2.199948] __driver_attach+0x85/0x180 <4>[ 2.199948] ? __pfx___driver_attach+0x10/0x10 <4>[ 2.199948] bus_for_each_dev+0x76/0xd0 <4>[ 2.199948] bus_add_driver+0xe3/0x210 <4>[ 2.199948] driver_register+0x5b/0x110 <4>[ 2.199948] ? __pfx_virtio_net_driver_init+0x10/0x10 <4>[ 2.199948] virtio_net_driver_init+0x8b/0xb0 <4>[ 2.199948] ? __pfx_virtio_net_driver_init+0x10/0x10 <4>[ 2.199948] do_one_initcall+0x43/0x210 <4>[ 2.199948] kernel_init_freeable+0x19b/0x2d0 <4>[ 2.199948] ? __pfx_kernel_init+0x10/0x10 <4>[ 2.199948] kernel_init+0x15/0x1c0 <4>[ 2.199948] ret_from_fork+0x2f/0x50 <4>[ 2.199948] ? __pfx_kernel_init+0x10/0x10 <4>[ 2.199948] ret_from_fork_asm+0x1a/0x30 <4>[ 2.199948] </TASK> <4>[ 2.199948] Modules linked in: <4>[ 2.199948] CR2: 0000000000000000 <4>[ 2.199948] ---[ end trace 0000000000000000 ]--- Rob [1] https://linux.kernelci.org/test/job/robh/branch/for-kernelci/kernel/v6.10-rc3-21-gd27f9f4a2dd80/plan/baseline/