Messages in this thread | | | From | Linus Torvalds <> | Date | Tue, 6 Aug 2019 11:50:42 -0700 | Subject | Re: drm pull for v5.3-rc1 |
| |
On Tue, Aug 6, 2019 at 12:38 AM Christoph Hellwig <hch@infradead.org> wrote: > > Seems like no one took this up. Below is a version which I think is > slightly better by also moving the mm_walk structure initialization > into the helpers, with an outcome of just a handful of added lines.
Ack. Agreed, I think that's a nicer interface.
In fact, I do note that a lot of the users don't actually use the "void *private" argument at all - they just want the walker - and just pass in a NULL private pointer. So we have things like this:
> + if (walk_page_range(&init_mm, va, va + size, &set_nocache_walk_ops, > + NULL)) {
and in a perfect world we'd have arguments with default values so that we could skip those entirely for when people just don't need it.
I'm not a huge fan of C++ because of a lot of the complexity (and some really bad decisions), but many of the _syntactic_ things in C++ would be nice to use. This one doesn't seem to be one that the gcc people have picked up as an extension ;(
Yes, yes, we could do it with a macro, I guess.
#define walk_page_range(mm, start,end, ops, ...) \ __walk_page_range(mm, start, end, (NULL , ## __VA_ARGS__))
but I'm not sure it's worthwhile.
Linus
| |