On Tue, 2 Aug 2016 09:54:19 -0600
Alex Williamson <alex.william...@redhat.com> wrote:

> On Tue, 2 Aug 2016 10:21:30 +0000
> chris thompson <the_cartograp...@hotmail.com> wrote:
> 
> > Hi Alex,
> >  
> > Thanks for your patience, I noticed the count != 0 issue shortly after, but 
> > I get the same EINVAL error anyway when it is zero - but this is because 
> > the IRQ does not have a mapping yet. When I change the code to map it then 
> > unmap it then I get:
> > IRQx - successful map then unmap
> > MSI - unsuccessful map (and unsuccessful unmap)
> > MSIX - successful map then unmap (despite the device still being in IRQx 
> > mode?)
> > Error - successfully map, kernel driver crash on the unmap!  

I remembered that there is a trick here specific to MSI, your device
probably supports more than one MSI vector.  MSI is a little bit
special, not all platforms support multiple MSI vectors and they were
pretty much outdated by the much more flexible MSI-X capability for
that reason.  To help with this the SET_IRQS ioctl returns negative on
error, 0 on success, and a positive value indicating the available
vectors to retry with if the requested count is not supported/available.

BTW, this should fix the oops you found:
https://lkml.org/lkml/2016/8/2/1912

Thanks,
Alex

_______________________________________________
vfio-users mailing list
vfio-users@redhat.com
https://www.redhat.com/mailman/listinfo/vfio-users

Reply via email to