forked from torvalds/linux
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge tag 's390-4.20-1' of git://git.kernel.org/pub/scm/linux/kernel/…
…git/s390/linux Pull s390 updates from Martin Schwidefsky: - Improved access control for the zcrypt driver, multiple device nodes can now be created with different access control lists - Extend the pkey API to provide random protected keys, this is useful for encrypted swap device with ephemeral protected keys - Add support for virtually mapped kernel stacks - Rework the early boot code, this moves the memory detection into the boot code that runs prior to decompression. - Add KASAN support - Bug fixes and cleanups * tag 's390-4.20-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (83 commits) s390/pkey: move pckmo subfunction available checks away from module init s390/kasan: support preemptible kernel build s390/pkey: Load pkey kernel module automatically s390/perf: Return error when debug_register fails s390/sthyi: Fix machine name validity indication s390/zcrypt: fix broken zcrypt_send_cprb in-kernel api function s390/vmalloc: fix VMALLOC_START calculation s390/mem_detect: add missing include s390/dumpstack: print psw mask and address again s390/crypto: Enhance paes cipher to accept variable length key material s390/pkey: Introduce new API for transforming key blobs s390/pkey: Introduce new API for random protected key verification s390/pkey: Add sysfs attributes to emit secure key blobs s390/pkey: Add sysfs attributes to emit protected key blobs s390/pkey: Define protected key blob format s390/pkey: Introduce new API for random protected key generation s390/zcrypt: add ap_adapter_mask sysfs attribute s390/zcrypt: provide apfs failure code on type 86 error reply s390/zcrypt: zcrypt device driver cleanup s390/kasan: add support for mem= kernel parameter ...
- Loading branch information
Showing
121 changed files
with
3,712 additions
and
1,183 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,3 @@ | ||
image | ||
bzImage | ||
section_cmp.* |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
/* SPDX-License-Identifier: GPL-2.0 */ | ||
#ifndef BOOT_BOOT_H | ||
#define BOOT_BOOT_H | ||
|
||
void startup_kernel(void); | ||
void detect_memory(void); | ||
void store_ipl_parmblock(void); | ||
void setup_boot_command_line(void); | ||
void setup_memory_end(void); | ||
|
||
#endif /* BOOT_BOOT_H */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
// SPDX-License-Identifier: GPL-2.0 | ||
#include "../../../lib/cmdline.c" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,85 @@ | ||
// SPDX-License-Identifier: GPL-2.0 | ||
/* | ||
* Definitions and wrapper functions for kernel decompressor | ||
* | ||
* Copyright IBM Corp. 2010 | ||
* | ||
* Author(s): Martin Schwidefsky <[email protected]> | ||
*/ | ||
|
||
#include <linux/kernel.h> | ||
#include <linux/string.h> | ||
#include <asm/page.h> | ||
#include "decompressor.h" | ||
|
||
/* | ||
* gzip declarations | ||
*/ | ||
#define STATIC static | ||
#define STATIC_RW_DATA static __section(.data) | ||
|
||
#undef memset | ||
#undef memcpy | ||
#undef memmove | ||
#define memmove memmove | ||
#define memzero(s, n) memset((s), 0, (n)) | ||
|
||
/* Symbols defined by linker scripts */ | ||
extern char _end[]; | ||
extern unsigned char _compressed_start[]; | ||
extern unsigned char _compressed_end[]; | ||
|
||
#ifdef CONFIG_HAVE_KERNEL_BZIP2 | ||
#define HEAP_SIZE 0x400000 | ||
#else | ||
#define HEAP_SIZE 0x10000 | ||
#endif | ||
|
||
static unsigned long free_mem_ptr = (unsigned long) _end; | ||
static unsigned long free_mem_end_ptr = (unsigned long) _end + HEAP_SIZE; | ||
|
||
#ifdef CONFIG_KERNEL_GZIP | ||
#include "../../../../lib/decompress_inflate.c" | ||
#endif | ||
|
||
#ifdef CONFIG_KERNEL_BZIP2 | ||
#include "../../../../lib/decompress_bunzip2.c" | ||
#endif | ||
|
||
#ifdef CONFIG_KERNEL_LZ4 | ||
#include "../../../../lib/decompress_unlz4.c" | ||
#endif | ||
|
||
#ifdef CONFIG_KERNEL_LZMA | ||
#include "../../../../lib/decompress_unlzma.c" | ||
#endif | ||
|
||
#ifdef CONFIG_KERNEL_LZO | ||
#include "../../../../lib/decompress_unlzo.c" | ||
#endif | ||
|
||
#ifdef CONFIG_KERNEL_XZ | ||
#include "../../../../lib/decompress_unxz.c" | ||
#endif | ||
|
||
#define decompress_offset ALIGN((unsigned long)_end + HEAP_SIZE, PAGE_SIZE) | ||
|
||
unsigned long mem_safe_offset(void) | ||
{ | ||
/* | ||
* due to 4MB HEAD_SIZE for bzip2 | ||
* 'decompress_offset + vmlinux.image_size' could be larger than | ||
* kernel at final position + its .bss, so take the larger of two | ||
*/ | ||
return max(decompress_offset + vmlinux.image_size, | ||
vmlinux.default_lma + vmlinux.image_size + vmlinux.bss_size); | ||
} | ||
|
||
void *decompress_kernel(void) | ||
{ | ||
void *output = (void *)decompress_offset; | ||
|
||
__decompress(_compressed_start, _compressed_end - _compressed_start, | ||
NULL, NULL, output, 0, NULL, error); | ||
return output; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
/* SPDX-License-Identifier: GPL-2.0 */ | ||
#ifndef BOOT_COMPRESSED_DECOMPRESSOR_H | ||
#define BOOT_COMPRESSED_DECOMPRESSOR_H | ||
|
||
#ifdef CONFIG_KERNEL_UNCOMPRESSED | ||
static inline void *decompress_kernel(void) {} | ||
#else | ||
void *decompress_kernel(void); | ||
#endif | ||
unsigned long mem_safe_offset(void); | ||
void error(char *m); | ||
|
||
struct vmlinux_info { | ||
unsigned long default_lma; | ||
void (*entry)(void); | ||
unsigned long image_size; /* does not include .bss */ | ||
unsigned long bss_size; /* uncompressed image .bss size */ | ||
unsigned long bootdata_off; | ||
unsigned long bootdata_size; | ||
}; | ||
|
||
extern char _vmlinux_info[]; | ||
#define vmlinux (*(struct vmlinux_info *)_vmlinux_info) | ||
|
||
#endif /* BOOT_COMPRESSED_DECOMPRESSOR_H */ |
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.