int kptr_restrict __read_mostly;
static noinline_for_stack
-char *restricted_pointer(char *buf, char *end, const void *ptr,
- struct printf_spec spec)
+char *restricted_pointer(struct printf_state *ps, const void *ptr)
{
switch (kptr_restrict) {
case 0:
* because its test for CAP_SYSLOG would be meaningless.
*/
if (in_irq() || in_serving_softirq() || in_nmi()) {
- if (spec.field_width == -1)
- spec.field_width = 2 * sizeof(ptr);
- return string(buf, end, "pK-error", spec);
+ if (ps->spec.field_width == -1)
+ ps->spec.field_width = 2 * sizeof(ptr);
+ printf_string(ps, "pK-error");
+ return ps->buf;
}
/*
break;
}
- return pointer_string(buf, end, ptr, spec);
+ return pointer_string(ps->buf, ps->end, ptr, ps->spec);
}
static noinline_for_stack
case 'K':
if (!kptr_restrict)
break;
- return restricted_pointer(buf, end, ptr, spec);
+ return restricted_pointer(ps, ptr);
case 'N':
return netdev_bits(ps, ptr);
case 'a':