On Fri, Aug 24, 2018 at 03:25:47PM -0400, jglisse@xxxxxxxxxx wrote: > From: Jérôme Glisse <jglisse@xxxxxxxxxx> > > Use a structure to gather all the parameters for the update callback. > This make it easier when adding new parameters by avoiding having to > update all callback function signature. > > Signed-off-by: Jérôme Glisse <jglisse@xxxxxxxxxx> > Cc: Ralph Campbell <rcampbell@xxxxxxxxxx> > Cc: John Hubbard <jhubbard@xxxxxxxxxx> > Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> > --- > include/linux/hmm.h | 25 +++++++++++++++++-------- > mm/hmm.c | 27 ++++++++++++++------------- > 2 files changed, 31 insertions(+), 21 deletions(-) > > diff --git a/include/linux/hmm.h b/include/linux/hmm.h > index 1ff4bae7ada7..a7f7600b6bb0 100644 > --- a/include/linux/hmm.h > +++ b/include/linux/hmm.h > @@ -274,13 +274,26 @@ static inline uint64_t hmm_pfn_from_pfn(const struct hmm_range *range, > struct hmm_mirror; > > /* > - * enum hmm_update_type - type of update > + * enum hmm_update_event - type of update > * @HMM_UPDATE_INVALIDATE: invalidate range (no indication as to why) > */ > -enum hmm_update_type { > +enum hmm_update_event { > HMM_UPDATE_INVALIDATE, > }; > > +/* > + * struct hmm_update - HMM update informations for callback > + * > + * @start: virtual start address of the range to update > + * @end: virtual end address of the range to update > + * @event: event triggering the update (what is happening) > + */ > +struct hmm_update { > + unsigned long start; > + unsigned long end; > + enum hmm_update_event event; > +}; > + I wonder if you want to add further information about the range, like page_size, I guess the other side does not care about the size. Do we care about sending multiple discontig ranges in hmm_update? Should it be an array? Balbir Singh