i2c_smbus_write_block_data vs scheduled routine calls (add_timer) - kernel crash

NiTr0
2009-08-04T18:42:41Z

I tried to improve voltage/FSB manipulation module for EeePC
(http://code.google.com/p/eeepc-linux) - and I found that
i2c_smbus_write_block_data will cause kernel panic when is called from
function called by timer. I can't see kernel panic message because
system print very long call trace. Also on EeePC there is no RS232 port
- but I have USB->RS232 dongle, can it be used as terminal for debug
messages?

All variables are declared as static, all data is prepared correctly -
so IMHO trouble is outside of my driver.
There is a part of code:

static struct i2c_client eee_pll_smbus_client = {
.adapter = NULL,
.addr = 0x69,
.flags = 0,
};
static char eee_pll_data[I2C_SMBUS_BLOCK_MAX];
static int eee_pll_datalen = 0;
.......................
i2c_smbus_write_block_data(&eee_pll_smbus_client,0,
eee_pll_datalen, eee_pll_data);