Denis V. Lunev
e23637681b
ia64: use non-racy method for proc entries creation
...
Use proc_create()/proc_create_data() to make sure that ->proc_fops and ->data
be setup before gluing PDE to main tree.
Signed-off-by: Denis V. Lunev <den@openvz.org >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Alexey Dobriyan <adobriyan@gmail.com >
Cc: "Eric W. Biederman" <ebiederm@xmission.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2008-04-29 08:06:21 -07:00
Denis V. Lunev
c293819a3c
cris: use non-racy method for /proc/system_profile creation
...
Use proc_create() to make sure that ->proc_fops be setup before gluing PDE to
main tree.
Signed-off-by: Denis V. Lunev <den@openvz.org >
Cc: Mikael Starvik <starvik@axis.com >
Cc: Jesper Nilsson <jesper.nilsson@axis.com >
Cc: Alexey Dobriyan <adobriyan@gmail.com >
Cc: "Eric W. Biederman" <ebiederm@xmission.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2008-04-29 08:06:21 -07:00
Denis V. Lunev
0d9f10f4eb
avr32: proc: use non-racy method for /proc/tlb creation
...
Use proc_create() to make sure that ->proc_fops be setup before gluing PDE to
main tree.
Signed-off-by: Denis V. Lunev <den@openvz.org >
Cc: Haavard Skinnemoen <hskinnemoen@atmel.com >
Cc: Alexey Dobriyan <adobriyan@gmail.com >
Cc: "Eric W. Biederman" <ebiederm@xmission.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2008-04-29 08:06:21 -07:00
Denis V. Lunev
40ad35d34f
arm: use non-racy method for /proc/davinci_clocks creation
...
Use proc_create() to make sure that ->proc_fops be setup before gluing PDE to
main tree.
Signed-off-by: Denis V. Lunev <den@openvz.org >
Cc: Russell King <rmk@arm.linux.org.uk >
Cc: Alexey Dobriyan <adobriyan@gmail.com >
Cc: "Eric W. Biederman" <ebiederm@xmission.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2008-04-29 08:06:21 -07:00
Denis V. Lunev
8b594007c3
s390: use non-racy method for proc entries creation
...
Use proc_create() to make sure that ->proc_fops be setup before gluing PDE to
main tree.
Signed-off-by: Denis V. Lunev <den@openvz.org >
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com >
Cc: Heiko Carstens <heiko.carstens@de.ibm.com >
Cc: Alexey Dobriyan <adobriyan@gmail.com >
Cc: "Eric W. Biederman" <ebiederm@xmission.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2008-04-29 08:06:21 -07:00
Denis V. Lunev
cdefa185dd
usb: use non-racy method for proc entries creation
...
Use proc_create()/proc_create_data() to make sure that ->proc_fops and ->data
be setup before gluing PDE to main tree.
Signed-off-by: Denis V. Lunev <den@openvz.org >
Acked-by: Greg Kroah-Hartman <gregkh@suse.de >
Cc: Alexey Dobriyan <adobriyan@gmail.com >
Cc: "Eric W. Biederman" <ebiederm@xmission.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2008-04-29 08:06:21 -07:00
Denis V. Lunev
a973909fc3
scsi: use non-racy method for proc entries creation
...
Use proc_create() to make sure that ->proc_fops be setup before gluing PDE to
main tree.
Add correct ->owner to proc_fops to fix reading/module unloading race.
Signed-off-by: Denis V. Lunev <den@openvz.org >
Cc: Greg Kroah-Hartman <gregkh@suse.de >
Cc: Alexey Dobriyan <adobriyan@gmail.com >
Cc: "Eric W. Biederman" <ebiederm@xmission.com >
Cc: James Bottomley <James.Bottomley@HansenPartnership.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2008-04-29 08:06:21 -07:00
Denis V. Lunev
16e70f64a9
samples: use non-racy method for /proc/marker-example creation
...
Use proc_create() to make sure that ->proc_fops be setup before gluing PDE to
main tree.
Signed-off-by: Denis V. Lunev <den@openvz.org >
Cc: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca >
Cc: Alexey Dobriyan <adobriyan@gmail.com >
Cc: "Eric W. Biederman" <ebiederm@xmission.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2008-04-29 08:06:21 -07:00
Denis V. Lunev
659f865ea6
zorro: use non-racy method for proc entries creation
...
Use proc_create()/proc_create_data() to make sure that ->proc_fops and ->data
be setup before gluing PDE to main tree.
Add correct ->owner to proc_fops to fix reading/module unloading race.
Signed-off-by: Denis V. Lunev <den@openvz.org >
Cc: Geert Uytterhoeven <geert@linux-m68k.org >
Cc: Alexey Dobriyan <adobriyan@gmail.com >
Cc: "Eric W. Biederman" <ebiederm@xmission.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2008-04-29 08:06:21 -07:00
Denis V. Lunev
7bf4e6d3e9
sound: use non-racy method for /proc/driver/snd-page-alloc creation
...
Use proc_create() to make sure that ->proc_fops be setup before gluing PDE to
main tree.
Signed-off-by: Denis V. Lunev <den@openvz.org >
Cc: Alexey Dobriyan <adobriyan@gmail.com >
Cc: "Eric W. Biederman" <ebiederm@xmission.com >
Cc: Jaroslav Kysela <perex@suse.cz >
Cc: Takashi Iwai <tiwai@suse.de >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2008-04-29 08:06:20 -07:00
Denis V. Lunev
3d71f86f4d
mm: use non-racy method for /proc/swaps creation
...
Use proc_create() to make sure that ->proc_fops be setup before gluing PDE to
main tree.
Signed-off-by: Denis V. Lunev <den@openvz.org >
Cc: Alexey Dobriyan <adobriyan@gmail.com >
Cc: "Eric W. Biederman" <ebiederm@xmission.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2008-04-29 08:06:20 -07:00
Denis V. Lunev
6a6375db13
sysvipc: use non-racy method for proc entries creation
...
Use proc_create_data() to make sure that ->proc_fops and ->data be setup
before gluing PDE to main tree.
Signed-off-by: Denis V. Lunev <den@openvz.org >
Cc: Alexey Dobriyan <adobriyan@gmail.com >
Cc: "Eric W. Biederman" <ebiederm@xmission.com >
Cc: Nadia Derbey <Nadia.Derbey@bull.net >
Cc: Pierre Peiffer <peifferp@gmail.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2008-04-29 08:06:20 -07:00
Denis V. Lunev
79da3664f6
jbd2: use non-racy method for proc entries creation
...
Use proc_create()/proc_create_data() to make sure that ->proc_fops and ->data
be setup before gluing PDE to main tree.
Signed-off-by: Denis V. Lunev <den@openvz.org >
Cc: <linux-ext4@vger.kernel.org >
Cc: Alexey Dobriyan <adobriyan@gmail.com >
Cc: "Eric W. Biederman" <ebiederm@xmission.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2008-04-29 08:06:20 -07:00
Denis V. Lunev
19b4fc52d6
reiserfs: use non-racy method for proc entries creation
...
Use proc_create()/proc_create_data() to make sure that ->proc_fops and ->data
be setup before gluing PDE to main tree.
/proc entry owner is also added.
Signed-off-by: Denis V. Lunev <den@openvz.org >
Cc: Jeff Mahoney <jeffm@suse.com >
Cc: Chris Mason <chris.mason@oracle.com >
Cc: Alexey Dobriyan <adobriyan@gmail.com >
Cc: "Eric W. Biederman" <ebiederm@xmission.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2008-04-29 08:06:20 -07:00
Denis V. Lunev
46fe74f2ae
ext4: use non-racy method for proc entries creation
...
Use proc_create()/proc_create_data() to make sure that ->proc_fops and ->data
be setup before gluing PDE to main tree.
Signed-off-by: Denis V. Lunev <den@openvz.org >
Cc: <linux-ext4@vger.kernel.org >
Cc: Alexey Dobriyan <adobriyan@gmail.com >
Cc: "Eric W. Biederman" <ebiederm@xmission.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2008-04-29 08:06:20 -07:00
Denis V. Lunev
21ac295b42
afs: use non-racy method for proc entries creation
...
Use proc_create()/proc_create_data() to make sure that ->proc_fops and ->data
be setup before gluing PDE to main tree.
Signed-off-by: Denis V. Lunev <den@openvz.org >
Acked-by: David Howells <dhowells@redhat.com >
Cc: Alexey Dobriyan <adobriyan@gmail.com >
Cc: "Eric W. Biederman" <ebiederm@xmission.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2008-04-29 08:06:20 -07:00
Denis V. Lunev
34b37235c6
nfs: use proc_create to setup de->proc_fops
...
Use proc_create() to make sure that ->proc_fops be setup before gluing PDE to
main tree.
Signed-off-by: Denis V. Lunev <den@openvz.org >
Cc: "J. Bruce Fields" <bfields@fieldses.org >
Cc: Trond Myklebust <trond.myklebust@fys.uio.no >
Cc: Alexey Dobriyan <adobriyan@gmail.com >
Cc: "Eric W. Biederman" <ebiederm@xmission.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2008-04-29 08:06:20 -07:00
Denis V. Lunev
9ef2db2630
nfsd: use proc_create to setup de->proc_fops
...
Use proc_create() to make sure that ->proc_fops be setup before gluing PDE to
main tree.
Signed-off-by: Denis V. Lunev <den@openvz.org >
Cc: Neil Brown <neilb@suse.de >
Cc: "J. Bruce Fields" <bfields@fieldses.org >
Cc: Alexey Dobriyan <adobriyan@gmail.com >
Cc: "Eric W. Biederman" <ebiederm@xmission.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2008-04-29 08:06:20 -07:00
Denis V. Lunev
59b7435149
proc: introduce proc_create_data to setup de->data
...
This set of patches fixes an proc ->open'less usage due to ->proc_fops flip in
the most part of the kernel code. The original OOPS is described in the
commit 2d3a4e3666 :
Typical PDE creation code looks like:
pde = create_proc_entry("foo", 0, NULL);
if (pde)
pde->proc_fops = &foo_proc_fops;
Notice that PDE is first created, only then ->proc_fops is set up to
final value. This is a problem because right after creation
a) PDE is fully visible in /proc , and
b) ->proc_fops are proc_file_operations which do not have ->open callback. So, it's
possible to ->read without ->open (see one class of oopses below).
The fix is new API called proc_create() which makes sure ->proc_fops are
set up before gluing PDE to main tree. Typical new code looks like:
pde = proc_create("foo", 0, NULL, &foo_proc_fops);
if (!pde)
return -ENOMEM;
Fix most networking users for a start.
In the long run, create_proc_entry() for regular files will go.
In addition to this, proc_create_data is introduced to fix reading from
proc without PDE->data. The race is basically the same as above.
create_proc_entries is replaced in the entire kernel code as new method
is also simply better.
This patch:
The problem is the same as for de->proc_fops. Right now PDE becomes visible
without data set. So, the entry could be looked up without data. This, in
most cases, will simply OOPS.
proc_create_data call is created to address this issue. proc_create now
becomes a wrapper around it.
Signed-off-by: Denis V. Lunev <den@openvz.org >
Cc: "Eric W. Biederman" <ebiederm@xmission.com >
Cc: "J. Bruce Fields" <bfields@fieldses.org >
Cc: Alessandro Zummo <a.zummo@towertech.it >
Cc: Alexey Dobriyan <adobriyan@gmail.com >
Cc: Bartlomiej Zolnierkiewicz <bzolnier@gmail.com >
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org >
Cc: Bjorn Helgaas <bjorn.helgaas@hp.com >
Cc: Chris Mason <chris.mason@oracle.com >
Acked-by: David Howells <dhowells@redhat.com >
Cc: Dmitry Torokhov <dtor@mail.ru >
Cc: Geert Uytterhoeven <geert@linux-m68k.org >
Cc: Grant Grundler <grundler@parisc-linux.org >
Cc: Greg Kroah-Hartman <gregkh@suse.de >
Cc: Haavard Skinnemoen <hskinnemoen@atmel.com >
Cc: Heiko Carstens <heiko.carstens@de.ibm.com >
Cc: Ingo Molnar <mingo@elte.hu >
Cc: James Bottomley <James.Bottomley@HansenPartnership.com >
Cc: Jaroslav Kysela <perex@suse.cz >
Cc: Jeff Garzik <jgarzik@pobox.com >
Cc: Jeff Mahoney <jeffm@suse.com >
Cc: Jesper Nilsson <jesper.nilsson@axis.com >
Cc: Karsten Keil <kkeil@suse.de >
Cc: Kyle McMartin <kyle@parisc-linux.org >
Cc: Len Brown <lenb@kernel.org >
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com >
Cc: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca >
Cc: Matthew Wilcox <matthew@wil.cx >
Cc: Mauro Carvalho Chehab <mchehab@infradead.org >
Cc: Mikael Starvik <starvik@axis.com >
Cc: Nadia Derbey <Nadia.Derbey@bull.net >
Cc: Neil Brown <neilb@suse.de >
Cc: Paul Mackerras <paulus@samba.org >
Cc: Peter Osterlund <petero2@telia.com >
Cc: Pierre Peiffer <peifferp@gmail.com >
Cc: Russell King <rmk@arm.linux.org.uk >
Cc: Takashi Iwai <tiwai@suse.de >
Cc: Tony Luck <tony.luck@intel.com >
Cc: Trond Myklebust <trond.myklebust@fys.uio.no >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2008-04-29 08:06:20 -07:00
Alexey Dobriyan
b640a89ddd
proc: convert /proc/tty/ldiscs to seq_file interface
...
Note: THIS_MODULE and header addition aren't technically needed because
this code is not modular, but let's keep it anyway because people
can copy this code into modular code.
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com >
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2008-04-29 08:06:20 -07:00
Alexey Dobriyan
8731f14d37
proc: remove ->get_info infrastructure
...
Now that last dozen or so users of ->get_info were removed, ditch it too.
Everyone sane shouldd have switched to seq_file interface long ago.
P.S.: Co-existing 3 interfaces (->get_info/->read_proc/->proc_fops) for proc
is long-standing crap, BTW, thus
a) put ->read_proc/->write_proc/read_proc_entry() users on death row,
b) new such users should be rejected,
c) everyone is encouraged to convert his favourite ->read_proc user or
I'll do it, lazy bastards.
Signed-off-by: Alexey Dobriyan <adobriyan@sw.ru >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2008-04-29 08:06:19 -07:00
Alexey Dobriyan
352ced8e59
proc: switch /proc/scsi/device_info to seq_file interface
...
Note 1: 0644 should be used, but root bypasses permissions, so writing
to /proc/scsi/device_info still works.
Note 2: looks like scsi_dev_info_list is unprotected
Note 3: probably make proc whine about "unwriteable but with ->write hook"
entries. Probably.
Signed-off-by: Alexey Dobriyan <adobriyan@sw.ru >
Cc: James Bottomley <James.Bottomley@SteelEye.com >
Cc: Mike Christie <michaelc@cs.wisc.edu >
Cc: Matthew Wilcox <matthew@wil.cx >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2008-04-29 08:06:19 -07:00
Alexey Dobriyan
4a5cdb5b8f
proc: switch /proc/ip2mem to seq_file interface
...
/******************************************/
/* Remove useless comment, while I am it. */
/******************************************/
Signed-off-by: Alexey Dobriyan <adobriyan@sw.ru >
Cc: Greg Kroah-Hartman <gregkh@suse.de >
Cc: Jeff Garzik <jeff@garzik.org >
Cc: Jeff Dike <jdike@addtoit.com >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2008-04-29 08:06:19 -07:00
Alexey Dobriyan
076ec04b8a
proc: convert /proc/bus/nubus to seq_file interface
...
Signed-off-by: Alexey Dobriyan <adobriyan@sw.ru >
Cc: Geert Uytterhoeven <geert@linux-m68k.org >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2008-04-29 08:06:19 -07:00
Alexey Dobriyan
3ae02d6bc1
proc: switch /proc/irda/irnet to seq_file interface
...
Probably interface misuse, because of the way iterating over hashbin is done.
However! Printing of socket number ("IrNET socket %d - ", i++") made conversion
to proper ->start/->next difficult enough to do blindly without hardware.
Said that, please apply.
Remove useless comment while I am it.
Signed-off-by: Alexey Dobriyan <adobriyan@sw.ru >
Cc: Samuel Ortiz <samuel@sortiz.org >
Cc: "David S. Miller" <davem@davemloft.net >
Signed-off-by: Andrew Morton <akpm@linux-foundation.org >
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org >
2008-04-29 08:06:19 -07:00