[PATCH v2 2/7] rust: pci: Add sriov_get_totalvfs() helper
Zhi Wang <[email protected]>
| Newsgroups | dev.linux.lists.nova-gpu,org.kernel.vger.linux-kernel,org.kernel.vger.linux-pci |
|---|---|
| Message-ID | <[email protected]> |
Expose pci_sriov_get_totalvfs() to Rust PCI drivers so they can query how many SR-IOV VFs a device supports. The C helper now returns u16 and reports 0 when SR-IOV is unavailable or the device is not a PF, so mirror that API directly instead of modeling 0 VFs as an error. Cc: Bjorn Helgaas <[email protected]> Cc: [email protected] Signed-off-by: Zhi Wang <[email protected]> --- rust/kernel/pci.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/rust/kernel/pci.rs b/rust/kernel/pci.rs index 5071cae6543f..adcb99fd0a2e 100644 --- a/rust/kernel/pci.rs +++ b/rust/kernel/pci.rs @@ -450,6 +450,12 @@ pub fn pci_class(&self) -> Class { // SAFETY: `self.as_raw` is a valid pointer to a `struct pci_dev`. Class::from_raw(unsafe { (*self.as_raw()).class }) } + + /// Returns the total number of VFs, or 0 if SR-IOV is not available. + pub fn sriov_get_totalvfs(&self) -> u16 { + // SAFETY: `self.as_raw()` is a valid pointer to a `struct pci_dev`. + unsafe { bindings::pci_sriov_get_totalvfs(self.as_raw()) } + } } impl<'a> Device<device::Core<'a>> { -- 2.51.0