All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Cédric Le Goater" <clg@fr.ibm.com>
To: marcel@redhat.com, Corey Minyard <cminyard@mvista.com>
Cc: "Michael S. Tsirkin" <mst@redhat.com>,
	qemu-devel@nongnu.org, Greg Kurz <gkurz@linux.vnet.ibm.com>
Subject: Re: [Qemu-devel] [PATCH 5/8] ipmi: use a file to load SDRs
Date: Mon, 15 Feb 2016 18:02:48 +0100	[thread overview]
Message-ID: <56C204B8.9060603@fr.ibm.com> (raw)
In-Reply-To: <56C04402.2060601@gmail.com>

On 02/14/2016 10:08 AM, Marcel Apfelbaum wrote:
> On 02/09/2016 02:13 PM, Cédric Le Goater wrote:
>> The IPMI BMC simulator populates the sdr/sensor tables with a minimal
>> set of entries (Watchdog). But some qemu platforms might want to use
>> extra entries for their custom needs.
>>
>> This patch modifies slighty the initializing routine to take into
>> account a larger set read from a file. The name of the file to use is
>> defined through a new 'sdr' property of the simulator device.
>>
>> Signed-off-by: Cédric Le Goater <clg@fr.ibm.com>
>> ---
>>   hw/ipmi/ipmi_bmc_sim.c | 19 +++++++++++++++----
>>   1 file changed, 15 insertions(+), 4 deletions(-)
>>
>> diff --git a/hw/ipmi/ipmi_bmc_sim.c b/hw/ipmi/ipmi_bmc_sim.c
>> index aff818cf22ab..69318eb6b556 100644
>> --- a/hw/ipmi/ipmi_bmc_sim.c
>> +++ b/hw/ipmi/ipmi_bmc_sim.c
>> @@ -27,6 +27,7 @@
>>   #include "qemu/timer.h"
>>   #include "hw/ipmi/ipmi.h"
>>   #include "qemu/error-report.h"
>> +#include "hw/loader.h"
>>
>>   #define IPMI_NETFN_CHASSIS            0x00
>>
>> @@ -208,6 +209,7 @@ struct IPMIBmcSim {
>>       IPMISel sel;
>>       IPMISdr sdr;
>>       IPMISensor sensors[MAX_SENSORS];
>> +    char *sdr_filename;
>>
>>       /* Odd netfns are for responses, so we only need the even ones. */
>>       const IPMINetfn *netfns[MAX_NETFNS / 2];
>> @@ -1708,24 +1710,32 @@ static void ipmi_sdr_init(IPMIBmcSim *ibs)
>>       size_t sdrs_size;
>>       uint8_t *sdrs;
>>
>> -    sdrs_size = sizeof(init_sdrs);
>> -    sdrs = init_sdrs;
>> +    if (!ibs->sdr_filename ||
>> +        !g_file_get_contents(ibs->sdr_filename, (gchar **) &sdrs, &sdrs_size,
>> +                            NULL)) {
> 
> Hi,
> 
> If the file exists but you cannot read it you may want at least to
> warn the user. He may think the contents are read from the file.

In fact, I did in an early version of the patch and then I removed it 
because I thought qemu did not have to complain for not fatal errors. 

I will add a error_report().

Thanks,

C. 



> Other than that and the change of the property name (as suggested in this mail thread
> 
> Reviewed-by: Marcel Apfelbaum <marcel@redhat.com>
> 
> Thanks,
> Marcel
> 
> 
>> +        sdrs_size = sizeof(init_sdrs);
>> +        sdrs = init_sdrs;
>> +    }
>>
>>       for (i = 0; i < sdrs_size; i += len) {
>>           struct ipmi_sdr_header *sdrh;
>>
>>           if (i + IPMI_SDR_HEADER_SIZE > sdrs_size) {
>>               error_report("Problem with recid 0x%4.4x", i);
>> -            return;
>> +            break;
>>           }
>>           sdrh = (struct ipmi_sdr_header *) &sdrs[i];
>>           len = ipmi_sdr_length(sdrh);
>>           if (i + len > sdrs_size) {
>>               error_report("Problem with recid 0x%4.4x", i);
>> -            return;
>> +            break;
>>           }
>>           sdr_add_entry(ibs, sdrh, len, NULL);
>>       }
>> +
>> +    if (sdrs != init_sdrs) {
>> +        g_free(sdrs);
>> +    }
>>   }
>>
>>   static const VMStateDescription vmstate_ipmi_sim = {
>> @@ -1796,6 +1806,7 @@ static void ipmi_sim_realize(DeviceState *dev, Error **errp)
>>   }
>>
>>   static Property ipmi_sim_properties[] = {
>> +    DEFINE_PROP_STRING("sdr", IPMIBmcSim, sdr_filename),
>>       DEFINE_PROP_END_OF_LIST(),
>>   };
>>
>>
> 

  reply	other threads:[~2016-02-15 17:03 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-09 12:13 [Qemu-devel] [PATCH 0/8] ipmi: a couple of enhancements to the BMC simulator (round 2) Cédric Le Goater
2016-02-09 12:13 ` [Qemu-devel] [PATCH 1/8] ipmi: add a realize function to the device class Cédric Le Goater
2016-02-14  8:22   ` Marcel Apfelbaum
2016-02-09 12:13 ` [Qemu-devel] [PATCH 2/8] ipmi: use a function to initialize the SDR table Cédric Le Goater
2016-02-14  8:31   ` Marcel Apfelbaum
2016-02-15 16:52     ` Cédric Le Goater
2016-02-09 12:13 ` [Qemu-devel] [PATCH 3/8] ipmi: remove the need of an ending record in " Cédric Le Goater
2016-02-14  8:39   ` Marcel Apfelbaum
2016-02-09 12:13 ` [Qemu-devel] [PATCH 4/8] ipmi: add some local variables in ipmi_sdr_init Cédric Le Goater
2016-02-14  8:55   ` Marcel Apfelbaum
2016-02-15 16:54     ` Cédric Le Goater
2016-02-09 12:13 ` [Qemu-devel] [PATCH 5/8] ipmi: use a file to load SDRs Cédric Le Goater
2016-02-14  9:08   ` Marcel Apfelbaum
2016-02-15 17:02     ` Cédric Le Goater [this message]
2016-02-09 12:13 ` [Qemu-devel] [PATCH 6/8] ipmi: provide support for FRUs Cédric Le Goater
2016-02-14  9:25   ` Marcel Apfelbaum
2016-02-15 17:17     ` Cédric Le Goater
2016-02-15 18:40       ` Marcel Apfelbaum
2016-02-16  3:38         ` Corey Minyard
2016-02-16  8:47           ` Cédric Le Goater
2016-02-09 12:13 ` [Qemu-devel] [PATCH 7/8] ipmi: introduce an ipmi_bmc_sdr_find() API Cédric Le Goater
2016-02-14  9:30   ` Marcel Apfelbaum
2016-02-15 17:21     ` Cédric Le Goater
2016-02-09 12:13 ` [Qemu-devel] [PATCH 8/8] ipmi: introduce an ipmi_bmc_gen_event() API Cédric Le Goater
2016-02-14  9:32   ` Marcel Apfelbaum
2016-02-09 18:25 ` [Qemu-devel] [PATCH 0/8] ipmi: a couple of enhancements to the BMC simulator (round 2) Corey Minyard
2016-02-10 14:05   ` Cédric Le Goater
2016-02-10 16:06     ` Corey Minyard
2016-02-10 16:13       ` Cédric Le Goater

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=56C204B8.9060603@fr.ibm.com \
    --to=clg@fr.ibm.com \
    --cc=cminyard@mvista.com \
    --cc=gkurz@linux.vnet.ibm.com \
    --cc=marcel@redhat.com \
    --cc=mst@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /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.