Pass magic to verify_trace(), this will enable verification of multiple supported versions. Reviewed-by: Damien Le Moal Reviewed-by: Martin K. Petersen Singed-off-by: Johannes Thumshirn --- blkiomon.c | 2 +- blkparse.c | 4 ++-- blktrace.h | 15 +++++++++------ 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/blkiomon.c b/blkiomon.c index 05f2d00..373947e 100644 --- a/blkiomon.c +++ b/blkiomon.c @@ -488,7 +488,7 @@ static int blkiomon_do_fifo(void) /* endianess */ trace_to_cpu(bit); - if (verify_trace(bit)) { + if (verify_trace(bit->magic)) { fprintf(stderr, "blkiomon: bad trace\n"); break; } diff --git a/blkparse.c b/blkparse.c index 0402e81..9065330 100644 --- a/blkparse.c +++ b/blkparse.c @@ -2509,7 +2509,7 @@ static int read_events(int fd, int always_block, int *fdblock) continue; } - if (verify_trace(bit)) { + if (verify_trace(bit->magic)) { bit_free(bit); bit = NULL; continue; @@ -2649,7 +2649,7 @@ static int ms_prime(struct ms_stream *msp) if (ret) goto err; - if (verify_trace(bit)) + if (verify_trace(bit->magic)) goto err; if (bit->cpu != pci->cpu) { diff --git a/blktrace.h b/blktrace.h index 14c0d92..bdea438 100644 --- a/blktrace.h +++ b/blktrace.h @@ -88,15 +88,18 @@ extern struct timespec abs_start_time; #error "Bad arch" #endif -static inline int verify_trace(struct blk_io_trace *t) +static inline int verify_trace(__u32 magic) { - if (!CHECK_MAGIC(t->magic)) { - fprintf(stderr, "bad trace magic %x\n", t->magic); + u8 version; + + if (!CHECK_MAGIC(magic)) { + fprintf(stderr, "bad trace magic %x\n", magic); return 1; } - if ((t->magic & 0xff) != SUPPORTED_VERSION) { - fprintf(stderr, "unsupported trace version %x\n", - t->magic & 0xff); + + version = magic & 0xff; + if (version != SUPPORTED_VERSION) { + fprintf(stderr, "unsupported trace version %x\n", version); return 1; } -- 2.51.1