mirror of
https://github.com/dynup/kpatch
synced 2024-12-22 05:10:01 +00:00
0bb5c106ef
Restructure kpatch's sysfs interface and mirror the sysfs tree after livepatch's sysfs layout. With the current sysfs layout, we cannot distinguish which object a function belongs to, and we cannot tell which modules/objects are patched. Therefore, restructure the kpatch sysfs tree such that module/object information is available. With the new layout, each patched object has its own directory, with each function being a subdirectory of its object. Implement this by embedding a kobject struct within the kpatch_module, kpatch_func, and kpatch_object structs and supplying their ktypes and kobject release methods. Before: /sys/kernel/kpatch └── patches └── <patch_module> ├── checksum ├── enabled └── functions ├── <function> # from <object1> │ ├── new_addr │ └── old_addr ├── <function> # from <object2> │ ├── new_addr │ └── old_addr └─── <function> # from <object3> ├── new_addr └── old_addr After: /sys/kernel/kpatch └── <patch_module> ├── <object1> │ └── <function,sympos> │ ├── new_addr │ └── old_addr ├── <object2> │ └── <function,sympos> │ ├── new_addr │ └── old_addr ├── checksum ├── enabled └── <object3> └── <function,sympos> ├── new_addr └── old_addr |
||
---|---|---|
.. | ||
kpatch-macros.h | ||
kpatch-patch-hook.c | ||
kpatch-patch.h | ||
kpatch.h | ||
kpatch.lds.S | ||
livepatch-patch-hook.c | ||
Makefile | ||
patch-hook.c |