Blame kmod/patch/kpatch.lds.S

Packit Service ac8aad
__kpatch_funcs = ADDR(.kpatch.funcs);
Packit Service ac8aad
__kpatch_funcs_end = ADDR(.kpatch.funcs) + SIZEOF(.kpatch.funcs);
Packit Service ac8aad
Packit Service ac8aad
#ifdef __KPATCH_MODULE__
Packit Service ac8aad
__kpatch_dynrelas = ADDR(.kpatch.dynrelas);
Packit Service ac8aad
__kpatch_dynrelas_end = ADDR(.kpatch.dynrelas) + SIZEOF(.kpatch.dynrelas);
Packit Service ac8aad
__kpatch_checksum = ADDR(.kpatch.checksum);
Packit Service ac8aad
#endif
Packit Service ac8aad
Packit Service ac8aad
SECTIONS
Packit Service ac8aad
{
Packit Service ac8aad
  .kpatch.callbacks.pre_patch : {
Packit Service ac8aad
    __kpatch_callbacks_pre_patch = . ;
Packit Service ac8aad
    *(.kpatch.callbacks.pre_patch)
Packit Service ac8aad
    __kpatch_callbacks_pre_patch_end = . ;
Packit Service ac8aad
    /*
Packit Service ac8aad
     * Pad the end of the section with zeros in case the section is empty.
Packit Service ac8aad
     * This prevents the kernel from discarding the section at module
Packit Service ac8aad
     * load time. __kpatch_callbacks_pre_patch_end will still point to the
Packit Service ac8aad
     * end of the section before the padding.  If the
Packit Service ac8aad
     * .kpatch.callbacks.pre_patch section is empty,
Packit Service ac8aad
     * __kpatch_callbacks_pre_patch equals __kpatch_callbacks_pre_patch_end.
Packit Service ac8aad
     */
Packit Service ac8aad
    QUAD(0);
Packit Service ac8aad
  }
Packit Service ac8aad
  .kpatch.callbacks.post_patch : {
Packit Service ac8aad
    __kpatch_callbacks_post_patch = . ;
Packit Service ac8aad
    *(.kpatch.callbacks.post_patch)
Packit Service ac8aad
    __kpatch_callbacks_post_patch_end = . ;
Packit Service ac8aad
    QUAD(0);
Packit Service ac8aad
  }
Packit Service ac8aad
  .kpatch.callbacks.pre_unpatch : {
Packit Service ac8aad
    __kpatch_callbacks_pre_unpatch = . ;
Packit Service ac8aad
    *(.kpatch.callbacks.pre_unpatch)
Packit Service ac8aad
    __kpatch_callbacks_pre_unpatch_end = . ;
Packit Service ac8aad
    QUAD(0);
Packit Service ac8aad
  }
Packit Service ac8aad
  .kpatch.callbacks.post_unpatch : {
Packit Service ac8aad
    __kpatch_callbacks_post_unpatch = . ;
Packit Service ac8aad
    *(.kpatch.callbacks.post_unpatch)
Packit Service ac8aad
    __kpatch_callbacks_post_unpatch_end = . ;
Packit Service ac8aad
    QUAD(0);
Packit Service ac8aad
  }
Packit Service ac8aad
  .kpatch.force : {
Packit Service ac8aad
    __kpatch_force_funcs = . ;
Packit Service ac8aad
    *(.kpatch.force)
Packit Service ac8aad
    __kpatch_force_funcs_end = . ;
Packit Service ac8aad
    QUAD(0);
Packit Service ac8aad
  }
Packit Service ac8aad
}