abituguru3: no Abit uGuru3 found

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Alistair,

On Thu, 8 Jan 2009 19:53:04 +0000, Alistair John Strachan wrote:
> Find attached an alternative method which solves (I believe only potential) 
> problems Jean pointed out at the time of the last thread. I think it's safe.
> 
> I've compromised by finding the first open bracket (it's fine if there are no 
> brackets) and trimming any space from the sub-string. For example, here are 
> the existing transformations:
> 
> "AW9D-MAX       (Intel i975-ICH7)" -> "AW9D-MAX"
> "AT8 32X(ATI RD580-ULI M1575)" -> "AT8 32X"
> "IP35 Pro(Intel P35-ICH9R)" -> "IP35 Pro"
> "IN9 32X MAX(680i-MCP55PXE)" -> "IN9 32X MAX" (adding RSN)
> 
> And here are some hypothetical ones:
> 
> "AW9D      (Blah)" -> "AW9D"
> "Abit Magic" -> "Abit Magic"
> 
> In the AW9D case, "AW9D" and "AW9D-MAX" are not considered to be the same 
> motherboard, because the sub-string's length must exactly match that of the 
> string in the motherboard entry. This is different to regular "strncasecmp" 
> where they would be considered the same.
> 
> Find the patch attached. I'll probably go for this version if nobody finds any 
> issues with it, otherwise the original patch I sent out is sufficient (since 
> at the moment there are no boards falling into this hypothetical trap).

Review:

Please add a patch summary and your Signed-off-by line so that I can
push the patch upstream.

> diff --git a/drivers/hwmon/abituguru3.c b/drivers/hwmon/abituguru3.c
> index 70bb854..16d3142 100644
> --- a/drivers/hwmon/abituguru3.c
> +++ b/drivers/hwmon/abituguru3.c
> @@ -279,7 +279,7 @@ static const struct abituguru3_motherboard_info abituguru3_motherboards[] = {
>  		{ "OTES1 Fan",		36, 2, 60, 1, 0 },
>  		{ NULL, 0, 0, 0, 0, 0 } }
>  	},
> -	{ 0x0011, "AT8 32X(ATI RD580-ULI M1575)", {
> +	{ 0x0011, "AT8 32X", {
>  		{ "CPU Core",		 0, 0, 10, 1, 0 },
>  		{ "DDR",		 1, 0, 20, 1, 0 },
>  		{ "DDR VTT",		 2, 0, 10, 1, 0 },
> @@ -402,7 +402,7 @@ static const struct abituguru3_motherboard_info abituguru3_motherboards[] = {
>  		{ "AUX3 Fan",		36, 2, 60, 1, 0 },
>  		{ NULL, 0, 0, 0, 0, 0 } }
>  	},
> -	{ 0x0016, "AW9D-MAX       (Intel i975-ICH7)", {
> +	{ 0x0016, "AW9D-MAX", {
>  		{ "CPU Core",		 0, 0, 10, 1, 0 },
>  		{ "DDR2",		 1, 0, 20, 1, 0 },
>  		{ "DDR2 VTT",		 2, 0, 10, 1, 0 },
> @@ -509,7 +509,7 @@ static const struct abituguru3_motherboard_info abituguru3_motherboards[] = {
>  		{ "AUX3 FAN",		36, 2, 60, 1, 0 },
>  		{ NULL, 0, 0, 0, 0, 0 } }
>  	},
> -	{ 0x001A, "IP35 Pro(Intel P35-ICH9R)", {
> +	{ 0x001A, "IP35 Pro", {
>  		{ "CPU Core",		 0, 0, 10, 1, 0 },
>  		{ "DDR2",		 1, 0, 20, 1, 0 },
>  		{ "DDR2 VTT",		 2, 0, 10, 1, 0 },
> @@ -1128,6 +1128,7 @@ static int __init abituguru3_dmi_detect(void)
>  {
>  	const char *board_vendor, *board_name;
>  	int i, err = (force) ? 1 : -ENODEV;
> +	size_t sublen;
>  
>  	board_vendor = dmi_get_system_info(DMI_BOARD_VENDOR);
>  	if (!board_vendor || strcmp(board_vendor, "http://www.abit.com.tw/";))
> @@ -1137,9 +1138,20 @@ static int __init abituguru3_dmi_detect(void)
>  	if (!board_name)
>  		return err;
>  
> +	/* At the moment, we don't care about the part of the vendor
> +	 * DMI string contained in brackets. Truncate the string at
> +	 * the first occurance of a bracket. Trim any trailing space

Spelling: occurrence.

> +	 * from the substring.
> +	 */
> +	sublen = strcspn(board_name, "(");

I didn't even know this function existed ;)

> +	while(sublen > 0 && board_name[sublen - 1] == ' ')

Coding style: space between "while" and opening parenthesis.

> +		sublen--;
> +
>  	for (i = 0; abituguru3_motherboards[i].id; i++) {
>  		const char *dmi_name = abituguru3_motherboards[i].dmi_name;
> -		if (dmi_name && !strcmp(dmi_name, board_name))
> +		if (!dmi_name || strlen(dmi_name) != sublen)
> +			continue;
> +		if (!strncasecmp(board_name, dmi_name, sublen))
>  			break;
>  	}
>  

Other than that, the patch looks OK to me.

Thanks,
-- 
Jean Delvare




[Index of Archives]     [Linux Kernel]     [Linux Hardware Monitoring]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux