mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git
synced 2026-04-18 03:23:53 -04:00
Merge tag 'mm-nonmm-stable-2025-05-31-15-28' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
Pull non-MM updates from Andrew Morton:
- "hung_task: extend blocking task stacktrace dump to semaphore" from
Lance Yang enhances the hung task detector.
The detector presently dumps the blocking tasks's stack when it is
blocked on a mutex. Lance's series extends this to semaphores
- "nilfs2: improve sanity checks in dirty state propagation" from
Wentao Liang addresses a couple of minor flaws in nilfs2
- "scripts/gdb: Fixes related to lx_per_cpu()" from Illia Ostapyshyn
fixes a couple of issues in the gdb scripts
- "Support kdump with LUKS encryption by reusing LUKS volume keys" from
Coiby Xu addresses a usability problem with kdump.
When the dump device is LUKS-encrypted, the kdump kernel may not have
the keys to the encrypted filesystem. A full writeup of this is in
the series [0/N] cover letter
- "sysfs: add counters for lockups and stalls" from Max Kellermann adds
/sys/kernel/hardlockup_count and /sys/kernel/hardlockup_count and
/sys/kernel/rcu_stall_count
- "fork: Page operation cleanups in the fork code" from Pasha Tatashin
implements a number of code cleanups in fork.c
- "scripts/gdb/symbols: determine KASLR offset on s390 during early
boot" from Ilya Leoshkevich fixes some s390 issues in the gdb
scripts
* tag 'mm-nonmm-stable-2025-05-31-15-28' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm: (67 commits)
llist: make llist_add_batch() a static inline
delayacct: remove redundant code and adjust indentation
squashfs: add optional full compressed block caching
crash_dump, nvme: select CONFIGFS_FS as built-in
scripts/gdb/symbols: determine KASLR offset on s390 during early boot
scripts/gdb/symbols: factor out pagination_off()
scripts/gdb/symbols: factor out get_vmlinux()
kernel/panic.c: format kernel-doc comments
mailmap: update and consolidate Casey Connolly's name and email
nilfs2: remove wbc->for_reclaim handling
fork: define a local GFP_VMAP_STACK
fork: check charging success before zeroing stack
fork: clean-up naming of vm_stack/vm_struct variables in vmap stacks code
fork: clean-up ifdef logic around stack allocation
kernel/rcu/tree_stall: add /sys/kernel/rcu_stall_count
kernel/watchdog: add /sys/kernel/{hard,soft}lockup_count
x86/crash: make the page that stores the dm crypt keys inaccessible
x86/crash: pass dm crypt keys to kdump kernel
Revert "x86/mm: Remove unused __set_memory_prot()"
crash_dump: retrieve dm crypt keys in kdump kernel
...
This commit is contained in:
@@ -25,6 +25,10 @@
|
||||
|
||||
extern note_buf_t __percpu *crash_notes;
|
||||
|
||||
#ifdef CONFIG_CRASH_DUMP
|
||||
#include <linux/prandom.h>
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_KEXEC_CORE
|
||||
#include <linux/list.h>
|
||||
#include <linux/compat.h>
|
||||
@@ -169,6 +173,7 @@ int kexec_image_post_load_cleanup_default(struct kimage *image);
|
||||
* @buf_min: The buffer can't be placed below this address.
|
||||
* @buf_max: The buffer can't be placed above this address.
|
||||
* @top_down: Allocate from top of memory.
|
||||
* @random: Place the buffer at a random position.
|
||||
*/
|
||||
struct kexec_buf {
|
||||
struct kimage *image;
|
||||
@@ -180,8 +185,33 @@ struct kexec_buf {
|
||||
unsigned long buf_min;
|
||||
unsigned long buf_max;
|
||||
bool top_down;
|
||||
#ifdef CONFIG_CRASH_DUMP
|
||||
bool random;
|
||||
#endif
|
||||
};
|
||||
|
||||
|
||||
#ifdef CONFIG_CRASH_DUMP
|
||||
static inline void kexec_random_range_start(unsigned long start,
|
||||
unsigned long end,
|
||||
struct kexec_buf *kbuf,
|
||||
unsigned long *temp_start)
|
||||
{
|
||||
unsigned short i;
|
||||
|
||||
if (kbuf->random) {
|
||||
get_random_bytes(&i, sizeof(unsigned short));
|
||||
*temp_start = start + (end - start) / USHRT_MAX * i;
|
||||
}
|
||||
}
|
||||
#else
|
||||
static inline void kexec_random_range_start(unsigned long start,
|
||||
unsigned long end,
|
||||
struct kexec_buf *kbuf,
|
||||
unsigned long *temp_start)
|
||||
{}
|
||||
#endif
|
||||
|
||||
int kexec_load_purgatory(struct kimage *image, struct kexec_buf *kbuf);
|
||||
int kexec_purgatory_get_set_symbol(struct kimage *image, const char *name,
|
||||
void *buf, unsigned int size,
|
||||
@@ -383,6 +413,10 @@ struct kimage {
|
||||
void *elf_headers;
|
||||
unsigned long elf_headers_sz;
|
||||
unsigned long elf_load_addr;
|
||||
|
||||
/* dm crypt keys buffer */
|
||||
unsigned long dm_crypt_keys_addr;
|
||||
unsigned long dm_crypt_keys_sz;
|
||||
};
|
||||
|
||||
/* kexec interface functions */
|
||||
|
||||
Reference in New Issue
Block a user