From: Laszlo Ersek <lersek@redhat.com>
To: "Gabriel L. Somlo" <somlo@cmu.edu>
Cc: matt.fleming@intel.com, mdroth@linux.vnet.ibm.com,
rjones@redhat.com, jordan.l.justen@intel.com,
qemu-devel@nongnu.org, gleb@cloudius-systems.com,
gsomlo@gmail.com, kraxel@redhat.com, pbonzini@redhat.com,
armbru@redhat.com
Subject: Re: [Qemu-devel] [PATCH v2 2/5] fw_cfg: remove support for guest-side data writes
Date: Thu, 19 Mar 2015 17:16:24 +0100 [thread overview]
Message-ID: <550AF658.2070102@redhat.com> (raw)
In-Reply-To: <1426724311-9343-3-git-send-email-somlo@cmu.edu>
On 03/19/15 01:18, Gabriel L. Somlo wrote:
> From this point forward, any guest-side writes to the fw_cfg
> data register will be treated as no-ops. This patch also removes
> the unused host-side API function fw_cfg_add_callback(), which
> allowed the registration of a callback to be executed each time
> the guest completed a full overwrite of a given fw_cfg data item.
>
> Signed-off-by: Gabriel Somlo <somlo@cmu.edu>
> ---
> hw/nvram/fw_cfg.c | 33 +--------------------------------
> include/hw/nvram/fw_cfg.h | 2 --
> trace-events | 1 -
> 3 files changed, 1 insertion(+), 35 deletions(-)
>
> diff --git a/hw/nvram/fw_cfg.c b/hw/nvram/fw_cfg.c
> index 78a37be..2f609b4 100644
> --- a/hw/nvram/fw_cfg.c
> +++ b/hw/nvram/fw_cfg.c
> @@ -46,7 +46,6 @@ typedef struct FWCfgEntry {
> uint32_t len;
> uint8_t *data;
> void *callback_opaque;
> - FWCfgCallback callback;
> FWCfgReadCallback read_callback;
> } FWCfgEntry;
>
> @@ -232,19 +231,7 @@ static void fw_cfg_reboot(FWCfgState *s)
>
> static void fw_cfg_write(FWCfgState *s, uint8_t value)
> {
> - int arch = !!(s->cur_entry & FW_CFG_ARCH_LOCAL);
> - FWCfgEntry *e = &s->entries[arch][s->cur_entry & FW_CFG_ENTRY_MASK];
> -
> - trace_fw_cfg_write(s, value);
> -
> - if (s->cur_entry & FW_CFG_WRITE_CHANNEL && e->callback &&
> - s->cur_offset < e->len) {
> - e->data[s->cur_offset++] = value;
> - if (s->cur_offset == e->len) {
> - e->callback(e->callback_opaque, e->data);
> - s->cur_offset = 0;
> - }
> - }
> + /* nothing, write support removed in QEMU v2.4+ */
> }
>
> static int fw_cfg_select(FWCfgState *s, uint16_t key)
> @@ -458,7 +445,6 @@ static void *fw_cfg_modify_bytes_read(FWCfgState *s, uint16_t key,
> s->entries[arch][key].data = data;
> s->entries[arch][key].len = len;
> s->entries[arch][key].callback_opaque = NULL;
> - s->entries[arch][key].callback = NULL;
>
> return ptr;
> }
> @@ -502,23 +488,6 @@ void fw_cfg_add_i64(FWCfgState *s, uint16_t key, uint64_t value)
> fw_cfg_add_bytes(s, key, copy, sizeof(value));
> }
>
> -void fw_cfg_add_callback(FWCfgState *s, uint16_t key, FWCfgCallback callback,
> - void *callback_opaque, void *data, size_t len)
> -{
> - int arch = !!(key & FW_CFG_ARCH_LOCAL);
> -
> - assert(key & FW_CFG_WRITE_CHANNEL);
> -
> - key &= FW_CFG_ENTRY_MASK;
> -
> - assert(key < FW_CFG_MAX_ENTRY && len <= UINT32_MAX);
> -
> - s->entries[arch][key].data = data;
> - s->entries[arch][key].len = (uint32_t)len;
> - s->entries[arch][key].callback_opaque = callback_opaque;
> - s->entries[arch][key].callback = callback;
> -}
> -
> void fw_cfg_add_file_callback(FWCfgState *s, const char *filename,
> FWCfgReadCallback callback, void *callback_opaque,
> void *data, size_t len)
> diff --git a/include/hw/nvram/fw_cfg.h b/include/hw/nvram/fw_cfg.h
> index 6d8a8ac..b2e10c2 100644
> --- a/include/hw/nvram/fw_cfg.h
> +++ b/include/hw/nvram/fw_cfg.h
> @@ -69,8 +69,6 @@ void fw_cfg_add_string(FWCfgState *s, uint16_t key, const char *value);
> void fw_cfg_add_i16(FWCfgState *s, uint16_t key, uint16_t value);
> void fw_cfg_add_i32(FWCfgState *s, uint16_t key, uint32_t value);
> void fw_cfg_add_i64(FWCfgState *s, uint16_t key, uint64_t value);
> -void fw_cfg_add_callback(FWCfgState *s, uint16_t key, FWCfgCallback callback,
> - void *callback_opaque, void *data, size_t len);
> void fw_cfg_add_file(FWCfgState *s, const char *filename, void *data,
> size_t len);
> void fw_cfg_add_file_callback(FWCfgState *s, const char *filename,
> diff --git a/trace-events b/trace-events
> index 30eba92..1275b70 100644
> --- a/trace-events
> +++ b/trace-events
> @@ -193,7 +193,6 @@ ecc_diag_mem_writeb(uint64_t addr, uint32_t val) "Write diagnostic %"PRId64" = %
> ecc_diag_mem_readb(uint64_t addr, uint32_t ret) "Read diagnostic %"PRId64"= %02x"
>
> # hw/nvram/fw_cfg.c
> -fw_cfg_write(void *s, uint8_t value) "%p %d"
> fw_cfg_select(void *s, uint16_t key, int ret) "%p key %d = %d"
> fw_cfg_read(void *s, uint8_t ret) "%p = %d"
> fw_cfg_add_file_dupe(void *s, char *name) "%p %s"
>
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
next prev parent reply other threads:[~2015-03-19 16:17 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-03-19 0:18 [Qemu-devel] [PATCH v2 0/5] fw-cfg: documentation, cleanup, and cmdline blobs Gabriel L. Somlo
2015-03-19 0:18 ` [Qemu-devel] [PATCH v2 1/5] fw_cfg: add documentation file (docs/specs/fw_cfg.txt) Gabriel L. Somlo
2015-03-19 16:14 ` Laszlo Ersek
2015-03-19 0:18 ` [Qemu-devel] [PATCH v2 2/5] fw_cfg: remove support for guest-side data writes Gabriel L. Somlo
2015-03-19 16:16 ` Laszlo Ersek [this message]
2015-03-19 0:18 ` [Qemu-devel] [PATCH v2 3/5] fw_cfg: prevent selector key conflict Gabriel L. Somlo
2015-03-19 16:18 ` Laszlo Ersek
2015-03-19 0:18 ` [Qemu-devel] [PATCH v2 4/5] fw_cfg: prohibit insertion of duplicate fw_cfg file names Gabriel L. Somlo
2015-03-19 16:34 ` Laszlo Ersek
2015-03-20 6:51 ` Laszlo Ersek
2015-03-20 14:34 ` Gabriel L. Somlo
2015-03-20 18:28 ` Laszlo Ersek
2015-03-19 0:18 ` [Qemu-devel] [PATCH v2 5/5] fw_cfg: insert fw_cfg file blobs via qemu cmdline Gabriel L. Somlo
2015-03-19 8:18 ` Markus Armbruster
2015-03-19 17:38 ` Laszlo Ersek
2015-03-20 18:01 ` Gabriel L. Somlo
2015-03-20 18:47 ` Gabriel L. Somlo
2015-03-23 7:33 ` Gerd Hoffmann
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=550AF658.2070102@redhat.com \
--to=lersek@redhat.com \
--cc=armbru@redhat.com \
--cc=gleb@cloudius-systems.com \
--cc=gsomlo@gmail.com \
--cc=jordan.l.justen@intel.com \
--cc=kraxel@redhat.com \
--cc=matt.fleming@intel.com \
--cc=mdroth@linux.vnet.ibm.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=rjones@redhat.com \
--cc=somlo@cmu.edu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.