On Wed, Sep 30, 2015 at 2:30 PM, Rob Herring <robh@xxxxxxxxxx> wrote: > On Wed, Sep 30, 2015 at 4:17 PM, Duc Dang <dhdang@xxxxxxx> wrote: >> On Tue, Sep 29, 2015 at 9:47 AM, Rob Herring <robh@xxxxxxxxxx> wrote: >>> + several affected driver maintainers >>> >>> On Mon, Sep 28, 2015 at 6:05 PM, Russell King - ARM Linux >>> <linux@xxxxxxxxxxxxxxxx> wrote: >>>> On Mon, Sep 28, 2015 at 05:42:20PM -0500, Rob Herring wrote: >>>>> On Mon, Sep 28, 2015 at 5:08 PM, Bjorn Helgaas <helgaas@xxxxxxxxxx> wrote: >>>>> > Hi Rob, >>>>> > >>>>> > Russell pointed out a problem with 1f94a94f67e1 ("PCI: Add generic config >>>>> > accessors"). pci_generic_config_write32() does a read/modify/write if the >>>>> > size is less than 32 bits, so I think we have problem if this is used with >>>>> > 8- or 16-bit registers that contain RW1C bits. Any thoughts on how we can >>>>> > fix this? >>>>> >>>>> My series didn't change access sizes unless I made a made a mistake >>>>> somewhere, so the problem should have existed before. >>>>> >>>>> Is it known addresses we need to deal with? We could do special case >>>>> handling of certain addresses to mask out RW1C bits. This could be in >>>>> the generic functions or in wrappers around the generic functions. >>>>> There's already some similar examples of special address handling >>>>> IIRC. >>>> >>>> I think this originally came into being because Intel decided that their >>>> IOP platforms wouldn't support anything except 32-bit accesses, and >>>> cargo cult programming took over. I complained about it on the Intel IOP >>>> platforms, but obviously if the hardware doesn't support anything else >>>> then your stuck with it. >>> >>> What about SA1100 nanoengine? >>> >>> Others are Tegra, XGene, iproc, and maybe rcar. These are all >>> relatively active platforms, so hopefully some testing can be done. >> >> On X-Gene, so far I don't see anything strange after switching to use >> pci_generic_config_write32 with all the cards that I can test. > > You mean switching to use pci_generic_config_write, right? Hi Rob, I meant even using pci_generic_config_write32 , all the cards that I have right now are still running fine. > >> >> But looks like it's still safer to use pci_generic_config_write >> instead as this will make sure no unexpected read-modify-write will >> happen? > > Yes. You can also change xgene_pcie_config_read32 to use > pci_generic_config_read instead to simplify the function some. > > Rob Regards, Duc Dang. -- 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