diff options
| author | Ingo Molnar <[email protected]> | 2025-05-21 06:42:51 +0000 |
|---|---|---|
| committer | Ingo Molnar <[email protected]> | 2025-05-21 06:45:03 +0000 |
| commit | 412751aa6991501d7defeadecfede59043d1b5e8 (patch) | |
| tree | ee5026e79128dd4eacb935f76564d7dcc105b24f /mm/zsmalloc.c | |
| parent | x86/xen/msr: Fix uninitialized variable 'err' (diff) | |
| parent | Linux 6.15-rc7 (diff) | |
| download | kernel-412751aa6991501d7defeadecfede59043d1b5e8.tar.gz kernel-412751aa6991501d7defeadecfede59043d1b5e8.zip | |
Merge tag 'v6.15-rc7' into x86/core, to pick up fixes
Pick up build fixes from upstream to make this tree more testable.
Signed-off-by: Ingo Molnar <[email protected]>
Diffstat (limited to 'mm/zsmalloc.c')
| -rw-r--r-- | mm/zsmalloc.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/mm/zsmalloc.c b/mm/zsmalloc.c index 961b270f023c..d14a7e317ac8 100644 --- a/mm/zsmalloc.c +++ b/mm/zsmalloc.c @@ -1243,19 +1243,19 @@ void zs_obj_write(struct zs_pool *pool, unsigned long handle, class = zspage_class(pool, zspage); off = offset_in_page(class->size * obj_idx); - if (off + class->size <= PAGE_SIZE) { + if (!ZsHugePage(zspage)) + off += ZS_HANDLE_SIZE; + + if (off + mem_len <= PAGE_SIZE) { /* this object is contained entirely within a page */ void *dst = kmap_local_zpdesc(zpdesc); - if (!ZsHugePage(zspage)) - off += ZS_HANDLE_SIZE; memcpy(dst + off, handle_mem, mem_len); kunmap_local(dst); } else { /* this object spans two pages */ size_t sizes[2]; - off += ZS_HANDLE_SIZE; sizes[0] = PAGE_SIZE - off; sizes[1] = mem_len - sizes[0]; |
