Commit Graph

35 Commits

Author SHA1 Message Date
Josh Poimboeuf a8ab0c16a7 first pass at a decent user interface
This makes it somewhat easy to use.  From the root git dir, just:

  sudo scripts/kpatch-build ~/foo.patch

and it'll take care of everything, eventually spitting out the base
module (kpatch.ko) and the hotpatch module kpatch-foo.ko.

This is still all very crude, but a better user interface is coming
soon.
2014-02-12 22:24:27 -06:00
Josh Poimboeuf 8c9d8d0cb6 add build caching 2014-02-12 21:34:22 -06:00
Josh Poimboeuf 519c8e6b44 fix bash shebang 2014-02-12 21:31:38 -06:00
Josh Poimboeuf 5098b09a23 Merge pull request #3 from spartacus06/removebins
remove binaries from repo and add to gitignore
2014-02-11 16:33:25 -06:00
Seth Jennings c2795032d2 add tools binaries to gitignore
Signed-off-by: Seth Jennings <sjenning@redhat.com>
2014-02-11 16:25:34 -06:00
Seth Jennings bf6af4d5e1 remove tools binaries from repo
Signed-off-by: Seth Jennings <sjenning@redhat.com>
2014-02-11 15:56:48 -06:00
Josh Poimboeuf 6b10df0432 Merge pull request #1 from spartacus06/docsupdate
update README with new OVERVIEW and DEMONSTRATION section
2014-02-11 14:42:55 -06:00
Seth Jennings 4e0dae11da update README with new OVERVIEW and DEMONSTRATION section
Signed-off-by: Seth Jennings <sjenning@redhat.com>
2014-02-11 14:34:19 -06:00
Seth Jennings 8b928cc173 add documentation to core kmod files
Signed-off-by: Seth Jennings <sjenning@redhat.com>
2014-02-11 14:01:00 -06:00
Seth Jennings e856a15881 change output object to match kpatch-build script
Signed-off-by: Seth Jennings <sjenning@redhat.com>
2014-02-11 12:15:17 -06:00
Seth Jennings 7340fde7b5 remove target 'test' from Makefile
Signed-off-by: Seth Jennings <sjenning@redhat.com>
2014-02-11 12:04:56 -06:00
Seth Jennings 628bce2ee8 add file documentation and copyright
Signed-off-by: Seth Jennings <sjenning@redhat.com>
2014-02-11 12:01:51 -06:00
Seth Jennings 5e3baa4447 add README
Signed-off-by: Seth Jennings <sjenning@redhat.com>
2014-02-11 12:00:17 -06:00
Seth Jennings 18aee7bdfe exclude shstrtab from reachability test
Signed-off-by: Seth Jennings <sjenning@redhat.com>
2014-02-11 10:28:00 -06:00
Seth Jennings 588b174ef1 add deep rela correlation for strings
Signed-off-by: Seth Jennings <sjenning@redhat.com>
2014-02-11 10:28:00 -06:00
Seth Jennings c1eab7eb7c invert if conditions, remove indent level
Signed-off-by: Seth Jennings <sjenning@redhat.com>
2014-02-11 10:28:00 -06:00
Seth Jennings 069a5dbad7 don't build kpatch-files from primary Makefile
Signed-off-by: Seth Jennings <sjenning@redhat.com>
2014-02-11 10:28:00 -06:00
Seth Jennings 28a5a1d275 add kpatch and kpatch-build scripts
Signed-off-by: Seth Jennings <sjenning@redhat.com>
2014-02-11 10:28:00 -06:00
Seth Jennings 139cfe5350 replace hardcoded vmlinux path in diff-object
Signed-off-by: Seth Jennings <sjenning@redhat.com>
2014-02-11 10:28:00 -06:00
Seth Jennings 954a3cdd81 remove local paths in makefiles
Signed-off-by: Seth Jennings <sjenning@redhat.com>
2014-02-11 10:27:59 -06:00
Seth Jennings 6ab1273021 major rewrite to per-section function/data model
Signed-off-by: Seth Jennings <sjenning@redhat.com>
2014-02-11 10:25:48 -06:00
Josh Poimboeuf 32c0fa5b44 Tell ftrace to return to new function
This changes the way the trampoline code works, thanks to a suggestion
by Steve Rostedt.  Before, the trampoline was mucking with the stack
pointer and other registers, and jumping to the new function directly.
With this change, all it does is set regs->ip to the address of the new
function and return back to ftrace.  When ftrace returns, it will return
to the beginning of the new function.
2013-01-24 09:50:43 -05:00
Josh Poimboeuf 46f1e166e8 kpatch-create: no need to do a make during cleanup 2013-01-22 16:37:57 -05:00
Josh Poimboeuf 8bb23d3893 add -n option to kpatch-create to not cleanup objects 2013-01-22 16:26:10 -05:00
Josh Poimboeuf 12fb573fca add address end to fix activeness safety check 2013-01-19 13:44:13 -06:00
Josh Poimboeuf 0cf58eea37 fix bugs
- fix real issue with 0's in the middle of a merged section (wrong
  alignment)
- show patch util output in case it asks a question so it doesn't
  silently fail
- fix issue with relocation of local objects (because they become global
  objects)
2013-01-19 12:36:52 -06:00
Josh Poimboeuf 16647ccf89 multiple .o's combined have gaps in elf data section 2013-01-19 01:29:35 -06:00
Josh Poimboeuf 5fcbb0bdfa some fixes
- allow changes to .rela.initcall*.  they should be instead caught by
  the relocation comparison code.
- fix issue in compare symbols when the symbol section index has changed
  but the sections themselves are the same
- in compare_symbols, when a new STT_SECTION symbol is added, ignore it.
  it will be caught instead by the section comparison code
- fix issue in kpatch-gcc script that was causing gcc command lines
  containing quotes to fail
2013-01-19 01:13:42 -06:00
Josh Poimboeuf 9c8bd04c8b dynamically determine number of jobs for make 2013-01-18 14:19:48 -06:00
Josh Poimboeuf acd922c44d remove unneeded include 2013-01-18 14:11:53 -06:00
Josh Poimboeuf 04433125bc incremental patching and rmmod support 2013-01-18 12:31:14 -06:00
Josh Poimboeuf 8483c73b92 rename kpatch-gen to kpatch-diff-gen 2013-01-18 10:45:58 -06:00
Josh Poimboeuf fc12020ae3 fix compiler warnings, add -o flag 2013-01-18 10:42:56 -06:00
Josh Poimboeuf e9e4563a80 one click support! 2013-01-17 18:10:01 -06:00
Josh Poimboeuf 4feb144e98 It's alive...
The end-to-end patching works.  From object analysis to generation to
runtime patching.  It's still missing the scripting piece that will only
take a patch and kernel source dir as input.
2013-01-16 11:28:59 -06:00