linux/arch/alpha/kernel
Alexey Dobriyan 99b7623380 proc 2/2: remove struct proc_dir_entry::owner
Setting ->owner as done currently (pde->owner = THIS_MODULE) is racy
as correctly noted at bug #12454. Someone can lookup entry with NULL
->owner, thus not pinning enything, and release it later resulting
in module refcount underflow.

We can keep ->owner and supply it at registration time like ->proc_fops
and ->data.

But this leaves ->owner as easy-manipulative field (just one C assignment)
and somebody will forget to unpin previous/pin current module when
switching ->owner. ->proc_fops is declared as "const" which should give
some thoughts.

->read_proc/->write_proc were just fixed to not require ->owner for
protection.

rmmod'ed directories will be empty and return "." and ".." -- no harm.
And directories with tricky enough readdir and lookup shouldn't be modular.
We definitely don't want such modular code.

Removing ->owner will also make PDE smaller.

So, let's nuke it.

Kudos to Jeff Layton for reminding about this, let's say, oversight.

http://bugzilla.kernel.org/show_bug.cgi?id=12454

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
2009-03-31 01:14:44 +04:00
..
.gitignore alpha: .gitignore vmlinux.lds 2009-01-15 16:39:40 -08:00
Makefile get rid of special-casing the /sbin/loader on alpha 2009-01-03 11:45:54 -08:00
alpha_ksyms.c Generic semaphore implementation 2008-04-17 10:42:34 -04:00
asm-offsets.c CRED: Separate task security context from task_struct 2008-11-14 10:39:16 +11:00
binfmt_loader.c get rid of special-casing the /sbin/loader on alpha 2009-01-03 11:45:54 -08:00
console.c ALPHA: support graphics on non-zero PCI domains 2007-06-01 08:18:29 -07:00
core_apecs.c
core_cia.c
core_irongate.c Introduce flags for reserve_bootmem() 2008-02-07 08:42:25 -08:00
core_lca.c
core_marvel.c alpha: fix RTC on marvel 2009-01-15 16:39:40 -08:00
core_mcpcia.c alpha: fixes for specific machine types 2007-04-17 16:36:27 -07:00
core_polaris.c
core_t2.c alpha: fix compile failures with gcc-4.3 (bug #10438) 2008-06-20 16:46:10 -07:00
core_titan.c alpha: remove remaining __FUNCTION__ occurrences 2008-04-28 08:58:27 -07:00
core_tsunami.c alpha: remove remaining __FUNCTION__ occurrences 2008-04-28 08:58:27 -07:00
core_wildfire.c
entry.S do_pipe cleanup: drop its last user in arch/alpha/ 2009-03-27 14:43:58 -04:00
err_common.c PCI: Cleanup the includes of <linux/pci.h> 2007-05-02 19:02:35 -07:00
err_ev6.c PCI: Cleanup the includes of <linux/pci.h> 2007-05-02 19:02:35 -07:00
err_ev7.c alpha: build fixes 2007-12-17 19:28:16 -08:00
err_impl.h
err_marvel.c alpha: build fixes 2007-12-17 19:28:16 -08:00
err_titan.c alpha: build fixes 2007-12-17 19:28:16 -08:00
es1888.c
gct.c
head.S deal with alpha section warnings 2007-07-26 11:11:57 -07:00
init_task.c take init_fs to saner place 2008-12-31 18:07:42 -05:00
io.c
irq.c Merge branch 'core/percpu' into percpu-cpumask-x86-for-linus-2 2009-03-27 17:28:43 +01:00
irq_alpha.c sparseirq: use kstat_irqs_cpu on non-x86 architectures too 2009-01-12 20:01:12 +01:00
irq_i8259.c
irq_impl.h
irq_pyxis.c
irq_srm.c alpha: nautilus - fix compile failure with gcc-4.3 2009-01-15 16:39:40 -08:00
machvec_impl.h alpha: fix RTC on marvel 2009-01-15 16:39:40 -08:00
module.c alpha: handle kcalloc failure 2008-04-28 08:58:27 -07:00
ns87312.c
osf_sys.c do_pipe cleanup: drop its last user in arch/alpha/ 2009-03-27 14:43:58 -04:00
pci-noop.c alpha: compile fixes 2009-01-29 18:04:44 -08:00
pci.c PCI: alpha: use generic INTx swizzle from PCI core 2009-01-07 11:13:13 -08:00
pci_impl.h PCI: alpha: use generic INTx swizzle from PCI core 2009-01-07 11:13:13 -08:00
pci_iommu.c alpha: use iommu_num_pages function in IOMMU code 2008-10-16 11:21:33 -07:00
process.c cpumask: Use cpu_*_mask accessors code: alpha 2009-02-16 17:32:00 +10:30
proto.h alpha: fix RTC on marvel 2009-01-15 16:39:40 -08:00
ptrace.c alpha: convert to generic sys_ptrace 2007-10-16 09:43:03 -07:00
setup.c cpumask: alpha: Introduce cpumask_of_{node,pcibus} to replace {node,pcibus}_to_cpumask 2008-12-26 22:23:41 +10:30
signal.c alpha: use syscall wrappers 2009-01-29 18:04:44 -08:00
smc37c93x.c
smc37c669.c
smp.c cpumask: Use cpu_*_mask accessors code: alpha 2009-02-16 17:32:00 +10:30
srm_env.c proc 2/2: remove struct proc_dir_entry::owner 2009-03-31 01:14:44 +04:00
srmcons.c alpha: fix trivial section mismatch warnings 2007-07-16 09:05:37 -07:00
sys_alcor.c alpha: remove remaining __FUNCTION__ occurrences 2008-04-28 08:58:27 -07:00
sys_cabriolet.c
sys_dp264.c PCI: alpha: use generic pci_swizzle_interrupt_pin() 2009-01-07 11:12:53 -08:00
sys_eb64p.c
sys_eiger.c PCI: alpha: use generic pci_swizzle_interrupt_pin() 2009-01-07 11:12:53 -08:00
sys_jensen.c alpha: fix RTC on marvel 2009-01-15 16:39:40 -08:00
sys_marvel.c alpha: fix RTC on marvel 2009-01-15 16:39:40 -08:00
sys_miata.c PCI: alpha: use generic pci_swizzle_interrupt_pin() 2009-01-07 11:12:53 -08:00
sys_mikasa.c
sys_nautilus.c alpha: nautilus - fix hang on boot 2009-01-15 16:39:40 -08:00
sys_noritake.c PCI: alpha: use generic pci_swizzle_interrupt_pin() 2009-01-07 11:12:53 -08:00
sys_rawhide.c alpha: fixes for specific machine types 2007-04-17 16:36:27 -07:00
sys_ruffian.c PCI: alpha: use generic pci_swizzle_interrupt_pin() 2009-01-07 11:12:53 -08:00
sys_rx164.c
sys_sable.c PCI: alpha: use generic pci_swizzle_interrupt_pin() 2009-01-07 11:12:53 -08:00
sys_sio.c alpha: remove remaining __FUNCTION__ occurrences 2008-04-28 08:58:27 -07:00
sys_sx164.c alpha: more fixes for specific machine types 2007-04-17 16:36:27 -07:00
sys_takara.c
sys_titan.c cpumask: make irq_set_affinity() take a const struct cpumask 2008-12-13 21:20:26 +10:30
sys_wildfire.c
systbls.S alpha: use syscall wrappers 2009-01-29 18:04:44 -08:00
time.c alpha: fix RTC on marvel 2009-01-15 16:39:40 -08:00
traps.c false __cpuinit positives on alpha 2008-11-30 10:03:35 -08:00
vmlinux.lds.S Alpha Linux kernel fails with inconsistent kallsyms data 2008-07-04 10:40:09 -07:00