On 11/28/2017 01:47 PM, Michael Nawrocki wrote:
I suspect you'll find that the change of type for 'ret' here
and the 'value' argument to pflash_write() will break compilation
with PFLASH_DEBUG defined, because the type won't match the DPRINTF
format strings any more.

You could either fix up the format strings, or (since there's a
wrapper function here anyway) leave the types of pflash_read()
and pflash_write() alone and let the wrappers implicitly do
the conversion between uint64_t and uint32_t.

...ah, just noticed that in patch 2 you want to add 8-byte
accesses. So you'll need to fix the format strings.

thanks
-- PMM


Yeah, it definitely doesn't compile with PFLASH_DEBUG defined. I'll update those format strings for the next revision.

Better yet, please fix the PFLASH_DEBUG code to avoid bitrot in the first place, by rewriting the bad pattern:

/* #define PFLASH_DEBUG */
#ifdef PFLASH_DEBUG
#define DPRINTF(fmt, ...)                                   \
do {                                                        \
    fprintf(stderr, "PFLASH: " fmt , ## __VA_ARGS__);       \
} while (0)
#else
#define DPRINTF(fmt, ...) do { } while (0)
#endif

into the good pattern:

#ifdef PFLASH_DEBUG
# define PFLASH_PRINT 1
#else
# define PFLASH_PRINT 0
#endif
#define DPRINTF(fmt, ...) \
do { \
  if (PFLASH_PRINT) { \
    fprintf(stderr, "PFLASH: " fmt, ## __VA_ARGS__); \
  }; \
} while (0)

or even better, using the trace infrastructure instead.

--
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3266
Virtualization:  qemu.org | libvirt.org

Reply via email to