From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:35368) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1T4sDO-0008F4-45 for qemu-devel@nongnu.org; Fri, 24 Aug 2012 07:38:19 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1T4sDN-0008Uc-2k for qemu-devel@nongnu.org; Fri, 24 Aug 2012 07:38:14 -0400 Received: from mx1.redhat.com ([209.132.183.28]:48791) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1T4sDM-0008UY-QE for qemu-devel@nongnu.org; Fri, 24 Aug 2012 07:38:13 -0400 Message-ID: <503767A2.90402@redhat.com> Date: Fri, 24 Aug 2012 13:38:10 +0200 From: Paolo Bonzini MIME-Version: 1.0 References: <1345804601-7948-1-git-send-email-hare@suse.de> In-Reply-To: <1345804601-7948-1-git-send-email-hare@suse.de> Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH] megasas: Add 'hba_serial' property List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Hannes Reinecke Cc: qemu-devel@nongnu.org Il 24/08/2012 12:36, Hannes Reinecke ha scritto: > Add a 'hba_serial' property to the megasas driver. Originally > it would be using a pointer value which would break migration. > > Reported-by: Stefan Weil > Signed-off-by: Hannes Reinecke > Cc: Paolo Bonzini > --- > hw/megasas.c | 9 +++++++-- > 1 files changed, 7 insertions(+), 2 deletions(-) > > diff --git a/hw/megasas.c b/hw/megasas.c > index c35a15d..c728aea 100644 > --- a/hw/megasas.c > +++ b/hw/megasas.c > @@ -38,6 +38,7 @@ > #define MEGASAS_MAX_SECTORS 0xFFFF /* No real limit */ > #define MEGASAS_MAX_ARRAYS 128 > > +#define MEGASAS_HBA_SERIAL "QEMU123456" > #define NAA_LOCALLY_ASSIGNED_ID 0x3ULL > #define IEEE_COMPANY_LOCALLY_ASSIGNED 0x525400 > > @@ -93,6 +94,7 @@ typedef struct MegasasState { > int boot_event; > > uint64_t sas_addr; > + char *hba_serial; > > uint64_t reply_queue_pa; > void *reply_queue; > @@ -698,8 +700,7 @@ static int megasas_ctrl_get_info(MegasasState *s, MegasasCmd *cmd) > } > > memcpy(info.product_name, "MegaRAID SAS 8708EM2", 20); > - snprintf(info.serial_number, 32, "QEMU%08lx", > - (unsigned long)s & 0xFFFFFFFF); > + snprintf(info.serial_number, 32, "%s", s->hba_serial); > snprintf(info.package_version, 0x60, "%s-QEMU", QEMU_VERSION); > memcpy(info.image_component[0].name, "APP", 3); > memcpy(info.image_component[0].version, MEGASAS_VERSION "-QEMU", 9); > @@ -2132,6 +2133,9 @@ static int megasas_scsi_init(PCIDevice *dev) > s->sas_addr |= (PCI_SLOT(dev->devfn) << 8); > s->sas_addr |= PCI_FUNC(dev->devfn); > } > + if (!s->hba_serial) { > + s->hba_serial = g_strdup(MEGASAS_HBA_SERIAL); > + } > if (s->fw_sge >= MEGASAS_MAX_SGE - MFI_PASS_FRAME_SIZE) { > s->fw_sge = MEGASAS_MAX_SGE - MFI_PASS_FRAME_SIZE; > } else if (s->fw_sge >= 128 - MFI_PASS_FRAME_SIZE) { > @@ -2166,6 +2170,7 @@ static Property megasas_properties[] = { > MEGASAS_DEFAULT_SGE), > DEFINE_PROP_UINT32("max_cmds", MegasasState, fw_cmds, > MEGASAS_DEFAULT_FRAMES), > + DEFINE_PROP_STRING("hba_serial", MegasasState, hba_serial), > DEFINE_PROP_HEX64("sas_address", MegasasState, sas_addr, 0), > #ifdef USE_MSIX > DEFINE_PROP_BIT("use_msix", MegasasState, flags, > Applied to scsi-next branch. Paolo