Commit 689a7149 authored by Coiby Xu's avatar Coiby Xu Committed by Mimi Zohar

kexec: clean up arch_kexec_kernel_verify_sig

Before commit 105e10e2cf1c ("kexec_file: drop weak attribute from
functions"), there was already no arch-specific implementation
of arch_kexec_kernel_verify_sig. With weak attribute dropped by that
commit, arch_kexec_kernel_verify_sig is completely useless. So clean it
up.

Note later patches are dependent on this patch so it should be backported
to the stable tree as well.

Cc: stable@vger.kernel.org
Suggested-by: default avatarEric W. Biederman <ebiederm@xmission.com>
Reviewed-by: default avatarMichal Suchanek <msuchanek@suse.de>
Acked-by: default avatarBaoquan He <bhe@redhat.com>
Signed-off-by: default avatarCoiby Xu <coxu@redhat.com>
[zohar@linux.ibm.com: reworded patch description "Note"]
Link: https://lore.kernel.org/linux-integrity/20220714134027.394370-1-coxu@redhat.com/Signed-off-by: default avatarMimi Zohar <zohar@linux.ibm.com>
parent 0738eceb
...@@ -212,11 +212,6 @@ static inline void *arch_kexec_kernel_image_load(struct kimage *image) ...@@ -212,11 +212,6 @@ static inline void *arch_kexec_kernel_image_load(struct kimage *image)
} }
#endif #endif
#ifdef CONFIG_KEXEC_SIG
int arch_kexec_kernel_verify_sig(struct kimage *image, void *buf,
unsigned long buf_len);
#endif
extern int kexec_add_buffer(struct kexec_buf *kbuf); extern int kexec_add_buffer(struct kexec_buf *kbuf);
int kexec_locate_mem_hole(struct kexec_buf *kbuf); int kexec_locate_mem_hole(struct kexec_buf *kbuf);
......
...@@ -81,24 +81,6 @@ int kexec_image_post_load_cleanup_default(struct kimage *image) ...@@ -81,24 +81,6 @@ int kexec_image_post_load_cleanup_default(struct kimage *image)
return image->fops->cleanup(image->image_loader_data); return image->fops->cleanup(image->image_loader_data);
} }
#ifdef CONFIG_KEXEC_SIG
static int kexec_image_verify_sig_default(struct kimage *image, void *buf,
unsigned long buf_len)
{
if (!image->fops || !image->fops->verify_sig) {
pr_debug("kernel loader does not support signature verification.\n");
return -EKEYREJECTED;
}
return image->fops->verify_sig(buf, buf_len);
}
int arch_kexec_kernel_verify_sig(struct kimage *image, void *buf, unsigned long buf_len)
{
return kexec_image_verify_sig_default(image, buf, buf_len);
}
#endif
/* /*
* Free up memory used by kernel, initrd, and command line. This is temporary * Free up memory used by kernel, initrd, and command line. This is temporary
* memory allocation which is not needed any more after these buffers have * memory allocation which is not needed any more after these buffers have
...@@ -141,13 +123,24 @@ void kimage_file_post_load_cleanup(struct kimage *image) ...@@ -141,13 +123,24 @@ void kimage_file_post_load_cleanup(struct kimage *image)
} }
#ifdef CONFIG_KEXEC_SIG #ifdef CONFIG_KEXEC_SIG
static int kexec_image_verify_sig(struct kimage *image, void *buf,
unsigned long buf_len)
{
if (!image->fops || !image->fops->verify_sig) {
pr_debug("kernel loader does not support signature verification.\n");
return -EKEYREJECTED;
}
return image->fops->verify_sig(buf, buf_len);
}
static int static int
kimage_validate_signature(struct kimage *image) kimage_validate_signature(struct kimage *image)
{ {
int ret; int ret;
ret = arch_kexec_kernel_verify_sig(image, image->kernel_buf, ret = kexec_image_verify_sig(image, image->kernel_buf,
image->kernel_buf_len); image->kernel_buf_len);
if (ret) { if (ret) {
if (sig_enforce) { if (sig_enforce) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment