> @@ -195,7 +181,34 @@ void ima_add_kexec_buffer(struct kimage *image)
>  static int ima_update_kexec_buffer(struct notifier_block *self,
>                                  unsigned long action, void *data)
>  {
> -     return NOTIFY_OK;
> +     void *buf = NULL;
> +     size_t buf_size;
> +     int ret = NOTIFY_OK;
> +
> +     if (!kexec_in_progress) {
> +             pr_info("%s: No kexec in progress.\n", __func__);
> +             return ret;
> +     }
> +
> +     if (!ima_kexec_buffer) {
> +             pr_err("%s: Kexec buffer not set.\n", __func__);
> +             return ret;
> +     }

pr_ messages should already be prefixed with the module name.  There shouldn't
be a need to include the function name as well.

> +     ret = ima_dump_measurement_list(&buf_size, &buf,
> +                                     kexec_segment_size);
> +
> +     if (!buf) {
> +             pr_err("%s: Dump measurements failed. Error:%d\n",
> +                    __func__, ret);
> +             goto out;
> +     }
> +     memcpy(ima_kexec_buffer, buf, buf_size);
> +out:
> +     kimage_unmap_segment(ima_kexec_buffer);
> +     ima_kexec_buffer = NULL;
> +
> +     return ret;
>  }
>  
>  struct notifier_block update_buffer_nb = {


Reply via email to