Re: [PATCH v3 0/4] Implement IOCTL to get and clear soft dirty PTE

From: Greg KH
Date: Tue Oct 18 2022 - 06:48:18 EST


On Tue, Oct 18, 2022 at 03:36:24PM +0500, Muhammad Usama Anjum wrote:
> /**
> * struct pagemap_sd_args - Soft-dirty IOCTL argument
> * @start: Starting address
> * @len: Length of the region
> * @vec: Output page_region struct array
> * @vec_len: Length of the page_region struct array
> * @max_out_page: Optional max output pages (It must be less than vec_len if
> specified)
> * @flags: Special flags for the IOCTL
> * @rmask: Special flags for the IOCTL
> * @amask: Special flags for the IOCTL
> * @emask: Special flags for the IOCTL

What do you mean exactly by "special flags"?

> * @__reserved: Reserved member to preserve data alignment. Must be 0.
> */
> struct pagemap_sd_args {
> __u64 __user start;
> __u64 len;
> __u64 __user vec; // page_region

__user is a marking for a pointer, not a u64, right? Now the fact that
you treat it like a pointer later in the kernel is different, but that
shouldn't be on the uapi header file. You can put it in the kerneldoc,
which you did not do.

thanks,

greg k-h