On 3/20/26 23:39, Lorenzo Stoakes (Oracle) wrote:
> The f_op->mmap interface is deprecated, so update driver to use its
> successor, mmap_prepare.
> 
> The driver previously used vm_iomap_memory(), so this change replaces it
> with its mmap_prepare equivalent, mmap_action_simple_ioremap().
> 
> Reviewed-by: Suren Baghdasaryan <[email protected]>
> Signed-off-by: Lorenzo Stoakes (Oracle) <[email protected]>

Acked-by: Vlastimil Babka (SUSE) <[email protected]>

> ---
>  drivers/misc/open-dice.c | 19 +++++++++++--------
>  1 file changed, 11 insertions(+), 8 deletions(-)
> 
> diff --git a/drivers/misc/open-dice.c b/drivers/misc/open-dice.c
> index 24c29e0f00ef..45060fb4ea27 100644
> --- a/drivers/misc/open-dice.c
> +++ b/drivers/misc/open-dice.c
> @@ -86,29 +86,32 @@ static ssize_t open_dice_write(struct file *filp, const 
> char __user *ptr,
>  /*
>   * Creates a mapping of the reserved memory region in user address space.
>   */
> -static int open_dice_mmap(struct file *filp, struct vm_area_struct *vma)
> +static int open_dice_mmap_prepare(struct vm_area_desc *desc)
>  {
> +     struct file *filp = desc->file;
>       struct open_dice_drvdata *drvdata = to_open_dice_drvdata(filp);
>  
> -     if (vma->vm_flags & VM_MAYSHARE) {
> +     if (vma_desc_test(desc, VMA_MAYSHARE_BIT)) {
>               /* Do not allow userspace to modify the underlying data. */
> -             if (vma->vm_flags & VM_WRITE)
> +             if (vma_desc_test(desc, VMA_WRITE_BIT))
>                       return -EPERM;
>               /* Ensure userspace cannot acquire VM_WRITE later. */
> -             vm_flags_clear(vma, VM_MAYWRITE);
> +             vma_desc_clear_flags(desc, VMA_MAYWRITE_BIT);
>       }
>  
>       /* Create write-combine mapping so all clients observe a wipe. */
> -     vma->vm_page_prot = pgprot_writecombine(vma->vm_page_prot);
> -     vm_flags_set(vma, VM_DONTCOPY | VM_DONTDUMP);
> -     return vm_iomap_memory(vma, drvdata->rmem->base, drvdata->rmem->size);
> +     desc->page_prot = pgprot_writecombine(desc->page_prot);
> +     vma_desc_set_flags(desc, VMA_DONTCOPY_BIT, VMA_DONTDUMP_BIT);
> +     mmap_action_simple_ioremap(desc, drvdata->rmem->base,
> +                                drvdata->rmem->size);
> +     return 0;
>  }
>  
>  static const struct file_operations open_dice_fops = {
>       .owner = THIS_MODULE,
>       .read = open_dice_read,
>       .write = open_dice_write,
> -     .mmap = open_dice_mmap,
> +     .mmap_prepare = open_dice_mmap_prepare,
>  };
>  
>  static int __init open_dice_probe(struct platform_device *pdev)


Reply via email to