Skip to content

MSI-X function masking is not respected #807

Description

@jlevon

We accept writes to mask the function as per MSI-X spec:

  246     if (msix->mxc.fm != new_msix.mxc.fm) {                                       
  247         msix->mxc.fm = new_msix.mxc.fm;                                          
  248         if (msix->mxc.fm) {                                                      
  249             vfu_log(vfu_ctx, LOG_DEBUG, "all MSI-X vectors masked");             
  250         } else {                                                                 
  251             vfu_log(vfu_ctx, LOG_DEBUG,                                          
  252                    "vector's mask bit determines whether vector is masked");     
  253         }                                                                        
  254     }                                                                            

However, that's all we ever do. While in theory, library users could check this field themselves prior to vfu_irq_trigger(), we should probably do this in the library, along with correctly handling PBA (as per #806).

SPDK at least doesn't respect this

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions