194c3aac5SMimi Zohar /*
294c3aac5SMimi Zohar  * Copyright (C) 2016 IBM Corporation
394c3aac5SMimi Zohar  *
494c3aac5SMimi Zohar  * Authors:
594c3aac5SMimi Zohar  * Thiago Jung Bauermann <bauerman@linux.vnet.ibm.com>
694c3aac5SMimi Zohar  * Mimi Zohar <zohar@linux.vnet.ibm.com>
794c3aac5SMimi Zohar  *
894c3aac5SMimi Zohar  * This program is free software; you can redistribute it and/or modify
994c3aac5SMimi Zohar  * it under the terms of the GNU General Public License as published by
1094c3aac5SMimi Zohar  * the Free Software Foundation; either version 2 of the License, or
1194c3aac5SMimi Zohar  * (at your option) any later version.
1294c3aac5SMimi Zohar  */
1394c3aac5SMimi Zohar #include "ima.h"
1494c3aac5SMimi Zohar 
1594c3aac5SMimi Zohar /*
1694c3aac5SMimi Zohar  * Restore the measurement list from the previous kernel.
1794c3aac5SMimi Zohar  */
1894c3aac5SMimi Zohar void ima_load_kexec_buffer(void)
1994c3aac5SMimi Zohar {
2094c3aac5SMimi Zohar 	void *kexec_buffer = NULL;
2194c3aac5SMimi Zohar 	size_t kexec_buffer_size = 0;
2294c3aac5SMimi Zohar 	int rc;
2394c3aac5SMimi Zohar 
2494c3aac5SMimi Zohar 	rc = ima_get_kexec_buffer(&kexec_buffer, &kexec_buffer_size);
2594c3aac5SMimi Zohar 	switch (rc) {
2694c3aac5SMimi Zohar 	case 0:
2794c3aac5SMimi Zohar 		rc = ima_restore_measurement_list(kexec_buffer_size,
2894c3aac5SMimi Zohar 						  kexec_buffer);
2994c3aac5SMimi Zohar 		if (rc != 0)
3094c3aac5SMimi Zohar 			pr_err("Failed to restore the measurement list: %d\n",
3194c3aac5SMimi Zohar 				rc);
3294c3aac5SMimi Zohar 
3394c3aac5SMimi Zohar 		ima_free_kexec_buffer();
3494c3aac5SMimi Zohar 		break;
3594c3aac5SMimi Zohar 	case -ENOTSUPP:
3694c3aac5SMimi Zohar 		pr_debug("Restoring the measurement list not supported\n");
3794c3aac5SMimi Zohar 		break;
3894c3aac5SMimi Zohar 	case -ENOENT:
3994c3aac5SMimi Zohar 		pr_debug("No measurement list to restore\n");
4094c3aac5SMimi Zohar 		break;
4194c3aac5SMimi Zohar 	default:
4294c3aac5SMimi Zohar 		pr_debug("Error restoring the measurement list: %d\n", rc);
4394c3aac5SMimi Zohar 	}
4494c3aac5SMimi Zohar }
45