/* * Copyright (C) 2016 IBM Corporation * * Authors: * Thiago Jung Bauermann * Mimi Zohar * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. */ #include "ima.h" /* * Restore the measurement list from the previous kernel. */ void ima_load_kexec_buffer(void) { void *kexec_buffer = NULL; size_t kexec_buffer_size = 0; int rc; rc = ima_get_kexec_buffer(&kexec_buffer, &kexec_buffer_size); switch (rc) { case 0: rc = ima_restore_measurement_list(kexec_buffer_size, kexec_buffer); if (rc != 0) pr_err("Failed to restore the measurement list: %d\n", rc); ima_free_kexec_buffer(); break; case -ENOTSUPP: pr_debug("Restoring the measurement list not supported\n"); break; case -ENOENT: pr_debug("No measurement list to restore\n"); break; default: pr_debug("Error restoring the measurement list: %d\n", rc); } }