I am trying to understand zsmalloc allocator used in zram and zswap but I am stuck in code of init_zspage in zsmalloc.c
link = (struct link_free *)kmap_atomic(page) +
off / sizeof(*link);
Here link is not initialized. The problem is what will be the value of sizeof(*link) if it not initializes. As far I know sizeof(*link) must be calculated before assignment.