Re: [PATCH] zram: fix slot lock bit position on big-endian 64-bit

From: Sergey Senozhatsky

Date: Mon Aug 10 2026 - 22:08:35 EST


On (26/08/10 21:22), David Carlier wrote:
> The slot lock is a bit operation on the whole __lock word, which
> flags and ac_time alias as two u32s. On little-endian the lock bit
> lands in the position ZRAM_ENTRY_LOCK reserves in flags, so the
> aliasing works out. On 64-bit big-endian it lands in ac_time
> instead: with ZRAM_TRACK_ENTRY_ACTIME enabled, storing the access
> time from mark_slot_accessed() or slot_free() wipes out the held
> lock bit, letting another CPU take the same slot lock; an access
> time value with that bit set makes the slot look locked forever.
>
> Shift the lock bit into the flags half of the word on big-endian
> 64-bit.
>
> Fixes: 2e8ff2f51dde ("zram: use u32 for entry ac_time tracking")
> Cc: stable@xxxxxxxxxxxxxxx
> Signed-off-by: David Carlier <devnexen@xxxxxxxxx>

Reviewed-by: Sergey Senozhatsky <senozhatsky@xxxxxxxxxxxx>