|
@@ -38,11 +38,6 @@
|
|
|
|
|
|
#define RAMOOPS_KERNMSG_HDR "===="
|
|
|
#define MIN_MEM_SIZE 4096UL
|
|
|
-#if __BITS_PER_LONG == 64
|
|
|
-# define TVSEC_FMT "%ld"
|
|
|
-#else
|
|
|
-# define TVSEC_FMT "%lld"
|
|
|
-#endif
|
|
|
|
|
|
static ulong record_size = MIN_MEM_SIZE;
|
|
|
module_param(record_size, ulong, 0400);
|
|
@@ -164,15 +159,15 @@ static int ramoops_read_kmsg_hdr(char *buffer, struct timespec64 *time,
|
|
|
char data_type;
|
|
|
int header_length = 0;
|
|
|
|
|
|
- if (sscanf(buffer, RAMOOPS_KERNMSG_HDR TVSEC_FMT ".%lu-%c\n%n",
|
|
|
- &time->tv_sec, &time->tv_nsec, &data_type,
|
|
|
+ if (sscanf(buffer, RAMOOPS_KERNMSG_HDR "%lld.%lu-%c\n%n",
|
|
|
+ (time64_t *)&time->tv_sec, &time->tv_nsec, &data_type,
|
|
|
&header_length) == 3) {
|
|
|
if (data_type == 'C')
|
|
|
*compressed = true;
|
|
|
else
|
|
|
*compressed = false;
|
|
|
- } else if (sscanf(buffer, RAMOOPS_KERNMSG_HDR TVSEC_FMT ".%lu\n%n",
|
|
|
- &time->tv_sec, &time->tv_nsec,
|
|
|
+ } else if (sscanf(buffer, RAMOOPS_KERNMSG_HDR "%lld.%lu\n%n",
|
|
|
+ (time64_t *)&time->tv_sec, &time->tv_nsec,
|
|
|
&header_length) == 2) {
|
|
|
*compressed = false;
|
|
|
} else {
|
|
@@ -367,8 +362,8 @@ static size_t ramoops_write_kmsg_hdr(struct persistent_ram_zone *prz,
|
|
|
char *hdr;
|
|
|
size_t len;
|
|
|
|
|
|
- hdr = kasprintf(GFP_ATOMIC, RAMOOPS_KERNMSG_HDR TVSEC_FMT ".%lu-%c\n",
|
|
|
- record->time.tv_sec,
|
|
|
+ hdr = kasprintf(GFP_ATOMIC, RAMOOPS_KERNMSG_HDR "%lld.%06lu-%c\n",
|
|
|
+ (time64_t)record->time.tv_sec,
|
|
|
record->time.tv_nsec / 1000,
|
|
|
record->compressed ? 'C' : 'D');
|
|
|
WARN_ON_ONCE(!hdr);
|