On Tue, May 31, 2011 at 08:17:33AM -0400, Kenneth R Westerback wrote:
> On Tue, May 31, 2011 at 10:21:33AM +0200, Peter Hessler wrote:
> > similar to other such diffs, this enables msi for ix(4).
> > 
> > OK?
> > 
> > Index: dev/pci/if_ix.c
> > ===================================================================
> > RCS file: /cvs/src/sys/dev/pci/if_ix.c,v
> > retrieving revision 1.51
> > diff -u -p -r1.51 if_ix.c
> > --- dev/pci/if_ix.c 15 Apr 2011 15:12:27 -0000      1.51
> > +++ dev/pci/if_ix.c 31 May 2011 07:39:46 -0000
> > @@ -1297,7 +1321,7 @@ ixgbe_allocate_legacy(struct ix_softc *s
> >             sc->rid[0] = 0;
> >  
> >     /* We allocate a single interrupt resource */
> > -   if (pci_intr_map(pa, &ih)) {
> > +   if (pci_intr_map_msi(pa, &ih) != 0 && pci_intr_map(pa, &ih) != 0) {
> >             printf(": couldn't map interrupt\n");
> >             return (ENXIO);
> >     }
> > 
> > 
> > 
> > 
> > -- 
> > Lowery's Law:
> >         If it jams -- force it.
> >         If it breaks, it needed replacing anyway.
> > 
> 
> I had to pull the exact same diff out of ahci.c in order to make
> my system boot -current. So I am now interested if such diffs are
> the "right thing" to do and soemthing else is broken in ahci.
> 

Some drivers need special handling for MSI others should just work if the
underlying HW does correct MSI. IMO it is now the time to try to turn on
as many MSI interrupt handlers as possible to see which MB/chipsets may
need some blacklisting. On the other hand a knob to turn it off in case
MSI fails would be nice.

-- 
:wq Claudio

Reply via email to