From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mark McLoughlin Subject: Re: [PATCH 1/5][RFC] virtio-net: Allow setting the MAC address via set_config Date: Fri, 09 Jan 2009 11:38:09 +0000 Message-ID: <1231501089.4481.76.camel@localhost.localdomain> References: <1231349856.7109.80.camel@lappy> Reply-To: Mark McLoughlin Mime-Version: 1.0 Content-Type: text/plain Content-Transfer-Encoding: 7bit Cc: kvm , qemu-devel To: Alex Williamson Return-path: Received: from mx2.redhat.com ([66.187.237.31]:37438 "EHLO mx2.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752248AbZAILiS (ORCPT ); Fri, 9 Jan 2009 06:38:18 -0500 In-Reply-To: <1231349856.7109.80.camel@lappy> Sender: kvm-owner@vger.kernel.org List-ID: On Wed, 2009-01-07 at 10:37 -0700, Alex Williamson wrote: > virtio-net: Allow setting the MAC address via set_config This will basically never happen with QEMU, right? We always set the MAC address - even if not supplied on the command line - and the guest will never override that. > Rename get_config for simplicity > > Signed-off-by: Alex Williamson > --- > > hw/virtio-net.c | 21 +++++++++++++++++++-- > 1 files changed, 19 insertions(+), 2 deletions(-) > > diff --git a/hw/virtio-net.c b/hw/virtio-net.c > index 2c41b3e..bfb7510 100644 > --- a/hw/virtio-net.c > +++ b/hw/virtio-net.c > @@ -38,7 +38,7 @@ static VirtIONet *to_virtio_net(VirtIODevice *vdev) > return (VirtIONet *)vdev; > } > > -static void virtio_net_update_config(VirtIODevice *vdev, uint8_t > *config) > +static void virtio_net_get_config(VirtIODevice *vdev, uint8_t *config) Yay :-) > { > VirtIONet *n = to_virtio_net(vdev); > struct virtio_net_config netcfg; > @@ -48,6 +48,22 @@ static void virtio_net_update_config(VirtIODevice > *vdev, uint8_t *config) > memcpy(config, &netcfg, sizeof(netcfg)); > } > > +static void virtio_net_set_config(VirtIODevice *vdev, const uint8_t > *config) > +{ > + VirtIONet *n = to_virtio_net(vdev); > + struct virtio_net_config netcfg; > + > + memcpy(&netcfg, config, sizeof(netcfg)); > + > + if (memcmp(netcfg.mac, n->mac, 6)) { > + memcpy(n->mac, netcfg.mac, 6); > + snprintf(n->vc->info_str, sizeof(n->vc->info_str), > + "virtio macaddr=%02x:%02x:%02x:%02x:%02x:%02x", > + n->mac[0], n->mac[1], n->mac[2], > + n->mac[3], n->mac[4], n->mac[5]); There's qemu_format_nic_info_str() now. Cheers, Mark.