On Tue, 18 Oct 2011, Michael S. Tsirkin wrote: > On Tue, Oct 18, 2011 at 02:23:29PM +0200, Jan Kiszka wrote: > > On 2011-10-18 14:05, Michael S. Tsirkin wrote: > > > On Mon, Oct 17, 2011 at 09:15:47PM +0200, Jan Kiszka wrote: > > >> On 2011-10-17 15:43, Michael S. Tsirkin wrote: > > >>> On Mon, Oct 17, 2011 at 11:27:45AM +0200, Jan Kiszka wrote: > > >>>> diff --git a/hw/msi.c b/hw/msi.c > > >>>> index 3c7ebc3..9055155 100644 > > >>>> --- a/hw/msi.c > > >>>> +++ b/hw/msi.c > > >>>> @@ -40,6 +40,14 @@ > > >>>> /* Flag for interrupt controller to declare MSI/MSI-X support */ > > >>>> bool msi_supported; > > >>>> > > >>>> +static void msi_unsupported(MSIMessage *msg) > > >>>> +{ > > >>>> + /* If we get here, the board failed to register a delivery > > >>>> handler. */ > > >>>> + abort(); > > >>>> +} > > >>>> + > > >>>> +void (*msi_deliver)(MSIMessage *msg) = msi_unsupported; > > >>>> + > > >>> > > >>> How about we set this to NULL, and check it instead of the bool > > >>> flag? > > >>> > > >> > > >> Yeah. I will introduce > > >> > > >> bool msi_supported(void) > > >> { > > >> return msi_deliver != msi_unsupported; > > >> } > > >> > > >> OK? > > >> > > >> Jan > > >> > > > > > > Looks a bit weird ... > > > NULL is a pretty standard value for an invalid pointer, isn't it? > > > > Save us the runtime check and is equally expressive and readable IMHO. > > > > Jan > > Do we need to check? > NULL dereference leads to a crash just as surely... >
Not universally (not on AIX for instance (read)). -- mailto:av1...@comtv.ru