ACK: [PATCH 7/7] dmi: dmicheck: remove redundant array fwts_dmi_chassis_type

Alex Hung alex.hung at canonical.com
Tue Jul 31 00:13:14 UTC 2018


On 2018-07-30 11:30 AM, Colin King wrote:
> From: Colin Ian King <colin.king at canonical.com>
> 
> Array fwts_dmi_chassis_type is only being used to find the
> maximum number of chassis types. Remove this array and the
> fwts_chassis_type_map struct declaration and replace with
> a macro for the maximum number of chassis types.
> 
> Signed-off-by: Colin Ian King <colin.king at canonical.com>
> ---
>   src/dmi/dmicheck/dmicheck.c   | 48 +----------------------------------
>   src/lib/include/fwts_smbios.h |  3 +++
>   2 files changed, 4 insertions(+), 47 deletions(-)
> 
> diff --git a/src/dmi/dmicheck/dmicheck.c b/src/dmi/dmicheck/dmicheck.c
> index a911b437..89288ade 100644
> --- a/src/dmi/dmicheck/dmicheck.c
> +++ b/src/dmi/dmicheck/dmicheck.c
> @@ -77,11 +77,6 @@ typedef struct {
>   	uint16_t   new;
>   } fwts_dmi_version;
>   
> -typedef struct {
> -	const char *name;
> -	uint8_t   original;
> -} fwts_chassis_type_map;
> -
>   typedef struct {
>   	uint8_t	type;
>   	uint8_t	offset;
> @@ -212,46 +207,6 @@ static const char *uuid_patterns[] = {
>   	NULL,
>   };
>   
> -static const fwts_chassis_type_map fwts_dmi_chassis_type[] = {
> -	{ "Invalid",		FWTS_SMBIOS_CHASSIS_INVALID },
> -	{ "Other",		FWTS_SMBIOS_CHASSIS_OTHER },
> -	{ "Unknown",		FWTS_SMBIOS_CHASSIS_UNKNOWN },
> -	{ "Desktop",		FWTS_SMBIOS_CHASSIS_DESKTOP },
> -	{ "Low Profile Desktop",FWTS_SMBIOS_CHASSIS_LOW_PROFILE_DESKTOP },
> -	{ "Pizza Box",		FWTS_SMBIOS_CHASSIS_PIZZA_BOX },
> -	{ "Mini Tower",		FWTS_SMBIOS_CHASSIS_MINI_TOWER },
> -	{ "Chassis Tower",	FWTS_SMBIOS_CHASSIS_TOWER },
> -	{ "Portable",		FWTS_SMBIOS_CHASSIS_PORTABLE },
> -	{ "Laptop",		FWTS_SMBIOS_CHASSIS_LAPTOP },
> -	{ "Notebook",		FWTS_SMBIOS_CHASSIS_NOTEBOOK },
> -	{ "Handheld",		FWTS_SMBIOS_CHASSIS_HANDHELD },
> -	{ "Docking Station",	FWTS_SMBIOS_CHASSIS_DOCKING_STATION },
> -	{ "All In One",		FWTS_SMBIOS_CHASSIS_ALL_IN_ONE },
> -	{ "Sub Notebook",	FWTS_SMBIOS_CHASSIS_SUB_NOTEBOOK },
> -	{ "Space Saving",	FWTS_SMBIOS_CHASSIS_SPACE_SAVING },
> -	{ "Lunch Box",		FWTS_SMBIOS_CHASSIS_LUNCH_BOX},
> -	{ "Server Chassis",	FWTS_SMBIOS_CHASSIS_MAIN_SERVER_CHASSIS },
> -	{ "Expansion Chassis",	FWTS_SMBIOS_CHASSIS_EXPANISON_CHASSIS },
> -	{ "Sub Chassis",	FWTS_SMBIOS_CHASSIS_SUB_CHASSIS },
> -	{ "Bus Expansion Chassis", FWTS_SMBIOS_CHASSIS_BUS_EXPANSION_CHASSIS },
> -	{ "Peripheral Chassis",	FWTS_SMBIOS_CHASSIS_PERIPHERAL_CHASSIS },
> -	{ "Raid Chassis",	FWTS_SMBIOS_CHASSIS_RAID_CHASSIS },
> -	{ "Rack Mount Chassis",	FWTS_SMBIOS_CHASSIS_RACK_MOUNT_CHASSIS },
> -	{ "Sealed Case PC",	FWTS_SMBIOS_CHASSIS_SEALED_CASE_PC },
> -	{ "Multi System Chassis",FWTS_SMBIOS_CHASSIS_MULTI_SYSTEM_CHASSIS },
> -	{ "Compact PCI",	FWTS_SMBIOS_CHASSIS_COMPACT_PCI },
> -	{ "Advanced TCA",	FWTS_SMBIOS_CHASSIS_ADVANCED_TCA },
> -	{ "Blade",		FWTS_SMBIOS_CHASSIS_BLADE },
> -	{ "Enclosure",		FWTS_SMBIOS_CHASSIS_BLADE_ENCLOSURE },
> -	{ "Tablet",		FWTS_SMBIOS_CHASSIS_TABLET },
> -	{ "Convertible",	FWTS_SMBIOS_CHASSIS_CONVERTIBLE },
> -	{ "Detachable",		FWTS_SMBIOS_CHASSIS_DETACHABLE },
> -	{ "IoT Gateway",	FWTS_SMBIOS_CHASSIS_IOT_GATEWAY },
> -	{ "Embedded PC",	FWTS_SMBIOS_CHASSIS_EMBEDDED_PC },
> -	{ "Mini PC",		FWTS_SMBIOS_CHASSIS_MINI_PC },
> -	{ "Stick PC",		FWTS_SMBIOS_CHASSIS_STICK_PC },
> -};
> -
>   /* Remapping table from buggy version numbers to correct values */
>   static const fwts_dmi_version dmi_versions[] = {
>   	{ 0x021f, 0x0203 },
> @@ -1180,8 +1135,7 @@ static void dmicheck_entry(fwts_framework *fw,
>   			dmi_str_check(fw, table, addr, "Manufacturer", hdr, 0x4);
>   			dmi_min_max_mask_uint8_check(fw, table, addr, "Chassis Type", hdr, 0x5, 0x1, 0x24, 0x0, 0x7f);
>   
> -			if ((data[5] & ~0x80) >=
> -				(sizeof(fwts_dmi_chassis_type) / sizeof(fwts_chassis_type_map))) {
> +			if ((data[5] & ~0x80) > FWTS_SMBIOS_CHASSIS_MAX) {
>   				fwts_failed(fw, LOG_LEVEL_HIGH, DMI_INVALID_HARDWARE_ENTRY,
>   					"Incorrect Chassis Type "
>   					"SMBIOS Type 3 reports 0x%" PRIx8,
> diff --git a/src/lib/include/fwts_smbios.h b/src/lib/include/fwts_smbios.h
> index a8bbf08b..f977bb8e 100644
> --- a/src/lib/include/fwts_smbios.h
> +++ b/src/lib/include/fwts_smbios.h
> @@ -65,6 +65,9 @@
>   #define FWTS_SMBIOS_CHASSIS_MINI_PC			(0x23)
>   #define FWTS_SMBIOS_CHASSIS_STICK_PC			(0x24)
>   
> +/* Always update this to the last FWTS_SMBIOS_CHASSIS type */
> +#define FWTS_SMBIOS_CHASSIS_MAX				(FWTS_SMBIOS_CHASSIS_STICK_PC)
> +
>   typedef enum {
>   	FWTS_SMBIOS_UNKNOWN = -1,
>   	FWTS_SMBIOS_DMI_LEGACY = 0,
> 

Acked-by: Alex Hung <alex.hung at canonical.com>



More information about the fwts-devel mailing list