diff options
author | Andrew Morton <akpm@osdl.org> | 2004-05-19 02:37:17 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2004-05-19 02:37:17 -0700 |
commit | 965954596848d1946f97631f91d4c963b4d3d921 (patch) | |
tree | 77cf5f24b74c6d8d8509bce4537a9084b993c64b /Documentation | |
parent | 0054147555288263776ac404cda17fe89c8f2360 (diff) | |
download | history-965954596848d1946f97631f91d4c963b4d3d921.tar.gz |
[PATCH] don't mention MOD_INC_USE_COUNT/MOD_DEC_USE_COUNT in docs
From: Christoph Hellwig <hch@lst.de>
If we want new drivers to not use obsolete interfaces we're better off not
mentioning it in the documentation.
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/DocBook/kernel-hacking.tmpl | 57 | ||||
-rw-r--r-- | Documentation/DocBook/videobook.tmpl | 4 | ||||
-rw-r--r-- | Documentation/cdrom/cdrom-standard.tex | 5 | ||||
-rw-r--r-- | Documentation/i2c/i2c-old-porting | 18 | ||||
-rw-r--r-- | Documentation/isdn/INTERFACE | 24 |
5 files changed, 10 insertions, 98 deletions
diff --git a/Documentation/DocBook/kernel-hacking.tmpl b/Documentation/DocBook/kernel-hacking.tmpl index 9cf7cd0cdb57e6..0424c92f5db184 100644 --- a/Documentation/DocBook/kernel-hacking.tmpl +++ b/Documentation/DocBook/kernel-hacking.tmpl @@ -779,62 +779,7 @@ printk(KERN_INFO "my ip: %d.%d.%d.%d\n", NIPQUAD(ipaddress)); </para> </sect1> - <sect1 id="routines-module-use-counters"> - <title> <function>MOD_INC_USE_COUNT</function>/<function>MOD_DEC_USE_COUNT</function> - <filename class="headerfile">include/linux/module.h</filename></title> - - <para> - These manipulate the module usage count, to protect against - removal (a module also can't be removed if another module uses - one of its exported symbols: see below). Every reference to - the module from user context should be reflected by this - counter (e.g. for every data structure or socket) before the - function sleeps. To quote Tim Waugh: - </para> - - <programlisting> -/* THIS IS BAD */ -foo_open (...) -{ - stuff.. - if (fail) - return -EBUSY; - sleep.. (might get unloaded here) - stuff.. - MOD_INC_USE_COUNT; - return 0; -} - -/* THIS IS GOOD / -foo_open (...) -{ - MOD_INC_USE_COUNT; - stuff.. - if (fail) { - MOD_DEC_USE_COUNT; - return -EBUSY; - } - sleep.. (safe now) - stuff.. - return 0; -} - </programlisting> - - <para> - You can often avoid having to deal with these problems by using the - <structfield>owner</structfield> field of the - <structname>file_operations</structname> structure. Set this field - as the macro <symbol>THIS_MODULE</symbol>. - </para> - - <para> - For more complicated module unload locking requirements, you can set the - <structfield>can_unload</structfield> function pointer to your own routine, - which should return <returnvalue>0</returnvalue> if the module is - unloadable, or <returnvalue>-EBUSY</returnvalue> otherwise. - </para> - - </sect1> + <!-- add info on new-style module refcounting here --> </chapter> <chapter id="queues"> diff --git a/Documentation/DocBook/videobook.tmpl b/Documentation/DocBook/videobook.tmpl index b942a25a47536a..45243eeb23610c 100644 --- a/Documentation/DocBook/videobook.tmpl +++ b/Documentation/DocBook/videobook.tmpl @@ -232,7 +232,6 @@ static int radio_open(stuct video_device *dev, int flags) if(users) return -EBUSY; users++; - MOD_INC_USE_COUNT; return 0; } @@ -248,7 +247,6 @@ static int radio_open(stuct video_device *dev, int flags) static int radio_close(struct video_device *dev) { users--; - MOD_DEC_USE_COUNT; } </programlisting> @@ -954,7 +952,6 @@ static int camera_open(stuct video_device *dev, int flags) if(request_irq(irq, camera_irq, 0, "camera", dev)<0) return -EBUSY; users++; - MOD_INC_USE_COUNT; return 0; } @@ -963,7 +960,6 @@ static int camera_close(struct video_device *dev) { users--; free_irq(irq, dev); - MOD_DEC_USE_COUNT; } </programlisting> <para> diff --git a/Documentation/cdrom/cdrom-standard.tex b/Documentation/cdrom/cdrom-standard.tex index af1c93a32780bf..0a51967fe49e0f 100644 --- a/Documentation/cdrom/cdrom-standard.tex +++ b/Documentation/cdrom/cdrom-standard.tex @@ -352,11 +352,6 @@ user commands {\tt {dd}} or {\tt {cat}}. \item[1] Open for $ioctl$ commands, as done by audio-CD playing programs. \end{itemize} -In case the driver supports modules, the call $MOD_INC_USE_COUNT$ -should be performed exactly once, if the $open()$ was successful. The -return value is negative on error, and zero on success. The -open-for-ioctl call can only fail if there is no hardware. - Notice that any strategic code (closing tray upon $open()$, etc.)\ is done by the calling routine in \cdromc, so the low-level routine should only be concerned with proper initialization, such as spinning diff --git a/Documentation/i2c/i2c-old-porting b/Documentation/i2c/i2c-old-porting index 0bb04120c3ec6a..158dfe550a3f77 100644 --- a/Documentation/i2c/i2c-old-porting +++ b/Documentation/i2c/i2c-old-porting @@ -386,7 +386,6 @@ based on the above guide (for clarity). + if(client == NULL) return -ENOMEM; - -- MOD_INC_USE_COUNT; + client_template.adapter = adap; + client_template.addr = addr; + memcpy(client, &client_template, sizeof(*client)); @@ -432,7 +431,6 @@ based on the above guide (for clarity). + init_MUTEX(&decoder->lock); + i2c_attach_client(client); -+ MOD_INC_USE_COUNT; /* setup and implicit mode 0 select has been performed */ return 0; } @@ -463,7 +461,6 @@ based on the above guide (for clarity). + kfree(decoder); + kfree(client); - MOD_DEC_USE_COUNT; return 0; } @@ -593,12 +590,15 @@ based on the above guide (for clarity). - I2C_SAA7110, I2C_SAA7110+1, /* Addr range */ - - saa7110_attach, -+ IF_NAME, /* name */ -+ I2C_DRIVERID_SAA7110, /* in i2c.h */ -+ I2C_DF_NOTIFY, /* Addr range */ -+ saa7110_probe, - saa7110_detach, - saa7110_command +- saa7110_detach, +- saa7110_command ++ .owner = THIS_MODULE, ++ .name = IF_NAME, ++ .id = I2C_DRIVERID_SAA7110, ++ .flags = I2C_DF_NOTIFY, ++ .attach_adapter = saa7110_probe, ++ .detach_adapter = saa7110_detach, ++ .command = saa7110_command, }; +static struct i2c_client client_template = { + "saa7110_client", diff --git a/Documentation/isdn/INTERFACE b/Documentation/isdn/INTERFACE index 3b56e226f4e93e..5df17e5b25c85f 100644 --- a/Documentation/isdn/INTERFACE +++ b/Documentation/isdn/INTERFACE @@ -412,30 +412,6 @@ Description of the Interface between Linklevel and Hardwarelevel Returnvalue: current protocol-Id (one of the constants ISDN_L3_PROTO) - ISDN_CMD_LOCK: - - With this command the HL-driver is told, that it will be used by the - LL and therefore may not be unloaded. The HL-driver should use - MOD_INC_USE_COUNT to tell that to the kernel. - - Parameter: - driver = driver-Id. - command = ISDN_CMD_LOCK - arg = unused. - parm = unused. - - ISDN_CMD_UNLOCK: - - With this command the HL-driver is told, that it is no more used by the - LL and therefore may be unloaded. The HL-driver should use - DEC_INC_USE_COUNT to tell that to the kernel. - - Parameter: - driver = driver-Id. - command = ISDN_CMD_UNLOCK - arg = unused. - parm = unused. - ISDN_CMD_PROCEED: With this command, the HL-driver is told to proceed with a incoming call. |