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

ivanhu ivan.hu at canonical.com
Tue Jul 31 07:51:07 UTC 2018



On 07/31/2018 02: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: Ivan Hu <ivan.hu at canonical.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.ubuntu.com/archives/fwts-devel/attachments/20180731/749196ba/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 473 bytes
Desc: OpenPGP digital signature
URL: <https://lists.ubuntu.com/archives/fwts-devel/attachments/20180731/749196ba/attachment-0001.sig>


More information about the fwts-devel mailing list