Patches to make it compatible with kernel 2.3.27 and newer

* Improved monitoring of /proc directories
  Instead of doing:
         proc_bus_i2c->fill_inode = &monitor_bus_i2c;
         void monitor_bus_i2c(struct inode *inode, int fill)
         {
           if (fill)
             MOD_INC_USE_COUNT;
           else
             MOD_DEC_USE_COUNT;
         }
  you can now simply set:
         proc_bus_i2c->owner = THIS_MODULE;
  and this is just as good!
* An old 2.3 problem seemingly never was resolved yet: instead of using
  a *wait_queue directly, you have to use a wait_queue_head_t and
  initialize it properly:
         #if (LINUX_VERSION_CODE < 0x020301)
         static struct wait_queue *pcf_wait = NULL;
         #else
         static wait_queue_head_t pcf_wait;
         #endif

         #if (LINUX_VERSION_CODE >= 0x020301)
            init_waitqueue_head(&pcf_wait);
         #endif
  except for this, semantics remain the same (but using a plain
  wait_queue_head_t instead of a pointer to a wait_queue)
* I had to change the semantics of sensors_register_entry slightly,
  to make the monitoring of /proc/sys/dev/* files possible for kernels
  2.3.27 and newer. It now takes an additional parameter, which you
  can specify as THIS_MODULE.
* THIS_MODULE is only defined in kernels 2.3.13 and later; added
  it to compat.h and the compatibility section of mkpatch.


git-svn-id: http://lm-sensors.org/svn/lm-sensors/trunk@640 7894878c-1315-0410-8ee3-d5d059ff63e0
This commit is contained in:
Frodo Looijaard committed 1999-11-30 20:48:43 +00:00
1 parent e3ff8f1660
commit 52b2ce8f52
18 files changed
+67 -24

No files matched your search

+2 -1
View File
@@ -295,7 +295,8 @@ static int adm1021_detect(struct i2c_adapter *adapter, int address,
if ((i = sensors_register_entry(new_client,
type_name,
data->type==adm1021?adm1021_dir_table_template:
adm1021_max_dir_table_template)) < 0) {
adm1021_max_dir_table_template,
THIS_MODULE)) < 0) {
err = i;
goto ERROR4;
}
+2 -1
View File
@@ -443,7 +443,8 @@ static int adm9240_detect(struct i2c_adapter *adapter, int address,
/* Register a new directory entry with module sensors */
if ((i = sensors_register_entry(new_client,
type_name,
adm9240_dir_table_template)) < 0) {
adm9240_dir_table_template,
THIS_MODULE)) < 0) {
err = i;
goto ERROR4;
}
+2 -1
View File
@@ -237,7 +237,8 @@ printk("bt869.o: probing address %d .\n",address);
/* Register a new directory entry with module sensors */
if ((i = sensors_register_entry(new_client,type_name,
bt869_dir_table_template)) < 0) {
bt869_dir_table_template,
THIS_MODULE)) < 0) {
err = i;
goto ERROR4;
}
+2 -1
View File
@@ -237,7 +237,8 @@ int eeprom_detect(struct i2c_adapter *adapter, int address,
/* Register a new directory entry with module sensors */
if ((i = sensors_register_entry(new_client,type_name,
eeprom_dir_table_template)) < 0) {
eeprom_dir_table_template,
THIS_MODULE)) < 0) {
err = i;
goto ERROR4;
}
+15 -3
View File
@@ -155,8 +155,11 @@ struct gl518_data {
int quit_thread;
struct task_struct *thread;
#endif
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,3,1)
wait_queue_head_t wq;
#else
struct wait_queue *wq;
#endif
char valid; /* !=0 if following fields are valid */
unsigned long last_updated; /* In jiffies */
unsigned long last_updated_v00;
@@ -391,7 +394,8 @@ static int gl518_detect(struct i2c_adapter *adapter, int address,
/* Register a new directory entry with module sensors */
if ((i = sensors_register_entry((struct i2c_client *) new_client,
type_name,
gl518_dir_table_template)) < 0) {
gl518_dir_table_template,
THIS_MODULE)) < 0) {
err = i;
goto ERROR4;
}
@@ -661,7 +665,11 @@ int gl518_update_thread(void *c)
current->fs->umask = 0;
strcpy(current->comm,"gl518sm");
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,3,1)
init_waitqueue_head(&(data->wq));
#else
data->wq = NULL;
#endif
data->thread = current;
#ifdef __SMP__
@@ -1002,7 +1010,11 @@ void gl518_iterate(struct i2c_client *client, int operation, int ctl_name,
data->quit_thread = 1;
wake_up_interruptible(&data->wq);
} else if ((data->iterate==2) && (! data->thread)) {
data->wq = NULL;
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,3,1)
init_waitqueue_head(&(data->wq));
#else
data->wq = NULL;
#endif
kernel_thread(gl518_update_thread, (void*) client, 0);
}
#endif
+2 -1
View File
@@ -368,7 +368,8 @@ static int gl520_detect(struct i2c_adapter *adapter, int address,
/* Register a new directory entry with module sensors */
if ((i = sensors_register_entry(new_client,
type_name,
gl520_dir_table_template)) < 0) {
gl520_dir_table_template,
THIS_MODULE)) < 0) {
err = i;
goto ERROR4;
}
+2 -1
View File
@@ -182,7 +182,8 @@ int icspll_attach_adapter(struct i2c_adapter *adapter)
/* Register a new directory entry with module sensors */
if ((err = sensors_register_entry(new_client,"icspll",
icspll_dir_table_template)) < 0)
icspll_dir_table_template
THIS_MODULE)) < 0)
goto ERROR3;
data->sysctl_id = err;
err = 0;
+2 -1
View File
@@ -216,7 +216,8 @@ int lm75_detect(struct i2c_adapter *adapter, int address,
/* Register a new directory entry with module sensors */
if ((i = sensors_register_entry(new_client,type_name,
lm75_dir_table_template)) < 0) {
lm75_dir_table_template,
THIS_MODULE)) < 0) {
err = i;
goto ERROR4;
}
+2 -1
View File
@@ -433,7 +433,8 @@ int lm78_detect(struct i2c_adapter *adapter, int address,
/* Register a new directory entry with module sensors */
if ((i = sensors_register_entry(new_client,
type_name,
lm78_dir_table_template)) < 0) {
lm78_dir_table_template,
THIS_MODULE)) < 0) {
err = i;
goto ERROR4;
}
+2 -1
View File
@@ -362,7 +362,8 @@ int lm80_detect(struct i2c_adapter *adapter, int address,
/* Register a new directory entry with module sensors */
if ((i = sensors_register_entry(new_client,type_name,
lm80_dir_table_template)) < 0) {
lm80_dir_table_template,
THIS_MODULE)) < 0) {
err = i;
goto ERROR4;
}
+2 -1
View File
@@ -221,7 +221,8 @@ int ltc1710_detect(struct i2c_adapter *adapter, int address,
/* Register a new directory entry with module sensors */
if ((i = sensors_register_entry(new_client,type_name,
ltc1710_dir_table_template)) < 0) {
ltc1710_dir_table_template,
THIS_MODULE)) < 0) {
err = i;
goto ERROR4;
}
+2 -1
View File
@@ -183,7 +183,8 @@ int matorb_detect(struct i2c_adapter *adapter, int address,
/* Register a new directory entry with module sensors */
if ((i = sensors_register_entry(new_client,type_name,
matorb_dir_table_template)) < 0) {
matorb_dir_table_template,
THIS_MODULE)) < 0) {
err = i;
goto ERROR4;
}
+2 -1
View File
@@ -367,7 +367,8 @@ int maxi_detect_smbus(struct i2c_adapter *adapter)
/* Register a new directory entry with module sensors */
if ((err = sensors_register_entry(new_client, type_name,
maxi_dir_table_template)) < 0)
maxi_dir_table_template,
THIS_MODULE)) < 0)
goto ERROR4;
((struct maxi_data *) (new_client->data))->sysctl_id = err;
err = 0;
+2 -1
View File
@@ -408,7 +408,8 @@ int sis5595_detect(struct i2c_adapter *adapter, int address,
/* Register a new directory entry with module sensors */
if ((i = sensors_register_entry((struct i2c_client *) new_client,
type_name,
sis5595_dir_table_template)) < 0) {
sis5595_dir_table_template,
THIS_MODULE)) < 0) {
err = i;
goto ERROR4;
}
+2 -1
View File
@@ -259,7 +259,8 @@ int thmc50_detect(struct i2c_adapter *adapter, int address,
/* Register a new directory entry with module sensors */
if ((i = sensors_register_entry(new_client,type_name,
thmc50_dir_table_template)) < 0) {
thmc50_dir_table_template,
THIS_MODULE)) < 0) {
err = i;
goto ERROR4;
}
+2 -1
View File
@@ -808,7 +808,8 @@ int w83781d_detect(struct i2c_adapter *adapter, int address,
kind == w83781d?w83781d_dir_table_template:
kind == w83783s?w83783s_dir_table_template:
is_isa?w83782d_i2c_dir_table_template:
w83782d_isa_dir_table_template)) < 0) {
w83782d_isa_dir_table_template,
THIS_MODULE)) < 0) {
err = i;
goto ERROR4;
}