David Howells [Fri, 12 Apr 2013 17:03:36 +0000 (18:03 +0100)]
proc: Make the PROC_I() and PDE() macros internal to procfs
Make the PROC_I() and PDE() macros internal to procfs. This means making
PDE_DATA() out of line. This could be made more optimal by storing
PDE()->data into inode->i_private.
Also provide a __PDE_DATA() that is inline and internal to procfs.
Signed-off-by: David Howells <[email protected]>
Signed-off-by: Al Viro <[email protected]>
David Howells [Fri, 12 Apr 2013 16:27:28 +0000 (17:27 +0100)]
proc: Supply a function to remove a proc entry by PDE
Supply a function (proc_remove()) to remove a proc entry (and any subtree
rooted there) by proc_dir_entry pointer rather than by name and (optionally)
root dir entry pointer. This allows us to eliminate all remaining pde->name
accesses outside of procfs.
Signed-off-by: David Howells <[email protected]>
Acked-by: Grant Likely <[email protected]>
cc:
[email protected]
cc:
[email protected]
cc:
[email protected]
cc:
[email protected]
cc:
[email protected]
cc:
[email protected]
cc:
[email protected]
Signed-off-by: Al Viro <[email protected]>
Al Viro [Sat, 20 Apr 2013 03:11:24 +0000 (23:11 -0400)]
take cgroup_open() and cpuset_open() to fs/proc/base.c
Signed-off-by: Al Viro <[email protected]>
David Howells [Fri, 12 Apr 2013 17:54:43 +0000 (18:54 +0100)]
ppc: Clean up scanlog
Clean up the pseries scanlog driver's use of procfs:
(1) Don't need to save the proc_dir_entry pointer as we have the filename to
remove with.
(2) Save the scan log buffer pointer in a static variable (there is only one
of it) and don't save it in the PDE (which doesn't have a destructor).
Signed-off-by: David Howells <[email protected]>
cc: Benjamin Herrenschmidt <
[email protected]>
cc: Paul Mackerras <
[email protected]>
cc:
[email protected]
Signed-off-by: Al Viro <[email protected]>
David Howells [Fri, 12 Apr 2013 23:48:49 +0000 (00:48 +0100)]
ppc: Clean up rtas_flash driver somewhat
Clean up some of the problems with the rtas_flash driver:
(1) It shouldn't fiddle with the internals of the procfs filesystem (altering
pde->count).
(2) If pid namespaces are in effect, then you can get multiple inodes
connected to a single pde, thereby rendering the pde->count > 2 test
useless.
(3) The pde->count fudging doesn't work for forked, dup'd or cloned file
descriptors, so add static mutexes and use them to wrap access to the
driver through read, write and release methods.
(4) The driver can only handle one device, so allocate most of the data
previously attached to the pde->data as static variables instead (though
allocate the validation data buffer with kmalloc).
(5) We don't need to save the pde pointers as long as we have the filenames
available for removal.
(6) Don't try to multiplex what the update file read method does based on the
filename. Instead provide separate file ops and split the function.
Whilst we're at it, tabulate the procfile information and loop through it when
creating or destroying them rather than manually coding each one.
[Folded fixes from Vasant Hegde <
[email protected]>]
Signed-off-by: David Howells <[email protected]>
cc: Benjamin Herrenschmidt <
[email protected]>
cc: Paul Mackerras <
[email protected]>
cc: Anton Blanchard <
[email protected]>
cc:
[email protected]
Signed-off-by: Al Viro <[email protected]>
David Howells [Fri, 12 Apr 2013 15:20:47 +0000 (16:20 +0100)]
hostap: proc: Use remove_proc_subtree()
Use remove_proc_subtree() rather than remove_proc_entry() to remove a
device-specific proc directory and all its children.
Signed-off-by: David Howells <[email protected]>
cc: Jouni Malinen <
[email protected]>
cc: Johannes Berg <
[email protected]>
cc:
[email protected]
cc:
[email protected]
Signed-off-by: Al Viro <[email protected]>
David Howells [Fri, 12 Apr 2013 15:15:07 +0000 (16:15 +0100)]
drm: proc: Use remove_proc_subtree()
Use remove_proc_subtree() rather than remove_proc_entry() to remove a
minor-specific drm proc directory and all its children.
Things could theoretically be improved by storing the drm_minor pointer in the
minor-specific dir proc_dir_entry struct data and then scrapping the list of
proc files - but that's shared with the debugfs interface where you can't do
that, so I don't see an easy way of doing it.
Signed-off-by: David Howells <[email protected]>
cc:
[email protected]
Signed-off-by: Al Viro <[email protected]>
David Howells [Fri, 12 Apr 2013 14:34:31 +0000 (15:34 +0100)]
drm: proc: Use minor->index to label things, not PDE->name
Use minor->index to label things, not the name field from the proc_dir_entry
of the /proc/dwm/<minor>/ directory.
Also, use "%u" not "%d" to render the value and use a 12-byte buffer in which
to render the integer, not a 16-byte buffer. The longest string an unsigned
int can give you is 10 chars (
4294967295) plus a NUL, so round up to 12 as the
stack is likely to be 4- or 8-byte aligned.
Signed-off-by: David Howells <[email protected]>
cc:
[email protected]
Signed-off-by: Al Viro <[email protected]>
David Howells [Fri, 12 Apr 2013 14:23:25 +0000 (15:23 +0100)]
drm: Constify drm_proc_list[]
Constify drm_proc_list[] and related pointers.
Signed-off-by: David Howells <[email protected]>
cc:
[email protected]
Signed-off-by: Al Viro <[email protected]>
David Howells [Fri, 12 Apr 2013 14:18:25 +0000 (15:18 +0100)]
zoran: Don't print proc_dir_entry data in debug
Don't print proc_dir_entry data in debug as we're soon to have no direct
access to the contents of the PDE. Print what was put in there instead.
Signed-off-by: David Howells <[email protected]>
cc:
[email protected]
cc:
[email protected]
Signed-off-by: Al Viro <[email protected]>
David Howells [Fri, 12 Apr 2013 10:17:06 +0000 (11:17 +0100)]
reiserfs: Don't access the proc_dir_entry in r_open(), r_start() r_show()
Don't access the proc_dir_entry in ReiserFS's r_open(), r_start() r_show()
procfs interface functions.
ReiserFS stores the ->show() method pointer in PDE->data and the super_block
pointer in PDE->parent->data. This isn't changing.
Currently, ReiserFS passes the PDE pointer into seq_file::private from
r_open() so that r_start() and r_show() can then access it. Instead, use
seq_open_private() to allocate a two-pointer struct that's passed through
seq_file::private and put the ->show() method and the sb pointers in there.
Signed-off-by: David Howells <[email protected]>
cc:
[email protected]
Signed-off-by: Al Viro <[email protected]>
David Howells [Fri, 12 Apr 2013 13:06:01 +0000 (14:06 +0100)]
proc: Supply an accessor for getting the data from a PDE's parent
Supply an accessor function for getting the private data from the parent
proc_dir_entry struct of the proc_dir_entry struct associated with an inode.
ReiserFS, for instance, stores the super_block pointer in the proc directory
it makes for that super_block, and a pointer to the respective seq_file show
function in each of the proc files in that directory.
This allows a reduction in the number of file_operations structs, open
functions and seq_operations structs required. The problem otherwise is that
each show function requires two pieces of data but only has storage for one
per PDE (and this has no release function).
Signed-off-by: David Howells <[email protected]>
Acked-by: Mauro Carvalho Chehab <[email protected]>
Acked-by: Greg Kroah-Hartman <[email protected]>
cc: Jerry Chuang <
[email protected]>
cc: Maxim Mikityanskiy <
[email protected]>
cc: YAMANE Toshiaki <
[email protected]>
cc:
[email protected]
cc:
[email protected]
cc:
[email protected]
Signed-off-by: Al Viro <[email protected]>
David Howells [Fri, 12 Apr 2013 02:05:20 +0000 (03:05 +0100)]
airo: Use remove_proc_subtree()
Use remove_proc_subtree() to remove the airo device subdir and all its
children instead of doing it manually.
Signed-off-by: David Howells <[email protected]>
cc:
[email protected]
Signed-off-by: Al Viro <[email protected]>
David Howells [Fri, 12 Apr 2013 02:02:22 +0000 (03:02 +0100)]
rtl8192u: Don't need to save device proc dir PDE
Don't need to save the PDE of a directory created under /proc/net/rtl8192/ as
we can use proc subtree deletion to get rid of it and all its children.
Signed-off-by: David Howells <[email protected]>
Acked-by: Mauro Carvalho Chehab <[email protected]>
Acked-by: Greg Kroah-Hartman <[email protected]>
cc: Jerry Chuang <
[email protected]>
cc:
[email protected]
cc:
[email protected]
Signed-off-by: Al Viro <[email protected]>
David Howells [Fri, 12 Apr 2013 01:59:48 +0000 (02:59 +0100)]
rtl8187se: Use a dir under /proc/net/r8180/
Create a dir under /proc/net/r8180/ named for the device and create that
device's files under there. This means that there won't be a problem for
multiple devices in the system (if such is possible) and it means we don't
need to save the 'device directory' PDE any more as we can just do a proc
subtree removal.
Signed-off-by: David Howells <[email protected]>
Acked-by: Greg Kroah-Hartman <[email protected]>
cc: Maxim Mikityanskiy <
[email protected]>
cc: YAMANE Toshiaki <
[email protected]>
cc:
[email protected]
cc:
[email protected]
Signed-off-by: Al Viro <[email protected]>
David Howells [Fri, 12 Apr 2013 01:48:30 +0000 (02:48 +0100)]
proc: Add proc_mkdir_data()
Add proc_mkdir_data() to allow procfs directories to be created that are
annotated at the time of creation with private data rather than doing this
post-creation. This means no access is then required to the proc_dir_entry
struct to set this.
Signed-off-by: David Howells <[email protected]>
Acked-by: Mauro Carvalho Chehab <[email protected]>
Acked-by: Greg Kroah-Hartman <[email protected]>
cc: Neela Syam Kolli <
[email protected]>
cc: Jerry Chuang <
[email protected]>
cc:
[email protected]
cc:
[email protected]
cc:
[email protected]
Signed-off-by: Al Viro <[email protected]>
David Howells [Fri, 12 Apr 2013 01:29:19 +0000 (02:29 +0100)]
proc: Move some bits from linux/proc_fs.h to linux/{of.h,signal.h,tty.h}
Move some bits from linux/proc_fs.h to linux/of.h, signal.h and tty.h.
Also move proc_tty_init() and proc_device_tree_init() to fs/proc/internal.h as
they're internal to procfs.
Signed-off-by: David Howells <[email protected]>
Acked-by: Greg Kroah-Hartman <[email protected]>
Acked-by: Grant Likely <[email protected]>
cc:
[email protected]
cc:
[email protected]
cc: Greg Kroah-Hartman <
[email protected]>
cc: Jri Slaby <
[email protected]>
Signed-off-by: Al Viro <[email protected]>
David Howells [Fri, 12 Apr 2013 01:09:03 +0000 (02:09 +0100)]
proc: Move PDE_NET() to fs/proc/proc_net.c
Move PDE_NET() to fs/proc/proc_net.c as that's where the only user is.
Signed-off-by: David Howells <[email protected]>
Signed-off-by: Al Viro <[email protected]>
David Howells [Fri, 12 Apr 2013 00:50:06 +0000 (01:50 +0100)]
proc: Split the namespace stuff out into linux/proc_ns.h
Split the proc namespace stuff out into linux/proc_ns.h.
Signed-off-by: David Howells <[email protected]>
cc:
[email protected]
cc: Serge E. Hallyn <
[email protected]>
cc: Eric W. Biederman <
[email protected]>
Signed-off-by: Al Viro <[email protected]>
David Howells [Fri, 12 Apr 2013 00:42:56 +0000 (01:42 +0100)]
proc: Move proc_fd() to fs/proc/fd.h
Move proc_fd() to fs/proc/fd.h.
Signed-off-by: David Howells <[email protected]>
Signed-off-by: Al Viro <[email protected]>
David Howells [Fri, 12 Apr 2013 00:08:50 +0000 (01:08 +0100)]
proc: Uninline pid_delete_dentry()
Uninline pid_delete_dentry() as it's only used by three function pointers.
Signed-off-by: David Howells <[email protected]>
Signed-off-by: Al Viro <[email protected]>
David Howells [Thu, 11 Apr 2013 23:38:51 +0000 (00:38 +0100)]
proc: Supply PDE attribute setting accessor functions
Supply accessor functions to set attributes in proc_dir_entry structs.
The following are supplied: proc_set_size() and proc_set_user().
Signed-off-by: David Howells <[email protected]>
Acked-by: Mauro Carvalho Chehab <[email protected]>
cc:
[email protected]
cc:
[email protected]
cc:
[email protected]
cc:
[email protected]
cc:
[email protected]
cc:
[email protected]
cc:
[email protected]
Signed-off-by: Al Viro <[email protected]>
David Howells [Thu, 11 Apr 2013 23:10:25 +0000 (00:10 +0100)]
proc: Split kcore bits from linux/procfs.h into linux/kcore.h
Split kcore bits from linux/procfs.h into linux/kcore.h.
Signed-off-by: David Howells <[email protected]>
Acked-by: KOSAKI Motohiro <[email protected]>
Acked-by: Ralf Baechle <[email protected]>
cc:
[email protected]
cc:
[email protected]
cc:
[email protected]
cc:
[email protected]
Signed-off-by: Al Viro <[email protected]>
David Howells [Thu, 11 Apr 2013 22:55:54 +0000 (23:55 +0100)]
Include missing linux/magic.h inclusions
Include missing linux/magic.h inclusions where the source file is currently
expecting to get magic numbers through linux/proc_fs.h.
Signed-off-by: David Howells <[email protected]>
cc:
[email protected]
Signed-off-by: Al Viro <[email protected]>
David Howells [Thu, 11 Apr 2013 22:51:01 +0000 (23:51 +0100)]
Include missing linux/slab.h inclusions
Include missing linux/slab.h inclusions where the source file is currently
expecting to get kmalloc() and co. through linux/proc_fs.h.
Signed-off-by: David Howells <[email protected]>
Acked-by: Greg Kroah-Hartman <[email protected]>
cc:
[email protected]
cc:
[email protected]
cc:
[email protected]
cc:
[email protected]
cc:
[email protected]
cc:
[email protected]
Signed-off-by: Al Viro <[email protected]>
David Howells [Thu, 11 Apr 2013 02:20:50 +0000 (03:20 +0100)]
proc: Delete create_proc_read_entry()
Delete create_proc_read_entry() as it no longer has any users.
Also delete read_proc_t, write_proc_t, the read_proc member of the
proc_dir_entry struct and the support functions that use them. This saves a
pointer for every PDE allocated.
Signed-off-by: David Howells <[email protected]>
Signed-off-by: Al Viro <[email protected]>
David Howells [Thu, 11 Apr 2013 02:05:01 +0000 (03:05 +0100)]
arm: Don't use create_proc_read_entry()
Don't use create_proc_read_entry() as that is deprecated, but rather use
proc_create_data() and seq_file instead.
Signed-off-by: David Howells <[email protected]>
cc: Russell King <
[email protected]>
cc: Kevin Hilman <
[email protected]>
cc: Tony Lindgren <
[email protected]>
cc:
[email protected]
cc:
[email protected]
Signed-off-by: Al Viro <[email protected]>
Tony Lindgren [Thu, 11 Apr 2013 18:03:41 +0000 (11:03 -0700)]
ARM: OMAP1: Replace PM debug create_proc_read_entry() with debugfs
There's no need to keep this entry in proc, it is PM
related debug only entry. Let's move it into debugfs.
Based on an earlier patch David Howells <
[email protected]>
to use seq_printf and to update to use create_proc_read_entry().
Signed-off-by: Tony Lindgren <[email protected]>
Signed-off-by: David Howells <[email protected]>
Signed-off-by: Al Viro <[email protected]>
David Howells [Thu, 11 Apr 2013 02:04:20 +0000 (03:04 +0100)]
cris: Don't use create_proc_read_entry()
Don't use create_proc_read_entry() as that is deprecated, but rather use
proc_create_data() and seq_file instead.
Signed-off-by: David Howells <[email protected]>
Acked-by: Jesper Nilsson <[email protected]>
cc: Mikael Starvik <
[email protected]>
cc:
[email protected]
Signed-off-by: Al Viro <[email protected]>
David Howells [Thu, 11 Apr 2013 01:32:46 +0000 (02:32 +0100)]
h8300: Don't use create_proc_read_entry()
Don't use create_proc_read_entry() as that is deprecated, but rather use
proc_create_data() and seq_file instead.
Signed-off-by: David Howells <[email protected]>
cc: Yoshinori Sato <
[email protected]>
Signed-off-by: Al Viro <[email protected]>
David Howells [Thu, 11 Apr 2013 00:28:40 +0000 (01:28 +0100)]
ia64: Don't use create_proc_read_entry()
Don't use create_proc_read_entry() as that is deprecated, but rather use
proc_create_data() and seq_file instead.
Signed-off-by: David Howells <[email protected]>
cc: Tony Luck <
[email protected]>
cc: Fenghua Yu <
[email protected]>
cc:
[email protected]
Signed-off-by: Al Viro <[email protected]>
David Howells [Wed, 10 Apr 2013 23:21:15 +0000 (00:21 +0100)]
mips: Don't use create_proc_read_entry()
Don't use create_proc_read_entry() as that is deprecated, but rather use
proc_create_data() and seq_file instead.
Signed-off-by: David Howells <[email protected]>
cc: Ralf Baechle <
[email protected]>
cc:
[email protected]
Signed-off-by: Al Viro <[email protected]>
David Howells [Wed, 10 Apr 2013 23:11:51 +0000 (00:11 +0100)]
parisc: Don't use create_proc_read_entry()
Don't use create_proc_read_entry() as that is deprecated, but rather use
proc_create_data() and seq_file instead.
Signed-off-by: David Howells <[email protected]>
cc: "James E.J. Bottomley" <
[email protected]>
cc: Helge Deller <
[email protected]>
cc:
[email protected]
Signed-off-by: Al Viro <[email protected]>
David Howells [Wed, 10 Apr 2013 23:01:27 +0000 (00:01 +0100)]
sh: Don't use create_proc_read_entry()
Don't use create_proc_read_entry() as that is deprecated, but rather use
proc_create_data() and seq_file instead.
Signed-off-by: David Howells <[email protected]>
cc: Paul Mundt <
[email protected]>
cc:
[email protected]
Signed-off-by: Al Viro <[email protected]>
David Howells [Wed, 10 Apr 2013 12:33:21 +0000 (13:33 +0100)]
megaraid: Don't use create_proc_read_entry()
Don't use create_proc_read_entry() as that is deprecated, but rather use
proc_create_data() and seq_file instead.
Signed-off-by: David Howells <[email protected]>
cc: Neela Syam Kolli <
[email protected]>
cc: James E.J. Bottomley <
[email protected]>
cc:
[email protected]
Signed-off-by: Al Viro <[email protected]>
David Howells [Wed, 10 Apr 2013 20:13:23 +0000 (21:13 +0100)]
hostap: Don't use create_proc_read_entry()
Don't use create_proc_read_entry() as that is deprecated, but rather use
proc_create_data() and seq_file instead.
Signed-off-by: David Howells <[email protected]>
Acked-by: Greg Kroah-Hartman <[email protected]>
cc: Jouni Malinen <
[email protected]>
cc: John W. Linville <
[email protected]>
cc: Johannes Berg <
[email protected]>
cc:
[email protected]
cc:
[email protected]
cc:
[email protected]
Signed-off-by: Al Viro <[email protected]>
David Howells [Wed, 10 Apr 2013 15:50:58 +0000 (16:50 +0100)]
atmel: Don't use create_proc_read_entry()
Don't use create_proc_read_entry() as that is deprecated, but rather use
proc_create_data() and seq_file instead.
Signed-off-by: David Howells <[email protected]>
cc: Simon Kelley <
[email protected]>
cc: John W. Linville <
[email protected]>
cc:
[email protected]
cc:
[email protected]
Signed-off-by: Al Viro <[email protected]>
David Howells [Wed, 10 Apr 2013 15:48:39 +0000 (16:48 +0100)]
ds1620: Don't use create_proc_read_entry()
Don't use create_proc_read_entry() as that is deprecated, but rather use
proc_create_data() and seq_file instead.
Signed-off-by: David Howells <[email protected]>
cc: Arnd Bergmann <
[email protected]>
cc: Greg Kroah-Hartman <
[email protected]>
Signed-off-by: Al Viro <[email protected]>
David Howells [Wed, 10 Apr 2013 15:21:08 +0000 (16:21 +0100)]
efirtc: Don't use create_proc_read_entry()
Don't use create_proc_read_entry() as that is deprecated, but rather use
proc_create_data() and seq_file instead.
Signed-off-by: David Howells <[email protected]>
cc: Arnd Bergmann <
[email protected]>
cc: Greg Kroah-Hartman <
[email protected]>
Signed-off-by: Al Viro <[email protected]>
David Howells [Wed, 10 Apr 2013 15:11:53 +0000 (16:11 +0100)]
genrtc: Don't use create_proc_read_entry()
Don't use create_proc_read_entry() as that is deprecated, but rather use
proc_create_data() and seq_file instead.
Signed-off-by: David Howells <[email protected]>
cc: Arnd Bergmann <
[email protected]>
cc: Greg Kroah-Hartman <
[email protected]>
Signed-off-by: Al Viro <[email protected]>
David Howells [Wed, 10 Apr 2013 14:52:18 +0000 (15:52 +0100)]
hp_sdc_rtc: Don't use create_proc_read_entry()
Don't use create_proc_read_entry() as that is deprecated, but rather use
proc_create_data() and seq_file instead.
Signed-off-by: David Howells <[email protected]>
cc: Brian S. Julin <
[email protected]>
cc: Helge Deller <
[email protected]>
cc:
[email protected]
Signed-off-by: Al Viro <[email protected]>
David Howells [Wed, 10 Apr 2013 14:05:38 +0000 (15:05 +0100)]
nubus: Don't use create_proc_read_entry()
Don't use create_proc_read_entry() as that is deprecated, but rather use
proc_create_data() and seq_file instead.
Signed-off-by: David Howells <[email protected]>
cc:
[email protected]
Signed-off-by: Al Viro <[email protected]>
David Howells [Wed, 10 Apr 2013 12:23:50 +0000 (13:23 +0100)]
fsl_udc: Don't use create_proc_read_entry()
Don't use create_proc_read_entry() as that is deprecated, but rather use
proc_create_data() and seq_file instead.
Signed-off-by: David Howells <[email protected]>
cc: Li Yang <
[email protected]>
cc: Felipe Balbi <
[email protected]>
cc: Greg Kroah-Hartman <
[email protected]>
cc:
[email protected]
cc:
[email protected]
Signed-off-by: Al Viro <[email protected]>
David Howells [Wed, 10 Apr 2013 10:51:21 +0000 (11:51 +0100)]
goku_udc: Don't use create_proc_read_entry()
Don't use create_proc_read_entry() as that is deprecated, but rather use
proc_create_data() and seq_file instead.
Signed-off-by: David Howells <[email protected]>
cc: Felipe Balbi <
[email protected]>
cc: Greg Kroah-Hartman <
[email protected]>
cc:
[email protected]
Signed-off-by: Al Viro <[email protected]>
David Howells [Mon, 8 Apr 2013 22:26:53 +0000 (23:26 +0100)]
wlags49_h2: Don't use create_proc_read_entry()
Don't use create_proc_read_entry() as that is deprecated, but rather use
proc_create_data() and seq_file instead.
Signed-off-by: David Howells <[email protected]>
cc: Henk de Groot <
[email protected]>
cc: Bartlomiej Zolnierkiewicz <
[email protected]>
cc: Greg Kroah-Hartman <
[email protected]>
cc:
[email protected]
Signed-off-by: Al Viro <[email protected]>
David Howells [Mon, 8 Apr 2013 21:47:46 +0000 (22:47 +0100)]
cxt1e1: Don't use create_proc_read_entry()
Don't use create_proc_read_entry() as that is deprecated, but rather use
proc_create_data() and seq_file instead.
Signed-off-by: David Howells <[email protected]>
cc: Bob Beers <
[email protected]>
cc: Greg Kroah-Hartman <
[email protected]>
cc:
[email protected]
Signed-off-by: Al Viro <[email protected]>
David Howells [Mon, 8 Apr 2013 15:50:22 +0000 (16:50 +0100)]
csr: Don't use create_proc_read_entry()
Don't use create_proc_read_entry() as that is deprecated, but rather use
proc_create_data() and seq_file instead.
Signed-off-by: David Howells <[email protected]>
cc: Greg Kroah-Hartman <
[email protected]>
cc: Randy Dunlap <
[email protected]>
cc: Priit Laes <
[email protected]>
cc:
[email protected]
cc: Mikko Virkkilä <
[email protected]>
cc: Lauri Hintsala <
[email protected]>
cc: Riku Mettälä <
[email protected]>
cc: Veli-Pekka Peltola <
[email protected]>
Signed-off-by: Al Viro <[email protected]>
David Howells [Mon, 8 Apr 2013 15:39:33 +0000 (16:39 +0100)]
comedi: Don't use create_proc_read_entry()
Don't use create_proc_read_entry() as that is deprecated, but rather use
proc_create_data() and seq_file instead.
Signed-off-by: David Howells <[email protected]>
cc: David Schleef <
[email protected]>
cc: Ian Abbott <
[email protected]>
cc: Mori Hess <
[email protected]>
cc: Greg Kroah-Hartman <
[email protected]>
cc: H Hartley Sweeten <
[email protected]>
cc:
[email protected]
Signed-off-by: Al Viro <[email protected]>
David Howells [Mon, 8 Apr 2013 15:06:20 +0000 (16:06 +0100)]
ft1000: Don't use create_proc_read_entry()
Don't use create_proc_read_entry() as that is deprecated, but rather use
proc_create_data() and seq_file instead.
Signed-off-by: David Howells <[email protected]>
cc: Marek Belisko <
[email protected]>
cc: Greg Kroah-Hartman <
[email protected]>
cc: Ondrej Zary <
[email protected]>
cc:
[email protected]
Signed-off-by: Al Viro <[email protected]>
David Howells [Mon, 8 Apr 2013 14:48:07 +0000 (15:48 +0100)]
rtl8187se: Don't use create_proc_read_entry()
Don't use create_proc_read_entry() as that is deprecated, but rather use
proc_create_data() and seq_file instead. Whilst we're at it, reduce the
number of show functions where we can share them.
Question: Do any of the registers read by proc_get_registers() have side
effects upon reading? If so, locking will be required.
Signed-off-by: David Howells <[email protected]>
cc: Greg Kroah-Hartman <
[email protected]>
cc: Maxim Mikityanskiy <
[email protected]>
cc: YAMANE Toshiaki <
[email protected]>
cc: Bill Pemberton <
[email protected]>
cc: Andrea Merello <
[email protected]>
cc:
[email protected]
cc:
[email protected]
Signed-off-by: Al Viro <[email protected]>
David Howells [Mon, 8 Apr 2013 14:17:33 +0000 (15:17 +0100)]
rtl8192u: Don't use create_proc_read_entry()
Don't use create_proc_read_entry() as that is deprecated, but rather use
proc_create_data() and seq_file instead. Whilst we're at it, reduce the
number of show functions where we can share them.
Note: proc_get_stats_ap() should probably use seq_file iteration rather than
list_for_each_entry().
Further note: There appears to be a lot of locking missing in this file to
defend against concurrent access by the driver doing normal operations.
Notably, ieee->network_list traversal and RWCAM/RCAMO command/response access.
Further, do any of the registers read have side effects upon reading?
Signed-off-by: David Howells <[email protected]>
cc: Jerry Chuang <
[email protected]>
cc: Mauro Carvalho Chehab <
[email protected]>
cc: Greg Kroah-Hartman <
[email protected]>
cc:
[email protected]
cc:
[email protected]
Signed-off-by: Al Viro <[email protected]>
David Howells [Tue, 9 Apr 2013 20:11:47 +0000 (21:11 +0100)]
procfs: Mark create_proc_read_entry deprecated
Mark create_proc_read_entry deprecated. proc_create[_data]() should be used
instead.
Signed-off-by: David Howells <[email protected]>
Signed-off-by: Al Viro <[email protected]>
Al Viro [Fri, 19 Apr 2013 10:43:33 +0000 (06:43 -0400)]
xt_hashlimit: allocate a copy of name explicitly, don't rely on procfs guts
Signed-off-by: Al Viro <[email protected]>
Al Viro [Mon, 15 Apr 2013 21:27:11 +0000 (17:27 -0400)]
mISDN: grabbing/dropping reference to THIS_MODULE in open/release is racy
... when you have no ->owner set.
Signed-off-by: Al Viro <[email protected]>
Al Viro [Mon, 15 Apr 2013 21:18:17 +0000 (17:18 -0400)]
mISDN: fix mISDN_read()/mISDN_read() race
Signed-off-by: Al Viro <[email protected]>
Al Viro [Mon, 15 Apr 2013 21:04:04 +0000 (17:04 -0400)]
mISDN: fix misdn_add_timer()/misdn_del_timer() race
do add_timer() *before* unlocking dev->lock, or unpleasant things can
happen if misdn_del_timer() on another CPU finds the sucker, calls
del_timer_sync() (which does nothing, since we hadn't started the
timer yet) and frees it, just as we get around to add_timer()...
Signed-off-by: Al Viro <[email protected]>
Al Viro [Mon, 15 Apr 2013 20:55:41 +0000 (16:55 -0400)]
mISDN: fix races between misdn_del_timer() and timer callback
mark the victim with negative ->id if misdn_del_timer() finds it on
the list, have timer callback *not* move ones so marked to dev->expired
Signed-off-by: Al Viro <[email protected]>
Al Viro [Mon, 15 Apr 2013 20:31:13 +0000 (16:31 -0400)]
mISDN: fix the races with timers going off just as they are deleted
timer callback in timerdev.c both accesses struct mISDNtimer it's
called for *and* moves it to dev->expired. We need del_timer_sync(),
or we risk kfree() freeing it right under dev_expire_timer() *and*
dev->expired getting corrupted.
Signed-off-by: Al Viro <[email protected]>
Al Viro [Mon, 15 Apr 2013 17:58:21 +0000 (13:58 -0400)]
dvb_frontend: don't mess with ->f_op in ->release()
Signed-off-by: Al Viro <[email protected]>
Al Viro [Mon, 15 Apr 2013 17:56:11 +0000 (13:56 -0400)]
dvb_net: don't mess with ->f_op in ->release()
Signed-off-by: Al Viro <[email protected]>
Al Viro [Mon, 15 Apr 2013 17:34:22 +0000 (13:34 -0400)]
lis3lv02d: don't wank with fasync() on ->release()
Signed-off-by: Al Viro <[email protected]>
Al Viro [Mon, 15 Apr 2013 17:31:14 +0000 (13:31 -0400)]
mpt3sas: don't wank with fasync on ->release()
Signed-off-by: Al Viro <[email protected]>
Al Viro [Mon, 15 Apr 2013 17:30:33 +0000 (13:30 -0400)]
mpt2sas: don't wank with fasync on ->release()
Signed-off-by: Al Viro <[email protected]>
Al Viro [Mon, 15 Apr 2013 17:29:15 +0000 (13:29 -0400)]
fix a leak in /proc/schedstats
Signed-off-by: Al Viro <[email protected]>
Al Viro [Mon, 15 Apr 2013 14:29:11 +0000 (10:29 -0400)]
pmcraid: don't wank with fasync in ->release()
Signed-off-by: Al Viro <[email protected]>
Al Viro [Mon, 15 Apr 2013 14:28:20 +0000 (10:28 -0400)]
mptctl: don't wank with fasync in ->release()
Signed-off-by: Al Viro <[email protected]>
Al Viro [Mon, 15 Apr 2013 02:39:37 +0000 (22:39 -0400)]
lpfc: fix races for miscdevice open vs. rmmod
mind you, I'm not sure WTF would anybody _need_ that miscdevice
at all - no IO is possible for it, opening it only pins the module
down and is seriously racy, at that.
Signed-off-by: Al Viro <[email protected]>
Al Viro [Mon, 15 Apr 2013 01:23:06 +0000 (21:23 -0400)]
yurex: don't wank with fasync on ->release()...
Signed-off-by: Al Viro <[email protected]>
Al Viro [Mon, 15 Apr 2013 00:01:50 +0000 (20:01 -0400)]
fanotify: don't wank with FASYNC on ->release()
... it's done already by __fput()
Signed-off-by: Al Viro <[email protected]>
Al Viro [Sun, 14 Apr 2013 21:22:17 +0000 (17:22 -0400)]
sock_close() couldn't have been called with NULL inode since at least 2.1.early
... if not since 0.99 or so.
Signed-off-by: Al Viro <[email protected]>
Al Viro [Sun, 14 Apr 2013 20:59:00 +0000 (16:59 -0400)]
tomoyo_close_control: don't bother with return value
Signed-off-by: Al Viro <[email protected]>
Al Viro [Sun, 14 Apr 2013 20:49:33 +0000 (16:49 -0400)]
dmasound_core: saner arguments for sq_fsync()
it is not (and it has never been) an ->fsync() instance...
Signed-off-by: Al Viro <[email protected]>
Al Viro [Sun, 14 Apr 2013 19:35:44 +0000 (15:35 -0400)]
hppfs: get rid of ->fsync()
it has grown by accident - directories there do *not* use page cache, so
there's nothing to write.
Signed-off-by: Al Viro <[email protected]>
Al Viro [Sun, 14 Apr 2013 19:34:01 +0000 (15:34 -0400)]
hppfs: fix the leaks on close()
we need to close the underlying procfs file and free ->private_data
Signed-off-by: Al Viro <[email protected]>
Al Viro [Sun, 14 Apr 2013 00:31:37 +0000 (20:31 -0400)]
new helper: read_code()
switch binfmts that use ->read() to that (and to kernel_read()
in several cases in binfmt_flat - sure, it's nommu, but still,
doing ->read() into kmalloc'ed buffer...)
Signed-off-by: Al Viro <[email protected]>
Al Viro [Sat, 13 Apr 2013 20:48:24 +0000 (16:48 -0400)]
cx25821: sanitize cx25821_openfile_audio() a bit...
Signed-off-by: Al Viro <[email protected]>
Al Viro [Sat, 13 Apr 2013 20:35:35 +0000 (16:35 -0400)]
cx25821: sanitize cx25821_get_audio_data() a bit
Signed-off-by: Al Viro <[email protected]>
Al Viro [Thu, 4 Apr 2013 20:28:47 +0000 (16:28 -0400)]
try a saner locking for pde_opener...
Signed-off-by: Al Viro <[email protected]>
Al Viro [Wed, 3 Apr 2013 23:57:00 +0000 (19:57 -0400)]
deal with races between remove_proc_entry() and proc_reg_release()
* serialize the call of ->release() on per-pdeo mutex
* don't remove pdeo from per-pde list until we are through with it
Signed-off-by: Al Viro <[email protected]>
Al Viro [Wed, 3 Apr 2013 23:07:30 +0000 (19:07 -0400)]
procfs: preparations for remove_proc_entry() race fixes
* leave ->proc_fops alone; make ->pde_users negative instead
* trim pde_opener
* move relevant code in fs/proc/inode.c
Signed-off-by: Al Viro <[email protected]>
David Howells [Thu, 4 Apr 2013 15:32:28 +0000 (16:32 +0100)]
procfs: Clean up huge if-statement in __proc_file_read()
Switch huge if-statement in __proc_file_read() around. This then puts the
single line loop break immediately after the if-statement and allows us to
de-indent the huge comment and make it take fewer lines. The code following
the if-statement then follows naturally from the call to dp->read_proc().
Signed-off-by: David Howells <[email protected]>
Al Viro [Sat, 6 Apr 2013 22:11:22 +0000 (18:11 -0400)]
vt6655: slightly clean reading config file
Signed-off-by: Al Viro <[email protected]>
Al Viro [Sat, 6 Apr 2013 22:00:07 +0000 (18:00 -0400)]
vt6656: slightly sanitized reading config
Just reading - parsing the results is left alone (and unspeakably
lousy).
Signed-off-by: Al Viro <[email protected]>
Al Viro [Sat, 6 Apr 2013 17:53:56 +0000 (13:53 -0400)]
sound_firmware: don't bother with filp_close()
it's opened read-only and never installed into any descriptor tables;
fput() will do just as well.
Signed-off-by: Al Viro <[email protected]>
Al Viro [Sat, 6 Apr 2013 00:44:08 +0000 (20:44 -0400)]
pxa3xx-gcu: stop embedding file_operations into device-private object
no need to do that anymore...
Signed-off-by: Al Viro <[email protected]>
Al Viro [Sat, 6 Apr 2013 00:39:36 +0000 (20:39 -0400)]
pxa3xx-gcu: quite playing silly buggers with ->f_op
misc device gets ->private_data pointing to struct miscdevice
on open(), so we can use that to get to per-device structure
instead of relying on file_operations being copied into it.
Signed-off-by: Al Viro <[email protected]>
David Howells [Thu, 4 Apr 2013 19:36:00 +0000 (20:36 +0100)]
silicom-bypass: Remove device_open/close()
Remove device_open/close() functions as they don't really do anything and
remove Device_Open as it isn't counted atomically and the value isn't used.
Signed-off-by: David Howells <[email protected]>
David Howells [Thu, 4 Apr 2013 16:02:03 +0000 (17:02 +0100)]
proc: Kill create_proc_entry()
Kill create_proc_entry() in favour of create_proc_read_entry(), proc_create()
and proc_create_data().
Signed-off-by: David Howells <[email protected]>
David Howells [Thu, 4 Apr 2013 15:49:26 +0000 (16:49 +0100)]
wlags49_h2: Don't use create_proc_entry()
create_proc_entry() shouldn't be used. Rather proc_create_data() should be
used. The proc_write() function is only used by #if'd out code, so delete it
for now.
Signed-off-by: David Howells <[email protected]>
David Howells [Thu, 4 Apr 2013 15:44:51 +0000 (16:44 +0100)]
nubus: Don't use create_proc_entry()
Don't use create_proc_entry() in nubus_proc_subdir(). The files created aren't
given any way to use them, so for the moment use create_proc_read_entry() with
a NULL accessor and generate a compile-time warning.
Signed-off-by: David Howells <[email protected]>
David Howells [Thu, 4 Apr 2013 15:58:25 +0000 (16:58 +0100)]
UM: Adjust printk in create_proc_mconsole()
Adjust printk in create_proc_mconsole() to reflect it is now using
proc_create() not create_proc_mconsole().
Signed-off-by: David Howells <[email protected]>
Al Viro [Thu, 4 Apr 2013 23:09:41 +0000 (19:09 -0400)]
constify a bunch of struct file_operations instances
Signed-off-by: Al Viro <[email protected]>
Al Viro [Thu, 4 Apr 2013 23:18:04 +0000 (19:18 -0400)]
bluetooth: kill unused fops field in struct bt_sock_list
Signed-off-by: Al Viro <[email protected]>
Al Viro [Thu, 4 Apr 2013 23:16:06 +0000 (19:16 -0400)]
bluetooth: fix race in bt_procfs_init()
use proc_create_data() rather than set ->data after the file has
been created
Signed-off-by: Al Viro <[email protected]>
Al Viro [Thu, 4 Apr 2013 23:14:33 +0000 (19:14 -0400)]
bluetooth: kill unused 'module' argument of bt_procfs_init()
Signed-off-by: Al Viro <[email protected]>
Al Viro [Thu, 4 Apr 2013 23:12:06 +0000 (19:12 -0400)]
bluetooth: don't bother with ->owner for procfs fops
Signed-off-by: Al Viro <[email protected]>
Al Viro [Wed, 3 Apr 2013 04:04:51 +0000 (00:04 -0400)]
x25: use proc_remove_subtree()
... and don't bother with ->owner, while we are at it - procfs fops
do not need it.
Signed-off-by: Al Viro <[email protected]>
Al Viro [Tue, 2 Apr 2013 00:48:34 +0000 (20:48 -0400)]
create_proc_cpu_mask() doesn't need an argument...
Signed-off-by: Al Viro <[email protected]>
Al Viro [Mon, 1 Apr 2013 03:21:50 +0000 (23:21 -0400)]
lparcfg: don't bother saving pointer to proc_dir_entry
Signed-off-by: Al Viro <[email protected]>
Al Viro [Mon, 1 Apr 2013 02:50:16 +0000 (22:50 -0400)]
prominfo_proc fixes
* check for proc_mkdir() failures
* use remove_proc_subtree()
Signed-off-by: Al Viro <[email protected]>