From: Corey Minyard <minyard@acm.org>
To: Adrian Bunk <bunk@fs.tum.de>
Cc: Andrew Morton <akpm@osdl.org>,
linux-kernel@vger.kernel.org, "Davis,
Todd C" <todd.c.davis@intel.com>
Subject: Re: 2.6.4-rc2-mm1: IPMI_SMB doesnt compile
Date: Wed, 10 Mar 2004 10:01:07 -0600 [thread overview]
Message-ID: <404F3BC3.2090906@acm.org> (raw)
In-Reply-To: <20040309013917.GH14833@fs.tum.de>
[-- Attachment #1: Type: text/plain, Size: 1909 bytes --]
You need to run off the panic events, the config flag IPMI_PANIC_EVENT,
and it should compile fine. This is a flag that causes the driver to
put some information about the panic into an event log in the IPMI
controller so it can be fetched later.
To do this, the driver needs a way to run each operation to completion
without scheduling, interrupts. or the like. It needs this to do send
the panic event (since you cannot schedule during a panic), although it
also really needs it to do things like extend the watchdog timer time at
panic time. The I2C driver does not currently have this, so it doesn't
work with this option and the SMBus driver.
I have included a patch from Todd Davis at Intel that adds this function
to the I2C driver. I believe Todd has been working on getting this in
through the I2C driver writers, although the patch is fairly non-intrusive.
However, I have no real way to test this patch.
-Corey
Adrian Bunk wrote:
>On Sun, Mar 07, 2004 at 10:32:21PM -0800, Andrew Morton wrote:
>
>
>>...
>>+ipmi-updates-3.patch
>>+ipmi-socket-interface.patch
>>
>> IPMI driver updates
>>...
>>
>>
>
>This causes the following compile error:
>
><-- snip -->
>
>...
> CC drivers/char/ipmi/ipmi_smb.o
>drivers/char/ipmi/ipmi_smb.c: In function `smbus_client_read_block_data':
>drivers/char/ipmi/ipmi_smb.c:224: warning: implicit declaration of
>function `i2c_set_spin_delay'
>...
> LD .tmp_vmlinux1
>drivers/built-in.o(.text+0x1342eb): In function
>`smbus_client_read_block_data':
>: undefined reference to `i2c_set_spin_delay'
>drivers/built-in.o(.text+0x13448d): In function
>`smbus_client_write_block_data':
>: undefined reference to `i2c_set_spin_delay'
>drivers/built-in.o(.text+0x134b7f): In function `set_run_to_completion':
>: undefined reference to `i2c_set_spin_delay'
>make: *** [.tmp_vmlinux1] Error 1
>
><-- snip -->
>
>
>cu
>Adrian
>
>
>
[-- Attachment #2: linux-ipmi-2.6.3-i2c-spin.diff --]
[-- Type: text/plain, Size: 1562 bytes --]
--- linux-v31/drivers/i2c/i2c-core.c 2004-02-19 19:31:07.000000000 -0600
+++ linux/drivers/i2c/i2c-core.c 2004-03-10 09:48:08.000000000 -0600
@@ -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);
+EXPORT_SYMBOL(i2c_set_spin_delay);
+EXPORT_SYMBOL(i2c_spin_delay);
MODULE_AUTHOR("Simon G. Vogl <simon@tk.uni-linz.ac.at>");
MODULE_DESCRIPTION("I2C-Bus main module");
--- linux-v31/include/linux/i2c.h 2003-12-17 20:58:16.000000000 -0600
+++ linux/include/linux/i2c.h 2004-03-10 09:47:21.000000000 -0600
@@ -600,10 +600,24 @@
((adapptr)->algo->id == I2C_ALGO_ISA)
/* Tiny delay function used by the i2c bus drivers */
+
+extern void i2c_set_spin_delay(int val);
+extern int i2c_spin_delay;
+#include <asm/delay.h>
static inline void i2c_delay(signed long timeout)
{
- set_current_state(TASK_INTERRUPTIBLE);
- schedule_timeout(timeout);
+ if( i2c_spin_delay ) {
+ /* spin delay is needed for panic threads and
+ shutdowns to avoid processing switching so IPMI
+ messages can be sent to the Baseboard Management
+ Controllers on the SMBus*/
+ int i;
+ for( i=0 ; i<100 ; i++ )
+ udelay(timeout*(1000000/HZ/100));
+ } else {
+ set_current_state(TASK_INTERRUPTIBLE);
+ schedule_timeout(timeout);
+ }
}
#endif /* _LINUX_I2C_H */
next prev parent reply other threads:[~2004-03-10 16:01 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-03-08 6:32 2.6.4-rc2-mm1 Andrew Morton
2004-03-08 16:20 ` 2.6.4-rc2-mm1 (compile stats) John Cherry
2004-03-13 14:26 ` Paul Dickson
2004-03-08 19:44 ` 2.6.4-rc2-mm1 Thomas Schlichter
2004-03-08 20:05 ` 2.6.4-rc2-mm1 Thomas Schlichter
2004-03-08 22:49 ` 2.6.4-rc2-mm1 Greg KH
2004-03-08 20:05 ` 2.6.4-rc2-mm1 Christian Borntraeger
2004-03-08 22:00 ` 2.6.4-rc2-mm1 Valdis.Kletnieks
2004-03-09 1:39 ` 2.6.4-rc2-mm1: IPMI_SMB doesnt compile Adrian Bunk
2004-03-10 16:01 ` Corey Minyard [this message]
2004-03-10 18:51 ` Adrian Bunk
2004-03-10 19:06 ` Greg KH
2004-03-10 20:47 ` Corey Minyard
2004-03-10 21:12 ` Greg KH
2004-03-10 19:11 ` Corey Minyard
2004-03-10 18:57 ` Greg KH
2004-03-09 4:44 ` 2.6.4-rc2-mm1 Valdis.Kletnieks
2004-03-09 20:07 ` [BUG] in generic.c, unloading alsa [Re: 2.6.4-rc2-mm1] Malte Schröder
2004-03-09 22:39 ` Andrew Morton
-- strict thread matches above, loose matches on Subject: below --
2004-03-10 19:50 2.6.4-rc2-mm1: IPMI_SMB doesnt compile Davis, Todd C
2004-03-10 21:20 ` Denis Vlasenko
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=404F3BC3.2090906@acm.org \
--to=minyard@acm.org \
--cc=akpm@osdl.org \
--cc=bunk@fs.tum.de \
--cc=linux-kernel@vger.kernel.org \
--cc=todd.c.davis@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox