union perf_event *event __maybe_unused,
                           struct perf_sample *sample)
 {
-       int ret;
+       long ret;
        u64 duration = 0;
        struct thread *thread;
        int id = perf_evsel__sc_tp_uint(evsel, id, sample);
 
        if (sc->fmt == NULL) {
 signed_print:
-               fprintf(trace->output, ") = %d", ret);
+               fprintf(trace->output, ") = %ld", ret);
        } else if (ret < 0 && sc->fmt->errmsg) {
                char bf[STRERR_BUFSIZE];
                const char *emsg = strerror_r(-ret, bf, sizeof(bf)),
        } else if (ret == 0 && sc->fmt->timeout)
                fprintf(trace->output, ") = 0 Timeout");
        else if (sc->fmt->hexret)
-               fprintf(trace->output, ") = %#x", ret);
+               fprintf(trace->output, ") = %#lx", ret);
        else
                goto signed_print;