char *cmp_buf)
{
unsigned long values[] = {section, node, zone, last_cpupid, kasan_tag};
- unsigned long size = 0;
+ unsigned long size;
bool append = false;
int i;
+ for (i = 0; i < ARRAY_SIZE(values); i++)
+ flags |= (values[i] & pft[i].mask) << pft[i].shift;
+
+ size = scnprintf(cmp_buf, BUF_SIZE, "%#lx(", flags);
if (flags & PAGEFLAGS_MASK) {
size += scnprintf(cmp_buf + size, BUF_SIZE - size, "%s", name);
append = true;
if (append)
size += scnprintf(cmp_buf + size, BUF_SIZE - size, "|");
- flags |= (values[i] & pft[i].mask) << pft[i].shift;
size += scnprintf(cmp_buf + size, BUF_SIZE - size, "%s=",
pft[i].name);
size += scnprintf(cmp_buf + size, BUF_SIZE - size, pft[i].fmt,
append = true;
}
+ snprintf(cmp_buf + size, BUF_SIZE - size, ")");
+
test(cmp_buf, "%pGp", &flags);
}