mirror of
https://github.com/xemu-project/xemu.git
synced 2025-02-09 05:38:34 +00:00
ipmi: remove the need of an ending record in the SDR table
Currently, the code initializing the sdr table relies on an ending record with a recid of 0xffff. This patch changes the loop to use the sdr size as a breaking condition. Signed-off-by: Cédric Le Goater <clg@fr.ibm.com> Acked-by: Corey Minyard <cminyard@mvista.com> Reviewed-by: Marcel Apfelbaum <marcel@redhat.com> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
parent
4fa9f08e96
commit
52fc01d973
@ -1690,34 +1690,27 @@ static const uint8_t init_sdrs[] = {
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
|
||||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8,
|
||||
'W', 'a', 't', 'c', 'h', 'd', 'o', 'g',
|
||||
/* End */
|
||||
0xff, 0xff, 0x00, 0x00, 0x00
|
||||
};
|
||||
|
||||
static void ipmi_sdr_init(IPMIBmcSim *ibs)
|
||||
{
|
||||
unsigned int i;
|
||||
unsigned int recid;
|
||||
int len;
|
||||
|
||||
for (i = 0;;) {
|
||||
for (i = 0; i < sizeof(init_sdrs); i += len) {
|
||||
struct ipmi_sdr_header *sdrh;
|
||||
int len;
|
||||
|
||||
if ((i + IPMI_SDR_HEADER_SIZE) > sizeof(init_sdrs)) {
|
||||
error_report("Problem with recid 0x%4.4x", i);
|
||||
return;
|
||||
}
|
||||
sdrh = (struct ipmi_sdr_header *) &init_sdrs[i];
|
||||
len = ipmi_sdr_length(sdrh);
|
||||
recid = ipmi_sdr_recid(sdrh);
|
||||
if (recid == 0xffff) {
|
||||
break;
|
||||
}
|
||||
if ((i + len) > sizeof(init_sdrs)) {
|
||||
error_report("Problem with recid 0x%4.4x", i);
|
||||
return;
|
||||
}
|
||||
sdr_add_entry(ibs, sdrh, len, NULL);
|
||||
i += len;
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user