On Fri, Feb 16, 2024 at 08:48:14PM -0400, Jason Gunthorpe wrote: > The signature for __iowrite64_copy() requires the number of 64 bit > quantities, not bytes. Multiple by 8 to get to a byte length before > invoking zpci_memcpy_toio() > > Fixes: 87bc359b9822 ("s390/pci: speed up __iowrite64_copy by using pci store block insn") > Acked-by: Niklas Schnelle <schnelle@xxxxxxxxxxxxx> > Signed-off-by: Jason Gunthorpe <jgg@xxxxxxxxxx> > --- > arch/s390/pci/pci.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/s390/pci/pci.c b/arch/s390/pci/pci.c > index 676ac74026a82b..52a44e353796c0 100644 > --- a/arch/s390/pci/pci.c > +++ b/arch/s390/pci/pci.c > @@ -252,7 +252,7 @@ resource_size_t pcibios_align_resource(void *data, const struct resource *res, > /* combine single writes by using store-block insn */ > void __iowrite64_copy(void __iomem *to, const void *from, size_t count) > { > - zpci_memcpy_toio(to, from, count); > + zpci_memcpy_toio(to, from, count * 8); > } Odd, this bug is 11 years old, and there was never any bug report. Is this never called, or how is this possible? Niklas, would you happen to have an idea?