lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Wed, 10 Dec 2014 14:41:23 +0100
From:	Gabriele Mazzotta <gabriele.mzt@...il.com>
To:	Pali Rohár <pali.rohar@...il.com>
Cc:	Guenter Roeck <linux@...ck-us.net>, Arnd Bergmann <arnd@...db.de>,
	Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
	Jean Delvare <jdelvare@...e.de>,
	Steven Honeyman <stevenhoneyman@...il.com>,
	Jochen Eisinger <jochen@...guin-breeder.org>,
	linux-kernel@...r.kernel.org
Subject: Re: [PATCH 3/3] i8k: Remove laptop specific config data (fan_mult, fan_max) from driver

On Tuesday 09 December 2014 21:07:01 Pali Rohár wrote:
> Now we have autodetection code for fan multiplier and maximal fan speed so we do
> not need to have those constants for each laptop in kernel driver code.
> 
> Signed-off-by: Pali Rohár <pali.rohar@...il.com>
> ---
> !!!Please do not apply this patch until all affected machines will be tested!!!
> 
> I tested autodetection code only on Dell Latitude E6440 (where it worked).
> Other machines which needs to be tested:
> 
> Dell Latitude D520
> Dell Latitude E6540
> Dell Precision WorkStation 490
> Dell Studio
> Dell XPS M140 (MXC051)

Just a note: "or in dmi" has to be removed from a couple of comments.

Gabriele

> ---
>  drivers/char/i8k.c |   88 +---------------------------------------------------
>  1 file changed, 1 insertion(+), 87 deletions(-)
> 
> diff --git a/drivers/char/i8k.c b/drivers/char/i8k.c
> index 8bdbed2..bf74644 100644
> --- a/drivers/char/i8k.c
> +++ b/drivers/char/i8k.c
> @@ -725,42 +725,6 @@ static int __init i8k_init_hwmon(void)
>  	return 0;
>  }
>  
> -struct i8k_config_data {
> -	int fan_mult;
> -	int fan_max;
> -};
> -
> -enum i8k_configs {
> -	DELL_LATITUDE_D520,
> -	DELL_LATITUDE_E6540,
> -	DELL_PRECISION_490,
> -	DELL_STUDIO,
> -	DELL_XPS_M140,
> -};
> -
> -static const struct i8k_config_data i8k_config_data[] = {
> -	[DELL_LATITUDE_D520] = {
> -		.fan_mult = 1,
> -		.fan_max = I8K_FAN_TURBO,
> -	},
> -	[DELL_LATITUDE_E6540] = {
> -		.fan_mult = 1,
> -		.fan_max = I8K_FAN_HIGH,
> -	},
> -	[DELL_PRECISION_490] = {
> -		.fan_mult = 1,
> -		.fan_max = I8K_FAN_TURBO,
> -	},
> -	[DELL_STUDIO] = {
> -		.fan_mult = 1,
> -		.fan_max = I8K_FAN_HIGH,
> -	},
> -	[DELL_XPS_M140] = {
> -		.fan_mult = 1,
> -		.fan_max = I8K_FAN_HIGH,
> -	},
> -};
> -
>  static struct dmi_system_id i8k_dmi_table[] __initdata = {
>  	{
>  		.ident = "Dell Inspiron",
> @@ -784,30 +748,6 @@ static struct dmi_system_id i8k_dmi_table[] __initdata = {
>  		},
>  	},
>  	{
> -		.ident = "Dell Latitude D520",
> -		.matches = {
> -			DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
> -			DMI_MATCH(DMI_PRODUCT_NAME, "Latitude D520"),
> -		},
> -		.driver_data = (void *)&i8k_config_data[DELL_LATITUDE_D520],
> -	},
> -	{
> -		.ident = "Dell Latitude E6440",
> -		.matches = {
> -			DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
> -			DMI_MATCH(DMI_PRODUCT_NAME, "Latitude E6440"),
> -		},
> -		.driver_data = (void *)&i8k_config_data[DELL_LATITUDE_E6540],
> -	},
> -	{
> -		.ident = "Dell Latitude E6540",
> -		.matches = {
> -			DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
> -			DMI_MATCH(DMI_PRODUCT_NAME, "Latitude E6540"),
> -		},
> -		.driver_data = (void *)&i8k_config_data[DELL_LATITUDE_E6540],
> -	},
> -	{
>  		.ident = "Dell Latitude 2",
>  		.matches = {
>  			DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
> @@ -822,22 +762,13 @@ static struct dmi_system_id i8k_dmi_table[] __initdata = {
>  		},
>  	},
>  	{
> -		.ident = "Dell Inspiron 3",
> +		.ident = "Dell Inspiron 4",
>  		.matches = {
>  			DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
>  			DMI_MATCH(DMI_PRODUCT_NAME, "MP061"),
>  		},
>  	},
>  	{
> -		.ident = "Dell Precision 490",
> -		.matches = {
> -			DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
> -			DMI_MATCH(DMI_PRODUCT_NAME,
> -				  "Precision WorkStation 490"),
> -		},
> -		.driver_data = (void *)&i8k_config_data[DELL_PRECISION_490],
> -	},
> -	{
>  		.ident = "Dell Precision",
>  		.matches = {
>  			DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
> @@ -864,7 +795,6 @@ static struct dmi_system_id i8k_dmi_table[] __initdata = {
>  			DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
>  			DMI_MATCH(DMI_PRODUCT_NAME, "Studio"),
>  		},
> -		.driver_data = (void *)&i8k_config_data[DELL_STUDIO],
>  	},
>  	{
>  		.ident = "Dell XPS M140",
> @@ -872,7 +802,6 @@ static struct dmi_system_id i8k_dmi_table[] __initdata = {
>  			DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
>  			DMI_MATCH(DMI_PRODUCT_NAME, "MXC051"),
>  		},
> -		.driver_data = (void *)&i8k_config_data[DELL_XPS_M140],
>  	},
>  	{ }
>  };
> @@ -884,8 +813,6 @@ MODULE_DEVICE_TABLE(dmi, i8k_dmi_table);
>   */
>  static int __init i8k_probe(void)
>  {
> -	const struct i8k_config_data *conf;
> -	const struct dmi_system_id *id;
>  	int fan, val, ret;
>  
>  	/*
> @@ -915,19 +842,6 @@ static int __init i8k_probe(void)
>  			return -ENODEV;
>  	}
>  
> -	/*
> -	 * Autodetect fan multiplier and maximal fan speed from dmi config
> -	 * Values specified in module parameters override values from dmi
> -	 */
> -	id = dmi_first_match(i8k_dmi_table);
> -	if (id && id->driver_data) {
> -		conf = id->driver_data;
> -		if (fan_mult <= 0 && conf->fan_mult > 0)
> -			fan_mult = conf->fan_mult;
> -		if (fan_max <= 0 && conf->fan_max > 0)
> -			fan_max = conf->fan_max;
> -	}
> -
>  	if (fan_mult <= 0) {
>  		/*
>  		 * Autodetect fan multiplier for each fan based on nominal rpm
> 

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ