Re: [PATCH v2] zsmalloc: fix migrate_zspage-zs_free race condition

From: Sergey Senozhatsky
Date: Fri Jan 15 2016 - 23:11:12 EST


On (01/15/16 16:49), Vlastimil Babka wrote:
[..]
>
> Could you please also help making the changelog more clear?
>
> >
> >>+ free_obj |= BIT(HANDLE_PIN_BIT);
> >> record_obj(handle, free_obj);
>
> I think record_obj() should use WRITE_ONCE() or something like that.
> Otherwise the compiler is IMHO allowed to reorder this, i.e. first to assign
> free_obj to handle, and then add the PIN bit there.

good note.

... or do both things in record_obj() (per Minchan)

record_obj(handle, obj)
{
*(unsigned long)handle = obj & ~(1<<HANDLE_PIN_BIT);
}

-ss