Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider: - [Medium] mm: VM_WARN_ON_ONCE triggered by vm_flags_reset() in mmap hook --
commit a356d47e4beede9d3e032c777130976d06dd5dd8 Author: Lorenzo Stoakes (ARM) <[email protected]> infiniband: update hfi1 to use remap_vmalloc_range() In cases which map chip memory from vmalloc()'d ranges, the hfi1 infiniband drivers currently installs a fault handler, and then smuggles the kernel virtual address of this range in vma->vm_pgoff. > diff --git a/drivers/infiniband/hw/hfi1/file_ops.c > b/drivers/infiniband/hw/hfi1/file_ops.c > index dc548e6802e24..b02d1f1dbb27b 100644 > --- a/drivers/infiniband/hw/hfi1/file_ops.c > +++ b/drivers/infiniband/hw/hfi1/file_ops.c [ ... ] > @@ -422,7 +418,7 @@ static int hfi1_file_mmap(struct file *fp, struct > vm_area_struct *vma) > ret = -EPERM; > goto done; > } > - vm_flags_clear(vma, VM_MAYWRITE); > + vm_flags_mod(vma, VM_DONTEXPAND, VM_MAYWRITE); > /* > * Mmap multiple separate allocations into a single vma. From > * here, dma_mmap_coherent() calls dma_direct_mmap(), which [ ... ] > @@ -559,12 +546,10 @@ static int hfi1_file_mmap(struct file *fp, struct > vm_area_struct *vma) > } > > vm_flags_reset(vma, flags); > - mmap_cdbg(ctxt, subctxt, type, mapio, vmf, memaddr, memvirt, memdma, > + mmap_cdbg(ctxt, subctxt, type, mapio, is_vmalloc, memaddr, memvirt, > memdma, > memlen, vma); > - if (vmf) { > - vma->vm_pgoff = PFN_DOWN(memaddr); > - vma->vm_ops = &vm_ops; > - ret = 0; > + if (is_vmalloc) { > + ret = remap_vmalloc_range(vma, memvirt, 0); [Severity: Medium] Will this trigger a lockdep warning due to the VMA not being write-locked? In hfi1_file_mmap(), modifying the VMA flags using vm_flags_reset() (and the newly introduced vm_flags_mod() earlier in this function) enforces write-lock assertions via vma_assert_write_locked(). Because the VMA is not yet inserted into the tree and is not write-locked during the mmap callback, its vm_lock_seq is uninitialized (UINT_MAX) and will not match the mm lock sequence. This triggers a VM_WARN_ON_ONCE_VMA. Should vm_flags_init() be used instead? -- Sashiko AI review ยท https://sashiko.dev/#/patchset/20261013-b4-mmap-prepare-vma-flag-sanify-v6-0-1aa3c9b13...@kernel.org?part=11
