Subject: Re: [PATCH][0/2] RTAS MSI

From: Michael Ellerman <[email-masked]>
Date: Wed, 09 Aug 2006 12:23:30 +1000

On Fri, 2006-07-28 at 20:43 +0200, Segher Boessenkool wrote:
> >> The RTAS patch skips the intel-centric MSI layer and uses
> >> pci_enable/disable_msi() calls directly.  It does not correctly  
> >> handle
> >> multi-vector MSI either.
> >
> > Multi-vector MSIs aren't handled by the linux API anyway it seems (the
> > doc says pci_enable_msi() only ever enables one MSI) so that's fine if
> > you don't handle them :) The word on the street is that multivector  
> > MSIs
> > aren't useful, MSI-X are.
> 
> pci_enable_msi() should always enable exactly one or zero MSIs.  Maybe
> Jake's patch doesn't follow this rule, and that is what he alluded to?

I was just re-reading this thread and this got me thinking. I think the
current code does violate this rule if firmware has allocated more than
one MSI to the device.

In rtas_enable_msi() we ask firmware how many MSIs the device has been
given (by firmware), we then return one to the driver, but leave any
extras configured.

So this might lead to the state where the card has been configured to
use x MSIs, but we only tell the driver about 1 of them. I don't know
enough PCI to grok if that's going to be a problem.

cheers

-- 
Michael Ellerman
IBM OzLabs

wwweb: http://michael.ellerman.id.au
phone: +61 2 6212 1183 (tie line 70 21183)

We do not inherit the earth from our ancestors,
we borrow it from our children. - S.M.A.R.T Person