Files
s390-tools/zipl/boot/kdump.c
T
Mikhail Zaslonko 5af2e30d9a zipl/boot: Move struct os_info to the separate header
- Move struct os_info from kdump.h to the new header os_info.h.
- Place os_info.h to include/boot in order to use it in zgetdump
  code as well.
- Replace hardcoded value of OS_INFO_CSUM_SIZE with a properly
  calculated one.
- Rename os_info_check() of kdump.h to kdump_os_info_check().

Signed-off-by: Mikhail Zaslonko <zaslonko@linux.ibm.com>
Reviewed-by: Marc Hartmayer <mhartmay@linux.ibm.com>
Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com>
2023-07-20 21:45:27 +02:00

42 lines
1.1 KiB
C

/*
* zipl - zSeries Initial Program Loader tool
*
* Stand-alone kdump support
*
* Copyright IBM Corp. 2013, 2023
*
* s390-tools is free software; you can redistribute it and/or modify
* it under the terms of the MIT license. See LICENSE for details.
*/
#include "error.h"
#include "kdump.h"
#include "libc.h"
#include "menu.h"
#include "boot/s390.h"
#include "boot/os_info.h"
void kdump_failed(unsigned long reason)
{
panic(reason, "Dump failed: Check disabled wait code");
}
void kdump_os_info_check(struct os_info *os_info)
{
if (os_info == NULL)
kdump_failed(EOS_INFO_MISSING);
if (((unsigned long) os_info) % PAGE_SIZE)
kdump_failed(EOS_INFO_MISSING);
if (!page_is_valid((unsigned long) os_info))
kdump_failed(EOS_INFO_MISSING);
if (os_info->magic != OS_INFO_MAGIC)
kdump_failed(EOS_INFO_MISSING);
if (csum_partial(&os_info->version_major, OS_INFO_CSUM_SIZE, 0) !=
os_info->csum)
kdump_failed(EOS_INFO_CSUM_FAILED);
if (os_info->version_major > OS_INFO_VERSION_MAJOR_SUPPORTED)
kdump_failed(EOS_INFO_VERSION);
if (os_info->crashkernel_addr == 0)
kdump_failed(EOS_INFO_NOCRASHKERNEL);
}