diff mbox

[4/8] ipmi: add some local variables in ipmi_sdr_init

Message ID 1455020010-17532-5-git-send-email-clg@fr.ibm.com
State New
Headers show

Commit Message

Cédric Le Goater Feb. 9, 2016, 12:13 p.m. UTC
This patch adds a couple of variables to manipulate the raw sdr
entries. The const attribute is also removed on init_sdrs. This will
ease the introduction of a sdr loader using a file.

Signed-off-by: Cédric Le Goater <clg@fr.ibm.com>
---
 hw/ipmi/ipmi_bmc_sim.c | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)

Comments

Marcel Apfelbaum Feb. 14, 2016, 8:55 a.m. UTC | #1
On 02/09/2016 02:13 PM, Cédric Le Goater wrote:
> This patch adds a couple of variables to manipulate the raw sdr
> entries. The const attribute is also removed on init_sdrs. This will
> ease the introduction of a sdr loader using a file.

Hi,

You could remove the const attribute when you have to, anyway

Reviewed-by: Marcel Apfelbaum <marcel@redhat.com>

Thanks,
Marcel


>
> Signed-off-by: Cédric Le Goater <clg@fr.ibm.com>
> ---
>   hw/ipmi/ipmi_bmc_sim.c | 15 ++++++++++-----
>   1 file changed, 10 insertions(+), 5 deletions(-)
>
> diff --git a/hw/ipmi/ipmi_bmc_sim.c b/hw/ipmi/ipmi_bmc_sim.c
> index f219bfc7a2f3..aff818cf22ab 100644
> --- a/hw/ipmi/ipmi_bmc_sim.c
> +++ b/hw/ipmi/ipmi_bmc_sim.c
> @@ -1692,7 +1692,7 @@ static void register_cmds(IPMIBmcSim *s)
>       ipmi_register_netfn(s, IPMI_NETFN_STORAGE, &storage_netfn);
>   }
>
> -static const uint8_t init_sdrs[] = {
> +static uint8_t init_sdrs[] = {
>       /* Watchdog device */
>       0x00, 0x00, 0x51, 0x02,   35, 0x20, 0x00, 0x00,
>       0x23, 0x01, 0x63, 0x00, 0x23, 0x6f, 0x0f, 0x01,
> @@ -1705,17 +1705,22 @@ static void ipmi_sdr_init(IPMIBmcSim *ibs)
>   {
>       unsigned int i;
>       int len;
> +    size_t sdrs_size;
> +    uint8_t *sdrs;
>
> -    for (i = 0; i < sizeof(init_sdrs); i += len) {
> +    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) > sizeof(init_sdrs)) {
> +        if (i + IPMI_SDR_HEADER_SIZE > sdrs_size) {
>               error_report("Problem with recid 0x%4.4x", i);
>               return;
>           }
> -        sdrh = (struct ipmi_sdr_header *) &init_sdrs[i];
> +        sdrh = (struct ipmi_sdr_header *) &sdrs[i];
>           len = ipmi_sdr_length(sdrh);
> -        if ((i + len) > sizeof(init_sdrs)) {
> +        if (i + len > sdrs_size) {
>               error_report("Problem with recid 0x%4.4x", i);
>               return;
>           }
>
Cédric Le Goater Feb. 15, 2016, 4:54 p.m. UTC | #2
On 02/14/2016 09:55 AM, Marcel Apfelbaum wrote:
> On 02/09/2016 02:13 PM, Cédric Le Goater wrote:
>> This patch adds a couple of variables to manipulate the raw sdr
>> entries. The const attribute is also removed on init_sdrs. This will
>> ease the introduction of a sdr loader using a file.
> 
> Hi,
> 
> You could remove the const attribute when you have to, anyway

OK. I can do that in the next patch.

Thanks,

C. 

> 
> Reviewed-by: Marcel Apfelbaum <marcel@redhat.com>
> 
> Thanks,
> Marcel
> 
> 
>>
>> Signed-off-by: Cédric Le Goater <clg@fr.ibm.com>
>> ---
>>   hw/ipmi/ipmi_bmc_sim.c | 15 ++++++++++-----
>>   1 file changed, 10 insertions(+), 5 deletions(-)
>>
>> diff --git a/hw/ipmi/ipmi_bmc_sim.c b/hw/ipmi/ipmi_bmc_sim.c
>> index f219bfc7a2f3..aff818cf22ab 100644
>> --- a/hw/ipmi/ipmi_bmc_sim.c
>> +++ b/hw/ipmi/ipmi_bmc_sim.c
>> @@ -1692,7 +1692,7 @@ static void register_cmds(IPMIBmcSim *s)
>>       ipmi_register_netfn(s, IPMI_NETFN_STORAGE, &storage_netfn);
>>   }
>>
>> -static const uint8_t init_sdrs[] = {
>> +static uint8_t init_sdrs[] = {
>>       /* Watchdog device */
>>       0x00, 0x00, 0x51, 0x02,   35, 0x20, 0x00, 0x00,
>>       0x23, 0x01, 0x63, 0x00, 0x23, 0x6f, 0x0f, 0x01,
>> @@ -1705,17 +1705,22 @@ static void ipmi_sdr_init(IPMIBmcSim *ibs)
>>   {
>>       unsigned int i;
>>       int len;
>> +    size_t sdrs_size;
>> +    uint8_t *sdrs;
>>
>> -    for (i = 0; i < sizeof(init_sdrs); i += len) {
>> +    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) > sizeof(init_sdrs)) {
>> +        if (i + IPMI_SDR_HEADER_SIZE > sdrs_size) {
>>               error_report("Problem with recid 0x%4.4x", i);
>>               return;
>>           }
>> -        sdrh = (struct ipmi_sdr_header *) &init_sdrs[i];
>> +        sdrh = (struct ipmi_sdr_header *) &sdrs[i];
>>           len = ipmi_sdr_length(sdrh);
>> -        if ((i + len) > sizeof(init_sdrs)) {
>> +        if (i + len > sdrs_size) {
>>               error_report("Problem with recid 0x%4.4x", i);
>>               return;
>>           }
>>
> 
>
diff mbox

Patch

diff --git a/hw/ipmi/ipmi_bmc_sim.c b/hw/ipmi/ipmi_bmc_sim.c
index f219bfc7a2f3..aff818cf22ab 100644
--- a/hw/ipmi/ipmi_bmc_sim.c
+++ b/hw/ipmi/ipmi_bmc_sim.c
@@ -1692,7 +1692,7 @@  static void register_cmds(IPMIBmcSim *s)
     ipmi_register_netfn(s, IPMI_NETFN_STORAGE, &storage_netfn);
 }
 
-static const uint8_t init_sdrs[] = {
+static uint8_t init_sdrs[] = {
     /* Watchdog device */
     0x00, 0x00, 0x51, 0x02,   35, 0x20, 0x00, 0x00,
     0x23, 0x01, 0x63, 0x00, 0x23, 0x6f, 0x0f, 0x01,
@@ -1705,17 +1705,22 @@  static void ipmi_sdr_init(IPMIBmcSim *ibs)
 {
     unsigned int i;
     int len;
+    size_t sdrs_size;
+    uint8_t *sdrs;
 
-    for (i = 0; i < sizeof(init_sdrs); i += len) {
+    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) > sizeof(init_sdrs)) {
+        if (i + IPMI_SDR_HEADER_SIZE > sdrs_size) {
             error_report("Problem with recid 0x%4.4x", i);
             return;
         }
-        sdrh = (struct ipmi_sdr_header *) &init_sdrs[i];
+        sdrh = (struct ipmi_sdr_header *) &sdrs[i];
         len = ipmi_sdr_length(sdrh);
-        if ((i + len) > sizeof(init_sdrs)) {
+        if (i + len > sdrs_size) {
             error_report("Problem with recid 0x%4.4x", i);
             return;
         }