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? > > 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 -- 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