All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/5] Rework PCI IRQ vector code
@ 2026-08-10 22:47 Danilo Krummrich
  2026-08-10 22:47 ` [PATCH 1/5] rust: irq: add anchor generic to IrqRequest and Registration Danilo Krummrich
                   ` (4 more replies)
  0 siblings, 5 replies; 7+ messages in thread
From: Danilo Krummrich @ 2026-08-10 22:47 UTC (permalink / raw)
  To: bhelgaas, dakr, kwilczynski, aliceryhl, daniel.almeida, ojeda,
	boqun, gary, bjorn3_gh, lossin, a.hindborg, tmgross, tamird,
	acourbot, work, jhubbard, ttabi, apopple, ecourtney, shashanks,
	zhiw
  Cc: driver-core, linux-pci, rust-for-linux, linux-kernel

This series reworks the Rust PCI interrupt vector abstractions, motivated by
review feedback on the nova-core interrupt support series [1].

Convert IrqVectorRegistration to a lifetime-managed owning type, replacing the
devres-based approach. Add an anchor generic on IrqRequest and irq::Registration
to create a borrow chain that prevents the vector allocation from being dropped
while any IRQ handler is still registered.

Remove IrqVector; resolve a vector index to an IrqRequest directly via
IrqVectorRegistration::request().

Add pci_irq_type() as a C function in include/linux/pci.h, replacing open-coded
checks across drivers [2], and wrap it for Rust.

[1] https://lore.kernel.org/all/20260808031120.363869-1-jhubbard@nvidia.com/
[2] https://elixir.bootlin.com/linux/v7.1/source/drivers/net/ethernet/aquantia/atlantic/aq_pci_func.c#L196

Danilo Krummrich (5):
  rust: irq: add anchor generic to IrqRequest and Registration
  rust: pci: convert IrqVectorRegistration to a lifetime-managed owning
    type
  rust: pci: remove IrqVector and resolve IrqRequest directly
  PCI: add pci_irq_type() to query the allocated interrupt type
  rust: pci: expose the allocated interrupt type

 include/linux/pci.h        |  25 +++++
 rust/helpers/pci.c         |   5 +
 rust/kernel/irq.rs         |  10 +-
 rust/kernel/irq/request.rs |  86 +++++++++++----
 rust/kernel/pci.rs         |   2 +-
 rust/kernel/pci/irq.rs     | 213 ++++++++++++++-----------------------
 6 files changed, 182 insertions(+), 159 deletions(-)


base-commit: dbaafe9cc56a996931eedfe043eb34418cc9cd9b
-- 
2.55.0


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2026-08-11 11:44 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-08-10 22:47 [PATCH 0/5] Rework PCI IRQ vector code Danilo Krummrich
2026-08-10 22:47 ` [PATCH 1/5] rust: irq: add anchor generic to IrqRequest and Registration Danilo Krummrich
2026-08-10 22:47 ` [PATCH 2/5] rust: pci: convert IrqVectorRegistration to a lifetime-managed owning type Danilo Krummrich
2026-08-11 11:44   ` Gary Guo
2026-08-10 22:47 ` [PATCH 3/5] rust: pci: remove IrqVector and resolve IrqRequest directly Danilo Krummrich
2026-08-10 22:47 ` [PATCH 4/5] PCI: add pci_irq_type() to query the allocated interrupt type Danilo Krummrich
2026-08-10 22:47 ` [PATCH 5/5] rust: pci: expose " Danilo Krummrich

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.