On Sat, Jun 17, 2017 at 08:14:33PM -0500, Bjorn Helgaas wrote: > On Sat, Jun 17, 2017 at 06:45:44PM +0100, Piotr Gregor wrote: > > Hi Bjorn, > > > > The pci_cfg_access_lock is most likely not needed there. > > The assignment by return type is indeed preferred in this case. > > > > However, you have changed the meaning of returned boolean information > > by pci_intx_mask_broken leaving pci_intx_mask_supported unchanged. > > The test should be: > > > > if (new != toggle) /* the test failed */ > > return 1; > > return 0; > > Oh, you're absolutely right, thanks for catching that! I updated my > pci/enumeration branch. > > > Regarding v2.3 - do you think it is worth to apply the check > > so we would have something like > > > > if ((new == toggle) || PCI_VERSION_PRIOR_TO_23) /* test OK or PCI prior to r2.3 */ > > return 0; > > return 1; > > I'm not sure how to test for r2.3 compliance. But even if we could, I > guess I think the current code is probably better because it actually > checks the property we care about, not a spec revision that is one > step removed from the property. > > Bjorn Hi Bjorn, You are right, having if ((new == toggle) || PCI_VERSION_PRIOR_TO_23) /* test OK or PCI prior to r2.3 */ return 0; return 1; would be incorrect, as if new != toggle then PCI_COMMAND_INTX_DISABLE is not writable so INTx masking support should be considered broken (regardless of PCI version). Piotr