Message ID | 20250413173758.12068-8-dakr@kernel.org (mailing list archive) |
---|---|
State | Handled Elsewhere |
Delegated to: | Bjorn Helgaas |
Headers | show |
Series | Implement "Bound" device context | expand |
On Sun Apr 13, 2025 at 7:37 PM CEST, Danilo Krummrich wrote: > Require the Bound device context to be able to call iomap_region() and > iomap_region_sized(). Creating I/O mapping requires the device to be > bound. > > Signed-off-by: Danilo Krummrich <dakr@kernel.org> Reviewed-by: Benno Lossin <benno.lossin@proton.me> --- Cheers, Benno > --- > rust/kernel/pci.rs | 2 ++ > 1 file changed, 2 insertions(+)
On Sun, Apr 13, 2025 at 07:37:02PM +0200, Danilo Krummrich wrote: > Require the Bound device context to be able to call iomap_region() and > iomap_region_sized(). Creating I/O mapping requires the device to be > bound. > > Signed-off-by: Danilo Krummrich <dakr@kernel.org> > --- > rust/kernel/pci.rs | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/rust/kernel/pci.rs b/rust/kernel/pci.rs > index 1234b0c4a403..3664d35b8e79 100644 > --- a/rust/kernel/pci.rs > +++ b/rust/kernel/pci.rs > @@ -390,7 +390,9 @@ pub fn resource_len(&self, bar: u32) -> Result<bindings::resource_size_t> { > // - by its type invariant `self.as_raw` is always a valid pointer to a `struct pci_dev`. > Ok(unsafe { bindings::pci_resource_len(self.as_raw(), bar.try_into()?) }) > } > +} > > +impl Device<device::Bound> { > /// Mapps an entire PCI-BAR after performing a region-request on it. I/O operation bound checks > /// can be performed on compile time for offsets (plus the requested type size) < SIZE. You didn't add these typos here, but s/Mapps/Maps/ s/on compile time/at compile time/ > pub fn iomap_region_sized<const SIZE: usize>( > -- > 2.49.0 >
diff --git a/rust/kernel/pci.rs b/rust/kernel/pci.rs index 1234b0c4a403..3664d35b8e79 100644 --- a/rust/kernel/pci.rs +++ b/rust/kernel/pci.rs @@ -390,7 +390,9 @@ pub fn resource_len(&self, bar: u32) -> Result<bindings::resource_size_t> { // - by its type invariant `self.as_raw` is always a valid pointer to a `struct pci_dev`. Ok(unsafe { bindings::pci_resource_len(self.as_raw(), bar.try_into()?) }) } +} +impl Device<device::Bound> { /// Mapps an entire PCI-BAR after performing a region-request on it. I/O operation bound checks /// can be performed on compile time for offsets (plus the requested type size) < SIZE. pub fn iomap_region_sized<const SIZE: usize>(
Require the Bound device context to be able to call iomap_region() and iomap_region_sized(). Creating I/O mapping requires the device to be bound. Signed-off-by: Danilo Krummrich <dakr@kernel.org> --- rust/kernel/pci.rs | 2 ++ 1 file changed, 2 insertions(+)