Revision 74545f63890e38520eb4d1dbedcadaa9c0dbc824 authored by David Carrillo-Cisneros on 23 December 2016, 01:17:40 UTC, committed by Ingo Molnar on 05 January 2017, 08:13:55 UTC
The conversion of Intel PMU drivers into modules did not include reference
counting. The machine will crash when attempting to  access deleted code
if an event from a module PMU is started and the module removed before the
event is destroyed.

i.e. this crashes the machine:

	$ insmod intel-rapl-perf.ko
	$ perf stat -e power/energy-cores/ -C 0 &
	$ rmmod intel-rapl-perf.ko

Set THIS_MODULE to pmu->module in Intel module PMUs so that generic code
can handle reference counting and deny rmmod while an event still exists.

Signed-off-by: David Carrillo-Cisneros <davidcc@google.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Borislav Petkov <bp@suse.de>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Kan Liang <kan.liang@intel.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Paul Turner <pjt@google.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com>
Cc: Stephane Eranian <eranian@google.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: http://lkml.kernel.org/r/1482455860-116269-1-git-send-email-davidcc@google.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
1 parent 4e06d4f
History
File Mode Size
Kconfig -rw-r--r-- 1.6 KB
Makefile -rw-r--r-- 451 bytes
acl.c -rw-r--r-- 3.5 KB
file.c -rw-r--r-- 4.4 KB
inode.c -rw-r--r-- 10.2 KB
ioctl.c -rw-r--r-- 3.9 KB
jfs_acl.h -rw-r--r-- 1.2 KB
jfs_btree.h -rw-r--r-- 4.0 KB
jfs_debug.c -rw-r--r-- 2.7 KB
jfs_debug.h -rw-r--r-- 3.4 KB
jfs_dinode.h -rw-r--r-- 5.6 KB
jfs_discard.c -rw-r--r-- 3.1 KB
jfs_discard.h -rw-r--r-- 1.0 KB
jfs_dmap.c -rw-r--r-- 111.6 KB
jfs_dmap.h -rw-r--r-- 11.2 KB
jfs_dtree.c -rw-r--r-- 100.5 KB
jfs_dtree.h -rw-r--r-- 6.6 KB
jfs_extent.c -rw-r--r-- 17.3 KB
jfs_extent.h -rw-r--r-- 1.3 KB
jfs_filsys.h -rw-r--r-- 8.9 KB
jfs_imap.c -rw-r--r-- 84.1 KB
jfs_imap.h -rw-r--r-- 6.4 KB
jfs_incore.h -rw-r--r-- 7.4 KB
jfs_inode.c -rw-r--r-- 4.1 KB
jfs_inode.h -rw-r--r-- 2.5 KB
jfs_lock.h -rw-r--r-- 1.5 KB
jfs_logmgr.c -rw-r--r-- 59.2 KB
jfs_logmgr.h -rw-r--r-- 14.7 KB
jfs_metapage.c -rw-r--r-- 19.3 KB
jfs_metapage.h -rw-r--r-- 4.2 KB
jfs_mount.c -rw-r--r-- 12.7 KB
jfs_superblock.h -rw-r--r-- 4.1 KB
jfs_txnmgr.c -rw-r--r-- 75.2 KB
jfs_txnmgr.h -rw-r--r-- 8.2 KB
jfs_types.h -rw-r--r-- 4.3 KB
jfs_umount.c -rw-r--r-- 4.0 KB
jfs_unicode.c -rw-r--r-- 3.3 KB
jfs_unicode.h -rw-r--r-- 3.7 KB
jfs_uniupr.c -rw-r--r-- 7.5 KB
jfs_xattr.h -rw-r--r-- 2.5 KB
jfs_xtree.c -rw-r--r-- 92.1 KB
jfs_xtree.h -rw-r--r-- 3.8 KB
namei.c -rw-r--r-- 37.3 KB
resize.c -rw-r--r-- 14.8 KB
super.c -rw-r--r-- 23.3 KB
symlink.c -rw-r--r-- 1.2 KB
xattr.c -rw-r--r-- 25.7 KB

back to top