[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v3 1/3] Switch AMD CFI flash to use new MMIO API

From: Eric Blake
Subject: Re: [Qemu-devel] [PATCH v3 1/3] Switch AMD CFI flash to use new MMIO API
Date: Tue, 28 Nov 2017 14:05:25 -0600
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.4.0

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.

-- 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 */
#define DPRINTF(fmt, ...)                                   \
do {                                                        \
    fprintf(stderr, "PFLASH: " fmt , ## __VA_ARGS__);       \
} while (0)
#define DPRINTF(fmt, ...) do { } while (0)

into the good pattern:

# define PFLASH_PRINT 1
# define PFLASH_PRINT 0
#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

[Prev in Thread] Current Thread [Next in Thread]