}
 }
 
-#define XSTATE_WARN_ON(x) do {                                                 \
-       if (WARN_ONCE(x, "XSAVE consistency problem, dumping leaves")) {        \
+#define XSTATE_WARN_ON(x, fmt, ...) do {                                       \
+       if (WARN_ONCE(x, "XSAVE consistency problem: " fmt, ##__VA_ARGS__)) {   \
                __xstate_dump_leaves();                                         \
        }                                                                       \
 } while (0)
            (nr >= XFEATURE_MAX) ||
            (nr == XFEATURE_PT_UNIMPLEMENTED_SO_FAR) ||
            ((nr >= XFEATURE_RSRVD_COMP_11) && (nr <= XFEATURE_RSRVD_COMP_16))) {
-               WARN_ONCE(1, "no structure for xstate: %d\n", nr);
-               XSTATE_WARN_ON(1);
+               XSTATE_WARN_ON(1, "No structure for xstate: %d\n", nr);
                return false;
        }
        return true;
                 * XSAVES.
                 */
                if (!xsaves && xfeature_is_supervisor(i)) {
-                       XSTATE_WARN_ON(1);
+                       XSTATE_WARN_ON(1, "Got supervisor feature %d, but XSAVES not advertised\n", i);
                        return false;
                }
        }
        size = xstate_calculate_size(fpu_kernel_cfg.max_features, compacted);
-       XSTATE_WARN_ON(size != kernel_size);
+       XSTATE_WARN_ON(size != kernel_size,
+                      "size %u != kernel_size %u\n", size, kernel_size);
        return size == kernel_size;
 }