Re: [PATCH] ARC: Fix __swp_offset() implementation

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 06/28/2018 04:59 PM, Alexey Brodkin wrote:
> We encode offset from swapcache page in __swp_entry() this way, see [1]:
> | /* Encode swap {type,off} tuple into PTE
> |  * We reserve 13 bits for 5-bit @type, keeping bits 12-5 zero, ensuring that
> |  * PAGE_PRESENT is zero in a PTE holding swap "identifier"
> |  */
> | #define __swp_entry(type, off)	((swp_entry_t) { \
> | 					((type) & 0x1f) | ((off) << 13) })
>
> But decode in __swp_offset() as:
> | #define __swp_offset(pte_lookalike)	((pte_lookalike).val << 13)
> which is obviously wrong, we should ">> 13" instead.
>
> This basically fixes swap usage on ARC finally.

Nice. Wish all fixes were so simple ;-)

I've added this to for-curr and will also make its way to stable, but lets clean
up this mess of hardcoded 13 properly as a cleanup patch. There are good
references to look at : arm, riscv etc

Thx,
-Vineet



[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux