public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* nvme driver: possible missing `unregister_irq`
@ 2022-11-08 17:18 Dennis Dai
  2022-11-08 17:46 ` Miguel Ojeda
  2022-11-08 19:30 ` Andreas Hindborg
  0 siblings, 2 replies; 4+ messages in thread
From: Dennis Dai @ 2022-11-08 17:18 UTC (permalink / raw)
  To: Miguel Ojeda, Alex Gaynor, Wedson Almeida Filho, Boqun Feng,
	Gary Guo, Björn Roy Baron, rust-for-linux, linux-kernel
  Cc: baijiaju1990@gmail.com

Hi all,

I was inspecting the rust nvme driver [1] and would like know if the following
code contains a missing unregister or I missed anything

// nvme.rs:180, in NvmeDevice::setup_io_queues
        admin_queue.register_irq(pci_dev)?;
// nvme.rs:186, in NvmeDevice::setup_io_queues
        let q_depth = core::cmp::min(...).try_into()?;
// nvme.rs:190, in NvmeDevice::setup_io_queues
        let tagset = mq::TagSet::try_new(...)?; //TODO: 1 or 3 on
demand, depending on polling enabled

Line 186 and 190 could abort the execution of
NvmeDevice::setup_io_queues without calling `unregister_irq`.
In the end this could result in an `request_threaded_irq` without a
pairing `free_irq` on failure.
Or is the job done by Rust by auto dropping?

Thank you very much!

[1] https://github.com/metaspace/rust-linux/commit/d88c3744d6cbdf11767e08bad56cbfb67c4c96d0

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

end of thread, other threads:[~2022-11-09  8:34 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-11-08 17:18 nvme driver: possible missing `unregister_irq` Dennis Dai
2022-11-08 17:46 ` Miguel Ojeda
2022-11-08 19:30 ` Andreas Hindborg
2022-11-09  8:34   ` Dennis Dai

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox