On 2/14/24 12:47, Stefan Berger wrote:
On 2/14/24 10:38, Tushar Sugandhi wrote:
...
<snip/>
...
+void kimage_file_post_load(struct kimage *image)
+{
+ ima_kexec_post_load(image);
+}
+
We get this here at this point but it disappears later -- missing header?
kernel/kexec_file.c:189:6: warning: no previous prototype for
‘kimage_file_post_load’ [-Wmissing-prototypes]
189 | void kimage_file_post_load(struct kimage *image)
| ^~~~~~~~~~~~~~~~~~~~~
Thanks Stefan.
I was also getting it.
But couldn't figure out why. And I was puzzled why it was going away.
Since kimage_file_post_load() is called from the same file in patch 5/8,
I don't see a need of declaring it in a header file like
include/linux/kexec.h.
Making kimage_file_post_load() local static resolves the warning.
But then it throws "defined but not used" warning. I will have to call
it from kexec_file_load syscall in this patch (4/8) instead 5/8 to
resolve that warning.
I will make the function a stub function in this patch and
make it call ima_kexec_post_load(image) in the next patch to avoid any
potential bisect safe issues.
It aligns with the goals of patch 4/8 and 5/8 anyways.
+static void kimage_file_post_load(struct kimage *image)
+{
+ /*
+ * this will call ima_kexec_post_load(image) to map the segment
+ * and register the reboot notifier for moving the IMA log at
+ * kexec execute
+ */
+}
+
@@ -410,6 +410,9 @@ SYSCALL_DEFINE5(kexec_file_load, int, kernel_fd,
int, initrd_fd,
kimage_terminate(image);
+ if (!(flags & KEXEC_FILE_ON_CRASH))
+ kimage_file_post_load(image);
+
...
...<snip/>
...
Reviewed-by: Stefan Berger <stefanb@xxxxxxxxxxxxx>
Thanks for the tag. I will apply it on the next version.
~Tushar