2014-06-17 14:51:47 +00:00
|
|
|
__kpatch_funcs = ADDR(.kpatch.funcs);
|
|
|
|
__kpatch_funcs_end = ADDR(.kpatch.funcs) + SIZEOF(.kpatch.funcs);
|
2017-01-23 20:43:43 +00:00
|
|
|
|
|
|
|
#ifdef __KPATCH_MODULE__
|
2014-05-14 20:59:05 +00:00
|
|
|
__kpatch_dynrelas = ADDR(.kpatch.dynrelas);
|
|
|
|
__kpatch_dynrelas_end = ADDR(.kpatch.dynrelas) + SIZEOF(.kpatch.dynrelas);
|
2014-09-04 14:38:17 +00:00
|
|
|
__kpatch_checksum = ADDR(.kpatch.checksum);
|
2017-01-23 20:43:43 +00:00
|
|
|
#endif
|
|
|
|
|
2014-06-27 17:01:39 +00:00
|
|
|
SECTIONS
|
|
|
|
{
|
2018-01-04 19:13:19 +00:00
|
|
|
.kpatch.callbacks.pre_patch : {
|
|
|
|
__kpatch_callbacks_pre_patch = . ;
|
|
|
|
*(.kpatch.callbacks.pre_patch)
|
|
|
|
__kpatch_callbacks_pre_patch_end = . ;
|
2014-07-01 17:22:16 +00:00
|
|
|
/*
|
|
|
|
* Pad the end of the section with zeros in case the section is empty.
|
|
|
|
* This prevents the kernel from discarding the section at module
|
2018-01-04 19:13:19 +00:00
|
|
|
* load time. __kpatch_callbacks_pre_patch_end will still point to the
|
|
|
|
* end of the section before the padding. If the
|
|
|
|
* .kpatch.callbacks.pre_patch section is empty,
|
|
|
|
* __kpatch_callbacks_pre_patch equals __kpatch_callbacks_pre_patch_end.
|
2014-07-01 17:22:16 +00:00
|
|
|
*/
|
2014-06-27 17:01:39 +00:00
|
|
|
QUAD(0);
|
|
|
|
}
|
2018-01-04 19:13:19 +00:00
|
|
|
.kpatch.callbacks.post_patch : {
|
|
|
|
__kpatch_callbacks_post_patch = . ;
|
|
|
|
*(.kpatch.callbacks.post_patch)
|
|
|
|
__kpatch_callbacks_post_patch_end = . ;
|
|
|
|
QUAD(0);
|
|
|
|
}
|
|
|
|
.kpatch.callbacks.pre_unpatch : {
|
|
|
|
__kpatch_callbacks_pre_unpatch = . ;
|
|
|
|
*(.kpatch.callbacks.pre_unpatch)
|
|
|
|
__kpatch_callbacks_pre_unpatch_end = . ;
|
|
|
|
QUAD(0);
|
|
|
|
}
|
|
|
|
.kpatch.callbacks.post_unpatch : {
|
|
|
|
__kpatch_callbacks_post_unpatch = . ;
|
|
|
|
*(.kpatch.callbacks.post_unpatch)
|
|
|
|
__kpatch_callbacks_post_unpatch_end = . ;
|
2014-06-27 17:01:39 +00:00
|
|
|
QUAD(0);
|
|
|
|
}
|
2014-07-02 17:35:18 +00:00
|
|
|
.kpatch.force : {
|
|
|
|
__kpatch_force_funcs = . ;
|
|
|
|
*(.kpatch.force)
|
|
|
|
__kpatch_force_funcs_end = . ;
|
|
|
|
QUAD(0);
|
|
|
|
}
|
2014-06-27 17:01:39 +00:00
|
|
|
}
|