|
@@ -777,11 +777,19 @@ char *hex_string(char *buf, char *end, u8 *addr, struct printf_spec spec,
|
|
|
if (spec.field_width > 0)
|
|
if (spec.field_width > 0)
|
|
|
len = min_t(int, spec.field_width, 64);
|
|
len = min_t(int, spec.field_width, 64);
|
|
|
|
|
|
|
|
- for (i = 0; i < len && buf < end - 1; i++) {
|
|
|
|
|
- buf = hex_byte_pack(buf, addr[i]);
|
|
|
|
|
|
|
+ for (i = 0; i < len; ++i) {
|
|
|
|
|
+ if (buf < end)
|
|
|
|
|
+ *buf = hex_asc_hi(addr[i]);
|
|
|
|
|
+ ++buf;
|
|
|
|
|
+ if (buf < end)
|
|
|
|
|
+ *buf = hex_asc_lo(addr[i]);
|
|
|
|
|
+ ++buf;
|
|
|
|
|
|
|
|
- if (buf < end && separator && i != len - 1)
|
|
|
|
|
- *buf++ = separator;
|
|
|
|
|
|
|
+ if (separator && i != len - 1) {
|
|
|
|
|
+ if (buf < end)
|
|
|
|
|
+ *buf = separator;
|
|
|
|
|
+ ++buf;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
return buf;
|
|
return buf;
|