Re: [PATCH v4] livepatch: Cleanup module page permission changes

From: Jiri Kosina
Date: Thu Dec 03 2015 - 19:11:34 EST


On Thu, 3 Dec 2015, Josh Poimboeuf wrote:

> Calling set_memory_rw() and set_memory_ro() for every iteration of the
> loop in klp_write_object_relocations() is messy, inefficient, and
> error-prone.
>
> Change all the read-only pages to read-write before the loop and convert
> them back to read-only again afterwards.
>
> Suggested-by: Miroslav Benes <mbenes@xxxxxxx>
> Signed-off-by: Josh Poimboeuf <jpoimboe@xxxxxxxxxx>
> ---
> Based on the following branches:
> - git://git.kernel.org/pub/scm/linux/kernel/git/jikos/livepatching.git for-4.5/core
> - git://git.kernel.org/pub/scm/linux/kernel/git/rusty/linux.git modules-next
>
> - v4: rebase onto Chris's sympos changes
> - v3: use new module_{disable,enable}_ro() functions (in linux-next)

Rusty,

how would you like to handle this cross-tree dependency?

My proposals:

(1) I pull your 'modules-next' branch, apply this patch on top, and wait
for your merge with Linus and send merge request afterwards
(2) If you are okay with rebasing your tree (seems like this is
ocassionally happening), how about you prepare a branch that'd have
just b3212ec77 ("module: keep percpu symbols in module's symtab") on
top of some common base, I merge it, and the cross-dependency is gone
(3) I cherry-pick b3212ec77 ("module: keep percpu symbols in
module's symtab") from your tree, and apply this on top. git will
handle duplicate commits when Linus merges both just fine
(4) I sign this patch off and you merge it

(4) seems really outside the regular process. (1) is really tricky wrt.
coordination of timing during the merge window. I'd prefer (2) (more
git-ish way of doing things, but would require you rebasing your tree) or
eventually (3) (git will handle this with grace).

What do you think?

Thanks a lot,

--
Jiri Kosina
SUSE Labs

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/