2.6.4-rc2-mm1: IPMI_SMB doesnt compile

Davis, Todd C todd.c.davis at intel.com
Wed Mar 10 20:50:26 CET 2004

The problem that is being addressed here is the need to avoid process
switching when sending IPMI messages over the SMBus/I2C bus. When the
kernel has panic'ed or is shutting down bus transactions need to
complete so the i2c bus drivers need to spin rather than calling

The i2c_spin_delay is a flag that supports a revised inline function
i2c_delay() that was in i2c.h at one time.

static inline void i2c_delay(signed long timeout)
	if( i2c_spin_delay ) {
		int i;
		for( i=0 ; i<100 ; i++ )
	} else {

Without this change i2c bus drivers will hang panic threads and short
circuit (fail) bus transactions during shutdown due to a pending signal.

I don't care how the exports are handled. It is the functionality that
is important here.

Todd C. Davis
These are my opinions and absolutely not official opinions of Intel
-----Original Message-----
From: Corey Minyard [mailto:minyard at acm.org] 
Sent: Wednesday, March 10, 2004 2:12 PM
To: Adrian Bunk
Cc: Andrew Morton; linux-kernel at vger.kernel.org; Davis, Todd C;
greg at kroah.com; sensors at stimpy.netroedge.com; Simon G. Vogl
Subject: Re: 2.6.4-rc2-mm1: IPMI_SMB doesnt compile

Adrian Bunk wrote:

>The patch to i2c-core.c is strange:
>>--- linux-v31/drivers/i2c/i2c-core.c	2004-02-19 19:31:07.000000000
>>+++ linux/drivers/i2c/i2c-core.c	2004-03-10 09:48:08.000000000
>>@@ -1256,6 +1256,12 @@
>> 	return (func & adap_func) == func;
>> }
>>+int i2c_spin_delay;
>>+void i2c_set_spin_delay(int val)
>>+	i2c_spin_delay = val;
>> EXPORT_SYMBOL(i2c_add_adapter);
>> EXPORT_SYMBOL(i2c_del_adapter);
>> EXPORT_SYMBOL(i2c_add_driver);
>>@@ -1292,6 +1298,8 @@
>> EXPORT_SYMBOL(i2c_get_functionality);
>> EXPORT_SYMBOL(i2c_check_functionality);
>> MODULE_AUTHOR("Simon G. Vogl <simon at tk.uni-linz.ac.at>");
>> MODULE_DESCRIPTION("I2C-Bus main module");
>You can either add get/set functions and export them (more an OO 
>paradigm) or export the variable.
>If you export the variable, it's quite useless to add such a set 
>function since everyone can set the variable directly.
I think the point is that lower-level drivers need to use this variable 
(because of its use in the include file), but it's better to set it with

a function from external code.

Todd, am I correct here?


More information about the lm-sensors mailing list