On 2021/6/8 7:10, Andrew Morton wrote: > On Sat, 5 Jun 2021 15:51:40 +0800 Miaohe Lin <linmiaohe@xxxxxxxxxx> wrote: > >> Since commit 9d8c5b5284e4 ("mm: zbud: fix condition check on allocation >> size"), zbud_pool.unbuddied[0] is always unused. We can reuse it as buddied >> field to save some possible memory. >> >> ... >> >> --- a/mm/zbud.c >> +++ b/mm/zbud.c >> @@ -96,7 +96,7 @@ >> struct zbud_pool { >> spinlock_t lock; >> struct list_head unbuddied[NCHUNKS]; >> - struct list_head buddied; >> +#define buddied unbuddied[0] >> struct list_head lru; >> u64 pages_nr; >> const struct zbud_ops *ops; > > That looks a bit hacky. Can we at least have a comment explaining > what's going on? > > Would it be better to implement this with a union, rather than a #define? It seems union is better and comment is necessary. Will try to do this. Many thanks for your comment and reply! > . >