Andrew Donnellan <andrew.donnel...@au1.ibm.com> writes: > When writing a value to config space, cxl_pcie_write_config() calls > cxl_pcie_config_info() to obtain a mask and shift value, shifts the new > value accordingly, then uses the mask to combine the shifted value with the > existing value at the address as part of a read-modify-write pattern. > > Currently, we use a logical OR operator rather than a bitwise OR operator, > which means any use of this function results in an incorrect value being > written. Replace the logical OR operator with a bitwise OR operator so the > value is written correctly. > > Reported-by: Michael Ellerman <m...@ellerman.id.au> > Cc: sta...@vger.kernel.org
Given that there are no current users of this function, does this need to go to stable? Does it actually fix a real (as opposed to theoretical) bug? Regards, Daniel > Fixes: 6f7f0b3df6d4 ("cxl: Add AFU virtual PHB and kernel API") > Signed-off-by: Andrew Donnellan <andrew.donnel...@au1.ibm.com> > --- > drivers/misc/cxl/vphb.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/misc/cxl/vphb.c b/drivers/misc/cxl/vphb.c > index 94b5208..9be09bb 100644 > --- a/drivers/misc/cxl/vphb.c > +++ b/drivers/misc/cxl/vphb.c > @@ -203,7 +203,7 @@ static int cxl_pcie_write_config(struct pci_bus *bus, > unsigned int devfn, > mask <<= shift; > val <<= shift; > > - v = (in_le32(ioaddr) & ~mask) || (val & mask); > + v = (in_le32(ioaddr) & ~mask) | (val & mask); > > out_le32(ioaddr, v); > return PCIBIOS_SUCCESSFUL; > -- > Andrew Donnellan Software Engineer, OzLabs > andrew.donnel...@au1.ibm.com Australia Development Lab, Canberra > +61 2 6201 8874 (work) IBM Australia Limited > > _______________________________________________ > Linuxppc-dev mailing list > Linuxppc-dev@lists.ozlabs.org > https://lists.ozlabs.org/listinfo/linuxppc-dev
signature.asc
Description: PGP signature
_______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev