ACK: [PATCH 08/10] dmi: dmicheck: don't inline dmi_str_check and fix variable shadowing

IvanHu ivan.hu at canonical.com
Mon Jul 14 07:18:08 UTC 2014


On 06/13/2014 02:03 AM, Colin King wrote:
> From: Colin Ian King <colin.king at canonical.com>
>
> gcc inlining of dmi_str_check actually produces less efficient code
> according to some analysis I did so don't inline it.  Also fix some
> variable shadowing by renaming the shadowed variables just to add
> some clarification.
>
> Signed-off-by: Colin Ian King <colin.king at canonical.com>
> ---
>   src/dmi/dmicheck/dmicheck.c | 18 +++++++++---------
>   1 file changed, 9 insertions(+), 9 deletions(-)
>
> diff --git a/src/dmi/dmicheck/dmicheck.c b/src/dmi/dmicheck/dmicheck.c
> index c6a3151..b4ca238 100644
> --- a/src/dmi/dmicheck/dmicheck.c
> +++ b/src/dmi/dmicheck/dmicheck.c
> @@ -687,7 +687,7 @@ static void dmi_str_check_index(fwts_framework *fw,
>   	}
>   }
>
> -static inline void dmi_str_check(fwts_framework *fw,
> +static void dmi_str_check(fwts_framework *fw,
>   	const char *table,
>   	uint32_t addr,
>   	const char *field,
> @@ -1092,11 +1092,11 @@ static void dmicheck_entry(fwts_framework *fw,
>   			if (hdr->length < 0x17 + data[0x15] * data[0x16])
>   				break;
>   			if (data[0x16] >= 0x02) {
> -				uint8_t *ptr = data + 0x17;
> -				int i;
> -				for (i = 0; i < data[0x15]; i++) {
> -					int j = data[0x16] * i;
> -					val = ptr[j];
> +				uint8_t *tmpptr = data + 0x17;
> +				int k;
> +				for (k = 0; k < data[0x15]; k++) {
> +					int j = data[0x16] * k;
> +					val = tmpptr[j];
>   					if (!(((val >= 0x01) && (val <= 0x0e)) ||
>   					      ((val >= 0x10) && (val <= 0x17)) ||
>   					      (val >= 0x80))) {
> @@ -1105,16 +1105,16 @@ static void dmicheck_entry(fwts_framework *fw,
>   							"(range allowed 0x01..0x0e, 0x10..0x17, "
>   							"0x80..0xff) while accessing entry '%s' @ "
>   							"0x%8.8" PRIx32 ", field '%s', item %d",
> -							val, table, addr, "Log Descriptor Type", i);
> +							val, table, addr, "Log Descriptor Type", k);
>   					}
> -					val = ptr[j + 1];
> +					val = tmpptr[j + 1];
>   					if ((val > 0x06) && (val < 0x80)) {
>   						fwts_failed(fw, LOG_LEVEL_HIGH, DMI_VALUE_OUT_OF_RANGE,
>   							"Out of range value 0x%2.2" PRIx8 " "
>   							"(range allowed 0x00..0x06, 0x80..0xff) "
>   							"while accessing entry '%s' @ "
>   							"0x%8.8" PRIx32 ", field '%s', item %d",
> -							val, table, addr, "Log Descriptor Format", i);
> +							val, table, addr, "Log Descriptor Format", k);
>   					}
>   				}
>   			}
>


Acked-by: Ivan Hu <ivan.hu at canonical.com>



More information about the fwts-devel mailing list