linux/arch/powerpc/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
..
vdso32 powerpc/mm: Introduce MMU features 2008-12-21 14:21:16 +11:00
vdso64 powerpc/mm: Introduce MMU features 2008-12-21 14:21:16 +11:00
.gitignore powerpc: Ignore generated vmlinux.lds in git 2008-10-07 14:26:18 +11:00
align.c powerpc: Fix load/store float double alignment handler 2009-02-26 14:02:53 +11:00
asm-offsets.c Merge commit 'origin/master' into next 2009-03-30 14:04:53 +11:00
audit.c [PATCH] audit signal recipients 2007-05-11 05:38:25 -04:00
btext.c powerpc: Use the common ascii hex helpers 2008-08-20 16:34:57 +10:00
cacheinfo.c powerpc/cacheinfo: Rename cache_dir per-cpu variable 2009-01-13 14:48:02 +11:00
cacheinfo.h powerpc: Rewrite sysfs processor cache info code 2009-01-08 16:25:10 +11:00
clock.c [POWERPC] clk.h interface for platforms 2007-10-03 09:11:56 +10:00
compat_audit.c [PATCH] add SIGNAL syscall class (v3) 2007-05-11 05:38:25 -04:00
cpu_setup_6xx.S powerpc/mm: e300c2/c3/c4 TLB errata workaround 2009-03-24 13:47:32 +11:00
cpu_setup_44x.S AMCC PPC 460SX redwood SoC platform initial framework 2009-02-14 14:41:29 -05:00
cpu_setup_fsl_booke.S powerpc/fsl-booke: Cleanup init/exception setup to be runtime 2009-01-28 18:16:50 -06:00
cpu_setup_pa6t.S [POWERPC] pasemi: Enable one more hid bit 2007-04-24 21:31:49 +10:00
cpu_setup_ppc970.S powerpc: Use LOAD_REG_IMMEDIATE only for constants on 64-bit 2008-09-15 11:08:35 -07:00
cputable.c powerpc/mm: e300c2/c3/c4 TLB errata workaround 2009-03-24 13:47:32 +11:00
crash_dump.c powerpc: Unify opcode definitions and support 2009-02-23 10:48:56 +11:00
crash.c powerpc: Increase CRASH_HANDLER_MAX 2008-06-30 22:31:00 +10:00
dbell.c powerpc: Add support for using doorbells for SMP IPI 2009-02-23 15:53:03 +11:00
dma-iommu.c powerpc: Change u64/s64 to a long long integer type 2009-01-13 14:47:59 +11:00
dma.c powerpc: Add sync_*_for_* to dma_ops 2008-12-03 20:46:36 +11:00
entry_32.S powerpc: Unify opcode definitions and support 2009-02-23 10:48:56 +11:00
entry_64.S powerpc64, ftrace: save toc only on modules for function graph 2009-02-23 10:48:54 +11:00
firmware.c
fpu.S powerpc: Add VSX context save/restore, ptrace and signal support 2008-07-01 11:28:50 +10:00
ftrace.c powerpc: Unify opcode definitions and support 2009-02-23 10:48:56 +11:00
head_8xx.S [POWERPC] 8xx: fix swap 2008-03-07 08:42:28 -06:00
head_32.S powerpc/mm: e300c2/c3/c4 TLB errata workaround 2009-03-24 13:47:32 +11:00
head_40x.S [POWERPC] 40x/Book-E: Save/restore volatile exception registers 2008-06-02 14:56:35 -05:00
head_44x.S powerpc/44x: Support 16K/64K base page sizes on 44x 2008-12-29 09:53:25 +11:00
head_64.S powerpc/kconfig: Kill PPC_MULTIPLATFORM 2009-03-11 17:11:35 +11:00
head_booke.h Merge commit 'jwb/next' into next 2009-03-03 13:30:03 +11:00
head_fsl_booke.S powerpc: Add support for using doorbells for SMP IPI 2009-02-23 15:53:03 +11:00
ibmebus.c powerpc: struct device - replace bus_id with dev_name(), dev_set_name() 2008-12-16 15:53:38 +11:00
idle_6xx.S powerpc: Fix for getting CPU number in power_save_ppc32_restore() 2008-09-03 20:53:47 +10:00
idle_e500.S powerpc: Fix for getting CPU number in power_save_ppc32_restore() 2008-09-03 20:53:47 +10:00
idle_power4.S [POWERPC] powermac: Support G5 CPU hotplug 2007-05-07 20:31:13 +10:00
idle.c powerpc: ftrace, do not latency trace idle 2008-11-20 10:51:15 -08:00
init_task.c take init_fs to saner place 2008-12-31 18:07:42 -05:00
io.c ftrace: support for PowerPC 2008-05-23 22:43:11 +02:00
iomap.c [POWERPC] Add 64-bit resources support to pci_iomap 2007-09-20 07:36:52 -05:00
iommu.c powerpc: Change u64/s64 to a long long integer type 2009-01-13 14:47:59 +11:00
irq.c Merge commit 'origin/master' into next 2009-03-30 14:04:53 +11:00
isa-bridge.c [POWERPC] Remove leftover printk in isa-bridge.c 2008-05-09 20:22:59 +10:00
kgdb.c kgdb, x86, arm, mips, powerpc: ignore user space single stepping 2008-09-26 10:36:41 -05:00
kprobes.c Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial 2009-01-07 11:31:52 -08:00
l2cr_6xx.S Convert files to UTF-8 and some cleanups 2007-10-19 23:21:04 +02:00
legacy_serial.c powerpc/powermac: Fixup default serial port device for pmac_zilog 2008-07-28 16:30:53 +10:00
lparcfg.c powerpc: Change u64/s64 to a long long integer type 2009-01-13 14:47:59 +11:00
machine_kexec_32.c kexec jump: rename KEXEC_CONTROL_CODE_SIZE to KEXEC_CONTROL_PAGE_SIZE 2008-08-15 08:35:42 -07:00
machine_kexec_64.c powerpc/32: Setup OF properties for kdump 2008-12-23 15:13:29 +11:00
machine_kexec.c powerpc/kexec: Check crash_base for relocatable kernel 2009-01-13 14:47:59 +11:00
Makefile powerpc/kconfig: Kill PPC_MULTIPLATFORM 2009-03-11 17:11:35 +11:00
misc_32.S powerpc/44x: Support 16K/64K base page sizes on 44x 2008-12-29 09:53:25 +11:00
misc_64.S powerpc: Kexec exit should not use magic numbers 2008-10-31 16:11:44 +11:00
misc.S powerpc: Use LOAD_REG_IMMEDIATE only for constants on 64-bit 2008-09-15 11:08:35 -07:00
module_32.c powerpc/ppc32: ftrace, dynamic ftrace to handle modules 2008-11-20 10:52:53 -08:00
module_64.c powerpc: Unify opcode definitions and support 2009-02-23 10:48:56 +11:00
module.c powerpc/mm: Introduce MMU features 2008-12-21 14:21:16 +11:00
msi.c [POWERPC] Fix sparse warnings in arch/powerpc/kernel 2008-05-14 22:31:59 +10:00
nvram_64.c [POWERPC] pseries: Eliminate global error_log_cnt variable 2007-08-17 11:01:52 +10:00
of_device.c powerpc: struct device - replace bus_id with dev_name(), dev_set_name() 2008-12-16 15:53:38 +11:00
of_platform.c powerpc: Add missing reference to coherent_dma_mask 2008-07-08 21:06:35 -07:00
paca.c powerpc: Update page-in counter for CMM 2008-11-05 22:08:28 +11:00
pci_32.c powerpc/pci: Fix PCI<->OF matching of old style multifunc devices 2009-02-23 10:48:57 +11:00
pci_64.c powerpc/pci: Move hose_list and pci_address_to_pio to pci-common 2009-02-11 16:00:07 +11:00
pci_dn.c [POWERPC] iSeries: eliminate pci_dn bussubno 2008-01-17 14:57:05 +11:00
pci-common.c powerpc/pci: Default to dma_direct_ops for pci dma_ops 2009-03-24 13:47:30 +11:00
pmc.c [POWERPC] Made FSL Book-E PMC support more generic 2008-02-05 23:34:14 -06:00
ppc32.h powerpc: Add VSX context save/restore, ptrace and signal support 2008-07-01 11:28:50 +10:00
ppc_ksyms.c powerpc: Export cacheable_memzero as its now used in a driver 2009-01-08 16:25:17 +11:00
ppc_save_regs.S powerpc: Prepare xmon_save_regs for use with kdump 2008-12-23 15:13:28 +11:00
proc_ppc64.c powerpc: use non-racy method for proc entries creation 2008-04-29 08:06:22 -07:00
process.c powerpc: Randomise PIEs 2009-02-23 15:53:21 +11:00
prom_init_check.sh powerpc: Print linux_banner in prom_init 2009-03-11 17:11:33 +11:00
prom_init.c powerpc: Fix prom_init on 32-bit OF machines 2009-03-24 13:43:35 +11:00
prom_parse.c PCI: powerpc: use generic pci_swizzle_interrupt_pin() 2009-01-07 11:12:52 -08:00
prom.c powerpc: Allow debugging of LMBs with lmb=debug 2009-02-11 13:38:00 +11:00
ptrace32.c powerpc: Correctly hookup PTRACE_GET/SETVSRREGS for 32 bit processes 2008-07-30 15:26:54 +10:00
ptrace.c powerpc: Don't use the wrong thread_struct for ptrace get/set VSX regs 2008-07-30 15:26:54 +10:00
reloc_64.S powerpc: Make the 64-bit kernel as a position-independent executable 2008-09-15 11:08:38 -07:00
rtas_flash.c proc 2/2: remove struct proc_dir_entry::owner 2009-03-31 01:14:44 +04:00
rtas_pci.c powerpc/pci: Fix various pseries PCI hotplug issues 2008-11-06 09:31:52 +11:00
rtas-proc.c [POWERPC] Fix sparse warnings in arch/powerpc/kernel 2008-05-14 22:31:59 +10:00
rtas-rtc.c
rtas.c powerpc/pseries: Fix partition migration hang under load 2009-02-23 15:53:04 +11:00
setup_32.c powerpc/32: Wire up the trampoline code for kdump 2008-12-23 15:13:29 +11:00
setup_64.c powerpc/mm: Introduce early_init_mmu() on 64-bit 2009-03-24 13:47:34 +11:00
setup-common.c powerpc: setup default archdata for {of_}platform via bus_register_notifier 2009-03-24 13:47:30 +11:00
setup.h
signal_32.c powerpc: Sanitize stack pointer in signal handling code 2009-03-27 16:58:24 +11:00
signal_64.c powerpc: Sanitize stack pointer in signal handling code 2009-03-27 16:58:24 +11:00
signal.c powerpc: Sanitize stack pointer in signal handling code 2009-03-27 16:58:24 +11:00
signal.h powerpc: Sanitize stack pointer in signal handling code 2009-03-27 16:58:24 +11:00
smp-tbsync.c powerpc: Silence software timebase sync 2008-11-05 22:08:28 +11:00
smp.c Merge branch 'cpus4096-for-linus-2' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-01-02 11:44:09 -08:00
softemu8xx.c Remove asm/a.out.h files for all architectures without a.out support. 2008-09-06 19:30:24 +01:00
stacktrace.c powerpc: Removed duplicated include in stacktrace.c 2008-07-28 16:30:47 +10:00
suspend.c PAGE_ALIGN(): correctly handle 64-bit values on 32-bit architectures 2008-07-24 10:47:21 -07:00
swsusp_32.S powerpc/mm: Introduce MMU features 2008-12-21 14:21:16 +11:00
swsusp_64.c [POWERPC] powermac: Suspend to disk on G5 2007-05-07 20:31:14 +10:00
swsusp_asm64.S powerpc: Fix 64-bit hibernation with 64k pages 2008-10-07 14:26:20 +11:00
swsusp.c powerpc/mm: Split mmu_context handling 2008-12-21 14:21:15 +11:00
sys_ppc32.c compat: generic compat get/settimeofday 2008-10-16 11:21:33 -07:00
syscalls.c powerpc/mm: Add Strong Access Ordering support 2008-07-09 16:30:45 +10:00
sysfs.c powerpc: Fix bugs introduced by sysfs changes 2009-03-27 16:58:24 +11:00
systbl_chk.c [POWERPC] Fix a couple of copyright symbols 2008-01-25 22:52:50 +11:00
systbl_chk.sh [POWERPC] Fix a couple of copyright symbols 2008-01-25 22:52:50 +11:00
systbl.S [POWERPC] Align the sys_call_table 2007-10-11 14:36:47 +10:00
tau_6xx.c on_each_cpu(): kill unused 'retry' parameter 2008-06-26 11:24:38 +02:00
time.c Merge branch 'cputime' of git://git390.osdl.marist.edu/pub/scm/linux-2.6 2009-01-03 11:56:24 -08:00
traps.c powerpc: Add support for using doorbells for SMP IPI 2009-02-23 15:53:03 +11:00
udbg_16550.c powerpc/udbg: Fix lost byte during console handover; change LFCR to CRLF 2009-03-11 17:11:34 +11:00
udbg.c powerpc/udbg: Fix lost byte during console handover; change LFCR to CRLF 2009-03-11 17:11:34 +11:00
vdso.c Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc 2008-12-28 16:54:33 -08:00
vecemu.c
vector.S
vio.c powerpc/pseries: Correct VIO bus accounting problem in CMO env. 2009-01-28 17:15:52 +11:00
vmlinux.lds.S Merge commit 'origin/master' into next 2009-03-30 14:04:53 +11:00