Re: [PATCH v14 2/7] mm: add VM_DROPPABLE for designating always lazily freeable mappings

From: Linus Torvalds
Date: Fri Jan 06 2023 - 17:08:01 EST


On Fri, Jan 6, 2023 at 1:42 PM Matthew Wilcox <willy@xxxxxxxxxxxxx> wrote:
>
>
> I'd be more inclined to do:
>
> typedef unsigned int vm_flags_t[2];

No, that's entirely invalid.

Never *ever* use arrays in C for type safety. Arrays are not type
safe. They can't be assigned sanely, and they silently become pointers
(which also aren't type-safe, since they end up converting silently to
'void *').

If you want to use the type system to enforce things, and you don't
want to rely on sparse, you absolutely have to use a struct (or union)
type.

So something like

typedef struct { u64 val; } vm_flags_t;

would be an option.

Linus