On Wed, Aug 23, 2023 at 09:14:07AM -0600, Alex Williamson wrote: > On Wed, 23 Aug 2023 14:50:31 +0000 > Ankit Agrawal <ankita@xxxxxxxxxx> wrote: > > > >> + if (index == VFIO_PCI_BAR2_REGION_INDEX) { > > >> + if (!nvdev->opregion) { > > >> + nvdev->opregion = memremap(nvdev->hpa, nvdev->mem_length, MEMREMAP_WB); > > >> + if (!nvdev->opregion) > > >> + return -ENOMEM; > > >> + } > > > > > > [AW] Seems like this would be susceptible to concurrent accesses causing > > > duplicate mappings. > > > > > > [JG] Needs some kind of locking on opregion > > > > Right, will add a new lock item in nvdev to control the access to opregion/memmap. > > Please let me know if it is preferable to do memremap in open_device instead of > > read/write. > > That's a valid option also, certainly avoids the locking and > serialization per access. Thanks, open_device is no good, that would waste large amounts of kernel memory for page tables to support something we don't expect to be used. Jason