> From: Ramesh Thomas <ramesh.thomas@xxxxxxxxx> > Sent: Friday, May 17, 2024 6:30 PM > > On 4/25/2024 9:56 AM, Gerd Bayer wrote: > > From: Ben Segal <bpsegal@xxxxxxxxxx> > > > > @@ -148,6 +155,15 @@ ssize_t vfio_pci_core_do_io_rw(struct > vfio_pci_core_device *vdev, bool test_mem, > > else > > fillable = 0; > > > > +#if defined(ioread64) && defined(iowrite64) > > Can we check for #ifdef CONFIG_64BIT instead? In x86, ioread64 and > iowrite64 get declared as extern functions if CONFIG_GENERIC_IOMAP is > defined and this check always fails. In include/asm-generic/io.h, > asm-generic/iomap.h gets included which declares them as extern functions. > > One more thing to consider io-64-nonatomic-hi-lo.h and > io-64-nonatomic-lo-hi.h, if included would define it as a macro that > calls a function that rw 32 bits back to back. I don't see the problem here. when the defined check fails it falls back to back-to-back vfio_pci_core_iordwr32(). there is no need to do it in an indirect way via including io-64-nonatomic-hi-lo.h.