On Thu, Sep 5, 2013 at 2:06 PM, Tejun Heo <tj@xxxxxxxxxx> wrote: > Hello, Alexander. > > On Thu, Sep 05, 2013 at 08:54:40PM +0200, Alexander Gordeev wrote: >> I assume reasons for having this type of interface at the moment of >> taking design decision about pci_enable_msi_block() still hold true. >> I do not know what those reasons were, but I think the fact multiple >> MSIs are rarely used and MSI-X exists does not invalidate them now. > > Well, it does change the underlying assumptions to make trade-offs > against. If something is widely used, expected to continue to expand, > additional complexity to achieve better outcome is likely to be more > justifiable. Nothing exists in vacuum. That said, I'm not even sure > whether we want this sort of interface even if multiple MSI were still > the hot thing. > >> I did consider the other argument - since pci_enable_msi_block_part() >> is explicitly provided with a value of MME the caller will not be >> satisfied with any other value and hence a repeated call with a lesser >> MME does not make sense for the caller. Therefore we could just fail >> in case the architecture returned a positive value. Same result, but >> different reasoning. > > Just making the whole thing including arch methods to return 0/-errno > would probably be a lot cleaner. > >> At the moment I still prefer pci_enable_msi_block_part() to be similar >> to pci_enable_msi_block(). I do agree the fallback logic is error-prone, >> but I would not dare to scrap it all right away. > > Yeah, of course, pci_enable_msi_block() would need to be updated to > match too. I understand this is going a bit off the original scope of > the patchset but I can't help but cringing at the interface and the > resulting "fallback" logic it ends up creating in its users. Bjorn, > what do you think? Sorry, I haven't jumped in here yet because I saw your discussion and was hoping you guys would figure something out without my help. It will take me a few hours to look into this and come up with anything constructive to say. I do remember disliking the complicated interface of pci_enable_msi_block() (return negative errno, return positive "we might be able to do this" values, or zero), but I'll have to do some more research before I can say much more than that. Bjorn -- To unsubscribe from this list: send the line "unsubscribe linux-pci" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html