5 hotfixes. 2 are cc:stable, 2 are for MM.
All are singletons - please see the changelogs for details. -----BEGIN PGP SIGNATURE----- iHUEABYKAB0WIQTTMBEPP41GrTpTJgfdBJ7gKXxAjgUCaYPcbwAKCRDdBJ7gKXxA jpM9AQDRiBlZRBdYY8/nS2zMc8hE7s5O3koXu/UMf2O01aJjsgD6AssmcJzkbLir O1mlBSD0wlR3TZLEqSOUYIxgw7evLww= =ZHeq -----END PGP SIGNATURE----- Merge tag 'mm-hotfixes-stable-2026-02-04-15-55' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm Pull misc fixes from Andrew Morton: "Five hotfixes. Two are cc:stable, two are for MM. All are singletons - please see the changelogs for details" * tag 'mm-hotfixes-stable-2026-02-04-15-55' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm: Documentation: document liveupdate cmdline parameter mm, shmem: prevent infinite loop on truncate race mailmap: update Alexander Mikhalitsyn's emails liveupdate: luo_file: do not clear serialized_data on unfreeze x86/kfence: fix booting on 32bit non-PAE systems
This commit is contained in:
commit
b20624608f
5 changed files with 24 additions and 14 deletions
1
.mailmap
1
.mailmap
|
|
@ -34,6 +34,7 @@ Alexander Lobakin <alobakin@pm.me> <alobakin@marvell.com>
|
|||
Alexander Lobakin <alobakin@pm.me> <bloodyreaper@yandex.ru>
|
||||
Alexander Mikhalitsyn <alexander@mihalicyn.com> <alexander.mikhalitsyn@virtuozzo.com>
|
||||
Alexander Mikhalitsyn <alexander@mihalicyn.com> <aleksandr.mikhalitsyn@canonical.com>
|
||||
Alexander Mikhalitsyn <alexander@mihalicyn.com> <aleksandr.mikhalitsyn@futurfusion.io>
|
||||
Alexander Sverdlin <alexander.sverdlin@gmail.com> <alexander.sverdlin.ext@nsn.com>
|
||||
Alexander Sverdlin <alexander.sverdlin@gmail.com> <alexander.sverdlin@gmx.de>
|
||||
Alexander Sverdlin <alexander.sverdlin@gmail.com> <alexander.sverdlin@nokia.com>
|
||||
|
|
|
|||
|
|
@ -3472,6 +3472,11 @@ Kernel parameters
|
|||
If there are multiple matching configurations changing
|
||||
the same attribute, the last one is used.
|
||||
|
||||
liveupdate= [KNL,EARLY]
|
||||
Format: <bool>
|
||||
Enable Live Update Orchestrator (LUO).
|
||||
Default: off.
|
||||
|
||||
load_ramdisk= [RAM] [Deprecated]
|
||||
|
||||
lockd.nlm_grace_period=P [NFS] Assign grace period.
|
||||
|
|
|
|||
|
|
@ -42,7 +42,7 @@ static inline bool kfence_protect_page(unsigned long addr, bool protect)
|
|||
{
|
||||
unsigned int level;
|
||||
pte_t *pte = lookup_address(addr, &level);
|
||||
pteval_t val;
|
||||
pteval_t val, new;
|
||||
|
||||
if (WARN_ON(!pte || level != PG_LEVEL_4K))
|
||||
return false;
|
||||
|
|
@ -57,11 +57,12 @@ static inline bool kfence_protect_page(unsigned long addr, bool protect)
|
|||
return true;
|
||||
|
||||
/*
|
||||
* Otherwise, invert the entire PTE. This avoids writing out an
|
||||
* Otherwise, flip the Present bit, taking care to avoid writing an
|
||||
* L1TF-vulnerable PTE (not present, without the high address bits
|
||||
* set).
|
||||
*/
|
||||
set_pte(pte, __pte(~val));
|
||||
new = val ^ _PAGE_PRESENT;
|
||||
set_pte(pte, __pte(flip_protnone_guard(val, new, PTE_PFN_MASK)));
|
||||
|
||||
/*
|
||||
* If the page was protected (non-present) and we're making it
|
||||
|
|
|
|||
|
|
@ -402,8 +402,6 @@ static void luo_file_unfreeze_one(struct luo_file_set *file_set,
|
|||
|
||||
luo_file->fh->ops->unfreeze(&args);
|
||||
}
|
||||
|
||||
luo_file->serialized_data = 0;
|
||||
}
|
||||
|
||||
static void __luo_file_unfreeze(struct luo_file_set *file_set,
|
||||
|
|
|
|||
23
mm/shmem.c
23
mm/shmem.c
|
|
@ -1211,17 +1211,22 @@ whole_folios:
|
|||
swaps_freed = shmem_free_swap(mapping, indices[i],
|
||||
end - 1, folio);
|
||||
if (!swaps_freed) {
|
||||
/*
|
||||
* If found a large swap entry cross the end border,
|
||||
* skip it as the truncate_inode_partial_folio above
|
||||
* should have at least zerod its content once.
|
||||
*/
|
||||
pgoff_t base = indices[i];
|
||||
|
||||
order = shmem_confirm_swap(mapping, indices[i],
|
||||
radix_to_swp_entry(folio));
|
||||
if (order > 0 && indices[i] + (1 << order) > end)
|
||||
continue;
|
||||
/* Swap was replaced by page: retry */
|
||||
index = indices[i];
|
||||
/*
|
||||
* If found a large swap entry cross the end or start
|
||||
* border, skip it as the truncate_inode_partial_folio
|
||||
* above should have at least zerod its content once.
|
||||
*/
|
||||
if (order > 0) {
|
||||
base = round_down(base, 1 << order);
|
||||
if (base < start || base + (1 << order) > end)
|
||||
continue;
|
||||
}
|
||||
/* Swap was replaced by page or extended, retry */
|
||||
index = base;
|
||||
break;
|
||||
}
|
||||
nr_swaps_freed += swaps_freed;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue