On 5/21/24 01:27, Miguel Ojeda wrote:
On Mon, May 20, 2024 at 7:27 PM Danilo Krummrich <dakr@xxxxxxxxxx> wrote:
+ let barlen = pdev.resource_len(num)?;
+ if barlen == 0 {
+ return Err(ENOMEM);
+ }
+
+ // SAFETY:
+ // `pdev` is always valid.
Please explain why it is always valid -- the point of a `SAFETY`
comment is not to say something is OK, but why it is so.
+ // `barnr` is checked for validity at the top of the function.
I added pci::Device::resource_len(), since I needed to get the VRAM bar size in Nova.
pci::Device::resource_len() also needs to check for a valid bar index and is used
above, hence the check is implicit. I just forgot to change this comment accordingly.
+ /// Returns the size of the given PCI bar resource.
+ pub fn resource_len(&self, bar: u8) -> Result<bindings::resource_size_t> {
Sometimes `bindings::` in signatures of public methods may be
justified -- is it the case here? Or should a newtype or similar be
provided instead? I only see this function being called inside the
module, anyway.
I agree, I just added this function real quick to let Nova report the VRAM bar size
and forgot to clean this up.
+ /// Mapps an entire PCI-BAR after performing a region-request on it.
Typo.
Cheers,
Miguel