Danilo Krummrich
17d4a399e8
rust: pci: convert IrqVectorRegistration to a lifetime-managed owning type
...
Convert IrqVectorRegistration from a devres-managed internal type to a
lifetime-annotated type that owns the PCI interrupt vector allocation.
Dropping it frees the vectors.
IrqVector gains a reference to the IrqVectorRegistration it was derived
from. Since index() borrows the registration, the compiler prevents the
allocation from being dropped while any IrqVector (and hence any
irq::Registration built from it) is still live.
alloc_irq_vectors() returns IrqVectorRegistration<'_> directly, giving
drivers explicit control over the allocation lifetime, which is needed
by net and block drivers that re-allocate vectors at runtime, e.g.
during queue reconfiguration or device recovery.
Tested-by: John Hubbard <jhubbard@nvidia.com >
Reviewed-by: Gary Guo <gary@garyguo.net >
Link: https://patch.msgid.link/20260813165234.620555-2-dakr@kernel.org
Signed-off-by: Danilo Krummrich <dakr@kernel.org >
2026-08-17 01:14:23 +02:00
..
2026-06-15 12:41:17 +05:30
2026-05-31 19:45:06 -06:00
2026-07-31 11:08:29 +02:00
2025-12-22 17:30:24 +01:00
2026-06-02 22:51:16 +02:00
2025-11-05 00:05:38 +01:00
2026-03-23 21:41:47 +01:00
2026-03-23 20:29:28 +01:00
2026-08-03 22:30:32 +02:00
2026-01-22 09:19:30 +01:00
2026-08-04 23:30:34 +02:00
2026-04-14 12:36:25 -07:00
2026-04-05 13:53:15 -07:00
2026-08-03 22:52:51 +02:00
2026-06-10 09:07:13 +02:00
2026-08-17 01:14:23 +02:00
2026-06-05 10:16:47 +02:00
2025-11-03 14:40:45 +01:00
2026-06-15 14:21:14 +05:30
2026-03-23 08:31:00 +01:00
2026-07-11 19:42:03 +02:00
2026-07-30 22:50:15 +02:00
2026-05-20 17:34:17 +02:00
2026-07-30 22:50:15 +02:00
2026-06-17 01:32:56 +02:00
2026-06-08 02:30:33 +02:00
2026-01-18 20:40:11 +01:00
2025-09-02 05:23:56 -06:00
2026-01-30 05:18:17 +01:00
2026-06-10 09:07:13 +02:00
2026-04-03 11:57:35 +02:00
2026-01-15 09:26:49 +01:00
2025-09-14 23:58:45 +02:00
2026-06-15 12:41:17 +05:30
2026-01-27 11:21:23 +05:30
2025-10-04 16:26:32 -07:00
2026-01-19 15:02:46 +01:00
2026-07-30 22:50:15 +02:00
2026-08-10 01:20:05 +02:00
2026-08-10 01:20:05 +02:00
2026-08-03 22:48:03 +02:00
2026-07-30 22:50:15 +02:00
2026-05-28 11:08:27 +02:00
2026-01-07 19:56:00 +01:00
2026-07-17 15:44:44 +02:00
2026-05-20 00:47:24 +02:00
2025-09-06 13:27:20 +02:00
2026-03-23 21:41:47 +01:00
2026-07-30 22:50:15 +02:00
2025-12-02 14:17:09 -05:00
2026-02-02 08:09:11 +01:00
2026-06-09 04:13:21 +02:00
2026-03-23 20:29:28 +01:00
2026-08-10 01:20:05 +02:00
2026-06-10 09:07:13 +02:00
2025-09-06 13:27:20 +02:00
2026-07-21 00:48:45 +02:00
2026-06-09 04:13:07 +02:00
2026-06-08 02:30:33 +02:00
2026-07-23 22:48:24 +02:00
2026-03-27 12:15:47 +01:00
2025-12-23 11:23:15 -08:00
2026-05-23 13:47:32 +02:00
2025-09-13 16:55:15 -07:00
2026-06-04 16:42:34 +00:00
2025-11-19 00:22:24 +01:00
2026-07-30 22:50:15 +02:00
2026-05-25 09:40:52 +05:30
2026-06-19 10:14:34 -07:00
2026-08-17 01:14:23 +02:00
2025-08-19 13:08:41 +02:00
2026-08-10 01:20:05 +02:00
2026-06-17 00:32:42 +02:00
2026-01-30 05:47:05 +01:00
2025-08-21 16:58:07 +02:00
2026-07-11 17:42:56 +02:00
2026-01-20 18:49:58 +01:00
2026-02-10 11:53:01 -08:00
2026-03-24 13:08:21 +00:00
2025-08-03 13:49:10 -07:00
2026-02-02 08:10:48 +01:00
2025-12-18 17:25:45 +01:00
2025-09-19 09:40:46 +02:00
2026-01-29 15:32:40 +01:00
2026-08-14 01:05:46 +02:00
2026-04-07 12:57:50 +02:00
2025-12-28 12:43:56 +01:00
2026-06-10 09:07:13 +02:00
2026-01-28 09:25:44 +01:00
2026-04-24 13:23:50 -07:00
2026-07-18 19:07:35 +02:00
2026-04-07 10:00:24 +02:00
2026-07-11 19:42:03 +02:00
2026-04-24 13:23:50 -07:00
2026-07-30 22:50:15 +02:00
2026-03-26 15:45:34 +00:00
2026-06-10 09:07:13 +02:00