Blob Blame Raw
From 9d9e0b94573e668bc242a68f4007e67c3eef4ddf Mon Sep 17 00:00:00 2001
From: Laura Abbott <labbott@fedoraproject.org>
Date: Wed, 27 May 2015 16:27:32 -0700
Subject: [PATCH] abrt: Fixup component of select kernel backtraces

The kernel is a big project and certain parts of it
may need to be tracked under different components.
Fixup results related to those parts and assign a
different component.

Signed-off-by: Laura Abbott <labbott@fedoraproject.org>

- ported to Python 3
- removed a left over
- extended a log message

Signed-off-by: Jakub Filak <jfilak@redhat.com>
---
 .gitignore                                         |  1 +
 abrt.spec.in                                       |  1 +
 configure.ac                                       |  1 +
 examples/oops-32bit-graphics.right                 | 73 +++++++++++++++++
 examples/oops-32bit-graphics.test                  | 71 +++++++++++++++++
 examples/oops-noveau.right                         | 39 +++++++++
 examples/oops-noveau.test                          | 38 +++++++++
 src/plugins/Makefile.am                            |  3 +
 .../abrt-action-check-oops-for-alt-component.in    | 93 ++++++++++++++++++++++
 src/plugins/koops_event.conf                       |  3 +
 src/plugins/vmcore_event.conf                      |  1 +
 11 files changed, 324 insertions(+)
 create mode 100644 examples/oops-32bit-graphics.right
 create mode 100644 examples/oops-32bit-graphics.test
 create mode 100644 examples/oops-noveau.right
 create mode 100644 examples/oops-noveau.test
 create mode 100644 src/plugins/abrt-action-check-oops-for-alt-component.in

diff --git a/.gitignore b/.gitignore
index 66410cb..f5a93e4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -30,6 +30,7 @@ src/plugins/abrt-action-analyze-python
 src/plugins/abrt-action-analyze-vmcore
 src/plugins/abrt-action-analyze-xorg
 src/plugins/abrt-action-check-oops-for-hw-error
+src/plugins/abrt-action-check-oops-for-alt-component
 src/plugins/abrt-action-generate-backtrace
 src/plugins/abrt-action-install-debuginfo-to-abrt-cache
 src/plugins/abrt-action-perform-ccpp-analysis
diff --git a/abrt.spec.in b/abrt.spec.in
index 08eb93f..c73eaf6 100644
--- a/abrt.spec.in
+++ b/abrt.spec.in
@@ -975,6 +975,7 @@ killall abrt-dbus >/dev/null 2>&1 || :
 %endif
 %{_sbindir}/abrt-harvest-vmcore
 %{_bindir}/abrt-action-analyze-vmcore
+%{_bindir}/abrt-action-check-oops-for-alt-component
 %{_bindir}/abrt-action-check-oops-for-hw-error
 %{_mandir}/man1/abrt-harvest-vmcore.1*
 %{_mandir}/man5/abrt-vmcore.conf.5*
diff --git a/configure.ac b/configure.ac
index 2958807..b372e12 100644
--- a/configure.ac
+++ b/configure.ac
@@ -429,6 +429,7 @@ AC_CONFIG_FILES([
 	src/plugins/abrt-action-install-debuginfo
 	src/plugins/abrt-action-analyze-vmcore
 	src/plugins/abrt-action-check-oops-for-hw-error
+	src/plugins/abrt-action-check-oops-for-alt-component
 	src/python-problem/Makefile
 	src/python-problem/doc/Makefile
 	src/python-problem/tests/Makefile
diff --git a/examples/oops-32bit-graphics.right b/examples/oops-32bit-graphics.right
new file mode 100644
index 0000000..9891d02
--- /dev/null
+++ b/examples/oops-32bit-graphics.right
@@ -0,0 +1,73 @@
+abrt-dump-oops: Found oopses: 2
+abrt-dump-oops: Kernel is tainted 'GD'
+
+Version: 4.0.3-201.fc21.i686+PAE
+BUG: unable to handle kernel NULL pointer dereference at 00000008
+IP: [<f83f9f24>] radeon_audio_detect+0x54/0x140 [radeon]
+*pdpt = 0000000033260001 *pde = 0000000000000000 
+Oops: 0000 [#1] SMP 
+Modules linked in: radeon i2c_algo_bit drm_kms_helper e1000 ttm e100 drm ata_generic pata_acpi mii
+CPU: 0 PID: 222 Comm: plymouthd Not tainted 4.0.3-201.fc21.i686+PAE #1
+Hardware name: Dell Inc.                 Dimension 4700               /0M3918, BIOS A10 01/04/2006
+task: f325f640 ti: f33b8000 task.ti: f33b8000
+EIP: 0060:[<f83f9f24>] EFLAGS: 00010246 CPU: 0
+EIP is at radeon_audio_detect+0x54/0x140 [radeon]
+EAX: f6884240 EBX: f339dc00 ECX: 00000000 EDX: 00000000
+ESI: f3364320 EDI: f681c000 EBP: f33b9d14 ESP: f33b9d04
+ DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
+CR0: 80050033 CR2: 00000008 CR3: 33209000 CR4: 000007f0
+Stack:
+ f6884240 f339dc00 00000001 f7374800 f33b9d48 f833bb78 00000001 f33be600
+ 4ac04888 00000000 f33be600 f33b9d68 00000001 f681c000 f339dc30 f339dc00
+ 00000001 f33b9d94 f809287b f3259580 f775d500 f325f640 f33b9fec f33e0540
+Call Trace:
+ [<f833bb78>] radeon_dvi_detect+0x2d8/0x4b0 [radeon]
+ [<f809287b>] drm_helper_probe_single_connector_modes_merge_bits+0x27b/0x4a0 [drm_kms_helper]
+ [<c0a8abc0>] ? mutex_lock+0x10/0x30
+ [<f8092ab7>] drm_helper_probe_single_connector_modes+0x17/0x20 [drm_kms_helper]
+ [<f80c5f2d>] drm_mode_getconnector+0x28d/0x320 [drm]
+ [<f80c5ca0>] ? drm_mode_getcrtc+0xd0/0xd0 [drm]
+ [<f80b81a5>] drm_ioctl+0x1f5/0x560 [drm]
+ [<f80c5ca0>] ? drm_mode_getcrtc+0xd0/0xd0 [drm]
+ [<c05064a7>] ? do_seccomp+0x2d7/0x6e0
+ [<c07043a6>] ? _copy_to_user+0x26/0x30
+ [<c0823931>] ? __pm_runtime_resume+0x51/0x70
+ [<c04c64a7>] ? posix_get_boottime+0x7/0x30
+ [<f831503e>] radeon_drm_ioctl+0x3e/0x70 [radeon]
+ [<f8315000>] ? 0xf8315000
+ [<c05b69b2>] do_vfs_ioctl+0x322/0x540
+ [<c0690c42>] ? inode_has_perm.isra.32+0x32/0x50
+ [<c0690da7>] ? file_has_perm+0x97/0xa0
+ [<c06919cb>] ? selinux_file_ioctl+0x4b/0xe0
+ [<c05b6c30>] SyS_ioctl+0x60/0x90
+ [<c04c64a7>] ? posix_get_boottime+0x7/0x30
+ [<c04c64a7>] ? posix_get_boottime+0x7/0x30
+ [<c0a8d0df>] sysenter_do_call+0x12/0x12
+ [<c04c64a7>] ? posix_get_boottime+0x7/0x30
+ [<c04c64a7>] ? posix_get_boottime+0x7/0x30
+Code: 44 8b 93 0c 02 00 00 8b 02 8b b2 20 01 00 00 8b 78 18 8b 86 e4 00 00 00 85 c0 74 29 83 7d f0 01 74 35 8b 50 10 8b 8f 70 1c 00 00 <8b> 59 08 85 db 74 0c 89 f8 31 c9 ff d3 8b 86 e4 00 00 00 c7 40
+EIP: [<f83f9f24>] radeon_audio_detect+0x54/0x140 [radeon] SS:ESP 0068:f33b9d04
+CR2: 0000000000000008
+
+Version: 4.0.3-201.fc21.i686+PAE
+WARNING: CPU: 1 PID: 263 at lib/list_debug.c:62 __list_del_entry+0xf4/0x100()
+list_del corruption. next->prev should be f3215564, but was   (null)
+Modules linked in: radeon i2c_algo_bit drm_kms_helper e1000 ttm e100 drm ata_generic pata_acpi mii
+CPU: 1 PID: 263 Comm: plymouth Tainted: G      D         4.0.3-201.fc21.i686+PAE #1
+Hardware name: Dell Inc.                 Dimension 4700               /0M3918, BIOS A10 01/04/2006
+ c0d3c9c7 b9171629 00000000 f3337eb4 c0a878b6 f3337ef8 f3337ee8 c0466c1b
+ c0c929c4 f3337f18 00000107 c0c91c9f 0000003e c0712794 0000003e c0712794
+ 00000000 00000001 f32150a0 f3337f04 c0466c8e 00000009 f3337ef8 c0c929c4
+Call Trace:
+ [<c0a878b6>] dump_stack+0x41/0x52
+ [<c0466c1b>] warn_slowpath_common+0x8b/0xc0
+ [<c0712794>] ? __list_del_entry+0xf4/0x100
+ [<c0712794>] ? __list_del_entry+0xf4/0x100
+ [<c0466c8e>] warn_slowpath_fmt+0x3e/0x60
+ [<c0712794>] __list_del_entry+0xf4/0x100
+ [<c04e8a63>] cgroup_exit+0x33/0x100
+ [<c0469208>] do_exit+0x2b8/0x950
+ [<c0457a72>] ? __do_page_fault+0x252/0x4a0
+ [<c0469917>] do_group_exit+0x37/0xa0
+ [<c0469996>] SyS_exit_group+0x16/0x20
+ [<c0a8d0df>] sysenter_do_call+0x12/0x12
diff --git a/examples/oops-32bit-graphics.test b/examples/oops-32bit-graphics.test
new file mode 100644
index 0000000..da3d716
--- /dev/null
+++ b/examples/oops-32bit-graphics.test
@@ -0,0 +1,71 @@
+BUG: unable to handle kernel NULL pointer dereference at 00000008
+IP: [<f83f9f24>] radeon_audio_detect+0x54/0x140 [radeon]
+*pdpt = 0000000033260001 *pde = 0000000000000000 
+Oops: 0000 [#1] SMP 
+Modules linked in: radeon i2c_algo_bit drm_kms_helper e1000 ttm e100 drm ata_generic pata_acpi mii
+CPU: 0 PID: 222 Comm: plymouthd Not tainted 4.0.3-201.fc21.i686+PAE #1
+Hardware name: Dell Inc.                 Dimension 4700               /0M3918, BIOS A10 01/04/2006
+task: f325f640 ti: f33b8000 task.ti: f33b8000
+EIP: 0060:[<f83f9f24>] EFLAGS: 00010246 CPU: 0
+EIP is at radeon_audio_detect+0x54/0x140 [radeon]
+EAX: f6884240 EBX: f339dc00 ECX: 00000000 EDX: 00000000
+ESI: f3364320 EDI: f681c000 EBP: f33b9d14 ESP: f33b9d04
+ DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
+CR0: 80050033 CR2: 00000008 CR3: 33209000 CR4: 000007f0
+Stack:
+ f6884240 f339dc00 00000001 f7374800 f33b9d48 f833bb78 00000001 f33be600
+ 4ac04888 00000000 f33be600 f33b9d68 00000001 f681c000 f339dc30 f339dc00
+ 00000001 f33b9d94 f809287b f3259580 f775d500 f325f640 f33b9fec f33e0540
+Call Trace:
+ [<f833bb78>] radeon_dvi_detect+0x2d8/0x4b0 [radeon]
+ [<f809287b>] drm_helper_probe_single_connector_modes_merge_bits+0x27b/0x4a0 [drm_kms_helper]
+ [<c0a8abc0>] ? mutex_lock+0x10/0x30
+ [<f8092ab7>] drm_helper_probe_single_connector_modes+0x17/0x20 [drm_kms_helper]
+ [<f80c5f2d>] drm_mode_getconnector+0x28d/0x320 [drm]
+ [<f80c5ca0>] ? drm_mode_getcrtc+0xd0/0xd0 [drm]
+ [<f80b81a5>] drm_ioctl+0x1f5/0x560 [drm]
+ [<f80c5ca0>] ? drm_mode_getcrtc+0xd0/0xd0 [drm]
+ [<c05064a7>] ? do_seccomp+0x2d7/0x6e0
+ [<c07043a6>] ? _copy_to_user+0x26/0x30
+ [<c0823931>] ? __pm_runtime_resume+0x51/0x70
+ [<c04c64a7>] ? posix_get_boottime+0x7/0x30
+ [<f831503e>] radeon_drm_ioctl+0x3e/0x70 [radeon]
+ [<f8315000>] ? 0xf8315000
+ [<c05b69b2>] do_vfs_ioctl+0x322/0x540
+ [<c0690c42>] ? inode_has_perm.isra.32+0x32/0x50
+ [<c0690da7>] ? file_has_perm+0x97/0xa0
+ [<c06919cb>] ? selinux_file_ioctl+0x4b/0xe0
+ [<c05b6c30>] SyS_ioctl+0x60/0x90
+ [<c04c64a7>] ? posix_get_boottime+0x7/0x30
+ [<c04c64a7>] ? posix_get_boottime+0x7/0x30
+ [<c0a8d0df>] sysenter_do_call+0x12/0x12
+ [<c04c64a7>] ? posix_get_boottime+0x7/0x30
+ [<c04c64a7>] ? posix_get_boottime+0x7/0x30
+Code: 44 8b 93 0c 02 00 00 8b 02 8b b2 20 01 00 00 8b 78 18 8b 86 e4 00 00 00 85 c0 74 29 83 7d f0 01 74 35 8b 50 10 8b 8f 70 1c 00 00 <8b> 59 08 85 db 74 0c 89 f8 31 c9 ff d3 8b 86 e4 00 00 00 c7 40
+EIP: [<f83f9f24>] radeon_audio_detect+0x54/0x140 [radeon] SS:ESP 0068:f33b9d04
+CR2: 0000000000000008
+---[ end trace c37768228d821e9f ]---
+------------[ cut here ]------------
+WARNING: CPU: 1 PID: 263 at lib/list_debug.c:62 __list_del_entry+0xf4/0x100()
+list_del corruption. next->prev should be f3215564, but was   (null)
+Modules linked in: radeon i2c_algo_bit drm_kms_helper e1000 ttm e100 drm ata_generic pata_acpi mii
+CPU: 1 PID: 263 Comm: plymouth Tainted: G      D         4.0.3-201.fc21.i686+PAE #1
+Hardware name: Dell Inc.                 Dimension 4700               /0M3918, BIOS A10 01/04/2006
+ c0d3c9c7 b9171629 00000000 f3337eb4 c0a878b6 f3337ef8 f3337ee8 c0466c1b
+ c0c929c4 f3337f18 00000107 c0c91c9f 0000003e c0712794 0000003e c0712794
+ 00000000 00000001 f32150a0 f3337f04 c0466c8e 00000009 f3337ef8 c0c929c4
+Call Trace:
+ [<c0a878b6>] dump_stack+0x41/0x52
+ [<c0466c1b>] warn_slowpath_common+0x8b/0xc0
+ [<c0712794>] ? __list_del_entry+0xf4/0x100
+ [<c0712794>] ? __list_del_entry+0xf4/0x100
+ [<c0466c8e>] warn_slowpath_fmt+0x3e/0x60
+ [<c0712794>] __list_del_entry+0xf4/0x100
+ [<c04e8a63>] cgroup_exit+0x33/0x100
+ [<c0469208>] do_exit+0x2b8/0x950
+ [<c0457a72>] ? __do_page_fault+0x252/0x4a0
+ [<c0469917>] do_group_exit+0x37/0xa0
+ [<c0469996>] SyS_exit_group+0x16/0x20
+ [<c0a8d0df>] sysenter_do_call+0x12/0x12
+---[ end trace c37768228d821ea0 ]---
+
diff --git a/examples/oops-noveau.right b/examples/oops-noveau.right
new file mode 100644
index 0000000..d6c87a2
--- /dev/null
+++ b/examples/oops-noveau.right
@@ -0,0 +1,39 @@
+abrt-dump-oops: Found oopses: 1
+
+Version: 3.19.5-200.fc21.x86_64
+WARNING: CPU: 0 PID: 16684 at arch/x86/mm/ioremap.c:197 __ioremap_caller+0x2aa/0x3a0()
+Info: mapping multiple BARs. Your kernel is fine.
+Modules linked in:
+ bnep bluetooth rfkill xt_CHECKSUM iptable_mangle ipt_MASQUERADE nf_nat_masquerade_ipv4 iptable_nat nf_nat_ipv4 nf_nat nf_conntrack_ipv4 nf_defrag_ipv4 xt_conntrack nf_conntrack bridge stp llc snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic snd_hda_intel snd_hda_controller snd_hda_codec fuse snd_hwdep snd_seq snd_seq_device snd_pcm snd_timer edac_core usblp kvm_amd snd serio_raw kvm k10temp edac_mce_amd sp5100_tco i2c_piix4 shpchp soundcore acpi_cpufreq nfsd auth_rpcgss nfs_acl lockd grace sunrpc ata_generic pata_acpi nouveau video mxm_wmi wmi i2c_algo_bit drm_kms_helper ttm drm pata_atiixp r8169 mii
+CPU: 0 PID: 16684 Comm: firefox Not tainted 3.19.5-200.fc21.x86_64 #1
+Hardware name: Gigabyte Technology Co., Ltd. To be filled by O.E.M./970A-DS3P, BIOS F1 04/08/2013
+ 0000000000000000 0000000087b0a5f7 ffff8802e1b9b768 ffffffff8176ead5
+ 0000000000000000 ffff8802e1b9b7c0 ffff8802e1b9b7a8 ffffffff8109bc1a
+ ffff8802e1b9b7d8 ffffc9001c180000 00000000d206d000 0000000000100000
+Call Trace:
+ [<ffffffff8176ead5>] dump_stack+0x45/0x57
+ [<ffffffff8109bc1a>] warn_slowpath_common+0x8a/0xc0
+ [<ffffffff8109bca5>] warn_slowpath_fmt+0x55/0x70
+ [<ffffffff810643aa>] __ioremap_caller+0x2aa/0x3a0
+ [<ffffffff810644b7>] ioremap_nocache+0x17/0x20
+ [<ffffffffa00e8036>] nouveau_barobj_ctor+0xd6/0x110 [nouveau]
+ [<ffffffffa00e69d1>] nouveau_object_ctor+0x41/0xf0 [nouveau]
+ [<ffffffffa00e80af>] nouveau_bar_alloc+0x3f/0x70 [nouveau]
+ [<ffffffffa00e3795>] nouveau_gpuobj_create_+0x2a5/0x2f0 [nouveau]
+ [<ffffffffa00e382c>] _nouveau_gpuobj_ctor+0x4c/0x70 [nouveau]
+ [<ffffffffa00e69d1>] nouveau_object_ctor+0x41/0xf0 [nouveau]
+ [<ffffffffa00e38ab>] nouveau_gpuobj_new+0x5b/0x80 [nouveau]
+ [<ffffffffa0132173>] nouveau_vm_get+0x183/0x2f0 [nouveau]
+ [<ffffffff811dd04a>] ? map_vm_area+0x2a/0x40
+ [<ffffffffa0182744>] nouveau_bo_vma_add+0x34/0x90 [nouveau]
+ [<ffffffffa017aee9>] nouveau_channel_prep+0x269/0x3b0 [nouveau]
+ [<ffffffffa017b0b3>] nouveau_channel_new+0x83/0x800 [nouveau]
+ [<ffffffffa01782fa>] ? nvif_device_init+0x3a/0x50 [nouveau]
+ [<ffffffff811fbba6>] ? kmem_cache_alloc_trace+0x1f6/0x230
+ [<ffffffffa0185770>] nouveau_abi16_ioctl_channel_alloc+0x120/0x3a0 [nouveau]
+ [<ffffffffa0031a9f>] drm_ioctl+0x1df/0x680 [drm]
+ [<ffffffff811cf196>] ? handle_mm_fault+0x8a6/0xff0
+ [<ffffffffa0179222>] nouveau_drm_ioctl+0x72/0xd0 [nouveau]
+ [<ffffffff8122e318>] do_vfs_ioctl+0x2f8/0x500
+ [<ffffffff8122e5a1>] SyS_ioctl+0x81/0xa0
+ [<ffffffff817752c9>] system_call_fastpath+0x12/0x17
diff --git a/examples/oops-noveau.test b/examples/oops-noveau.test
new file mode 100644
index 0000000..8678a7d
--- /dev/null
+++ b/examples/oops-noveau.test
@@ -0,0 +1,38 @@
+------------[ cut here ]------------
+WARNING: CPU: 0 PID: 16684 at arch/x86/mm/ioremap.c:197 __ioremap_caller+0x2aa/0x3a0()
+Info: mapping multiple BARs. Your kernel is fine.
+Modules linked in:
+ bnep bluetooth rfkill xt_CHECKSUM iptable_mangle ipt_MASQUERADE nf_nat_masquerade_ipv4 iptable_nat nf_nat_ipv4 nf_nat nf_conntrack_ipv4 nf_defrag_ipv4 xt_conntrack nf_conntrack bridge stp llc snd_hda_codec_hdmi snd_hda_codec_realtek snd_hda_codec_generic snd_hda_intel snd_hda_controller snd_hda_codec fuse snd_hwdep snd_seq snd_seq_device snd_pcm snd_timer edac_core usblp kvm_amd snd serio_raw kvm k10temp edac_mce_amd sp5100_tco i2c_piix4 shpchp soundcore acpi_cpufreq nfsd auth_rpcgss nfs_acl lockd grace sunrpc ata_generic pata_acpi nouveau video mxm_wmi wmi i2c_algo_bit drm_kms_helper ttm drm pata_atiixp r8169 mii
+CPU: 0 PID: 16684 Comm: firefox Not tainted 3.19.5-200.fc21.x86_64 #1
+Hardware name: Gigabyte Technology Co., Ltd. To be filled by O.E.M./970A-DS3P, BIOS F1 04/08/2013
+ 0000000000000000 0000000087b0a5f7 ffff8802e1b9b768 ffffffff8176ead5
+ 0000000000000000 ffff8802e1b9b7c0 ffff8802e1b9b7a8 ffffffff8109bc1a
+ ffff8802e1b9b7d8 ffffc9001c180000 00000000d206d000 0000000000100000
+Call Trace:
+ [<ffffffff8176ead5>] dump_stack+0x45/0x57
+ [<ffffffff8109bc1a>] warn_slowpath_common+0x8a/0xc0
+ [<ffffffff8109bca5>] warn_slowpath_fmt+0x55/0x70
+ [<ffffffff810643aa>] __ioremap_caller+0x2aa/0x3a0
+ [<ffffffff810644b7>] ioremap_nocache+0x17/0x20
+ [<ffffffffa00e8036>] nouveau_barobj_ctor+0xd6/0x110 [nouveau]
+ [<ffffffffa00e69d1>] nouveau_object_ctor+0x41/0xf0 [nouveau]
+ [<ffffffffa00e80af>] nouveau_bar_alloc+0x3f/0x70 [nouveau]
+ [<ffffffffa00e3795>] nouveau_gpuobj_create_+0x2a5/0x2f0 [nouveau]
+ [<ffffffffa00e382c>] _nouveau_gpuobj_ctor+0x4c/0x70 [nouveau]
+ [<ffffffffa00e69d1>] nouveau_object_ctor+0x41/0xf0 [nouveau]
+ [<ffffffffa00e38ab>] nouveau_gpuobj_new+0x5b/0x80 [nouveau]
+ [<ffffffffa0132173>] nouveau_vm_get+0x183/0x2f0 [nouveau]
+ [<ffffffff811dd04a>] ? map_vm_area+0x2a/0x40
+ [<ffffffffa0182744>] nouveau_bo_vma_add+0x34/0x90 [nouveau]
+ [<ffffffffa017aee9>] nouveau_channel_prep+0x269/0x3b0 [nouveau]
+ [<ffffffffa017b0b3>] nouveau_channel_new+0x83/0x800 [nouveau]
+ [<ffffffffa01782fa>] ? nvif_device_init+0x3a/0x50 [nouveau]
+ [<ffffffff811fbba6>] ? kmem_cache_alloc_trace+0x1f6/0x230
+ [<ffffffffa0185770>] nouveau_abi16_ioctl_channel_alloc+0x120/0x3a0 [nouveau]
+ [<ffffffffa0031a9f>] drm_ioctl+0x1df/0x680 [drm]
+ [<ffffffff811cf196>] ? handle_mm_fault+0x8a6/0xff0
+ [<ffffffffa0179222>] nouveau_drm_ioctl+0x72/0xd0 [nouveau]
+ [<ffffffff8122e318>] do_vfs_ioctl+0x2f8/0x500
+ [<ffffffff8122e5a1>] SyS_ioctl+0x81/0xa0
+ [<ffffffff817752c9>] system_call_fastpath+0x12/0x17
+---[ end trace d72a6ef9c44bed66 ]---
diff --git a/src/plugins/Makefile.am b/src/plugins/Makefile.am
index d90bb76..aa426ff 100644
--- a/src/plugins/Makefile.am
+++ b/src/plugins/Makefile.am
@@ -74,6 +74,7 @@ PYTHON_FILES = \
     abrt-action-list-dsos \
     abrt-action-analyze-core \
     abrt-action-analyze-vulnerability \
+    abrt-action-check-oops-for-alt-component.in \
     abrt-action-check-oops-for-hw-error.in \
     abrt-action-perform-ccpp-analysis.in \
     abrt-action-notify
@@ -101,6 +102,7 @@ EXTRA_DIST = \
 if BUILD_ADDON_VMCORE
 bin_SCRIPTS += \
     abrt-action-analyze-vmcore \
+    abrt-action-check-oops-for-alt-component \
     abrt-action-check-oops-for-hw-error
 
 dist_events_DATA += \
@@ -115,6 +117,7 @@ PYTHON_FILES += \
 EXTRA_DIST += \
     analyze_VMcore.xml.in \
     abrt-action-analyze-vmcore \
+    abrt-action-check-oops-for-alt-component \
     abrt-action-check-oops-for-hw-error
 endif
 
diff --git a/src/plugins/abrt-action-check-oops-for-alt-component.in b/src/plugins/abrt-action-check-oops-for-alt-component.in
new file mode 100644
index 0000000..3dce42e
--- /dev/null
+++ b/src/plugins/abrt-action-check-oops-for-alt-component.in
@@ -0,0 +1,93 @@
+#!/usr/bin/python3 -u
+
+import sys
+import os
+import locale
+import gettext
+import hashlib
+import re
+
+GETTEXT_PROGNAME = "abrt"
+
+_ = gettext.lgettext
+
+tags = [
+"WARNING:",
+"[ER]IP[^:]",
+" \[<[a-f0-9]{8,16}>\]"
+]
+
+checks = [
+ ("i915", "xorg-x11-drv-intel"),
+ ("nouveau", "xorg-x11-drv-nouveau"),
+ ("radeon", "xorg-x11-drv-ati"),
+ ("qxl", "xorg-x11-drv-qxl"),
+]
+
+def check_tag(line):
+    for tag in tags:
+        if re.match(tag, line) is not None:
+            for (mod, component) in checks:
+                if re.search(mod, line) is not None:
+                    return component
+    return None
+
+def get_new_component(filename):
+    try:
+        f = open(filename, "r")
+    except IOError as e:
+        return None
+    for line in f:
+        c = check_tag(line)
+        if c is not None:
+            f.close()
+            return c
+    f.close()
+    return None
+
+def open_or_die(filename, mode):
+    try:
+        f = open(filename, mode)
+    except IOError as e:
+        sys.stderr.write(str(e) + "\n")
+        sys.exit(1)
+    return f
+
+
+if __name__ == "__main__":
+    try:
+        locale.setlocale(locale.LC_ALL, "")
+    except locale.Error:
+        os.environ['LC_ALL'] = 'C'
+        locale.setlocale(locale.LC_ALL, "")
+
+    # Defeat "AttributeError: 'module' object has no attribute 'nl_langinfo'"
+    try:
+        gettext.bind_textdomain_codeset(GETTEXT_PROGNAME,
+                                        locale.nl_langinfo(locale.CODESET))
+    except AttributeError:
+        pass
+
+    gettext.bindtextdomain(GETTEXT_PROGNAME, '/usr/share/locale')
+    gettext.textdomain(GETTEXT_PROGNAME)
+
+    #
+    # Certain drivers are in the kernel but need to be tracked separtely
+    # in other components. This fixes those components.
+    #
+
+    new_component = get_new_component("backtrace")
+    if new_component is None:
+        sys.exit(0)
+
+    print("Oops looks like a problem in kernel module, new component {0}"
+            .format(new_component))
+
+    f = open_or_die("component", "w")
+    f.write(new_component)
+    f.close()
+
+    # keep kernel maint in the loop even if the component gets changed
+    f = open_or_die("extra-cc", "w")
+    f.write("kernel-maint@redhat.com")
+    f.close()
diff --git a/src/plugins/koops_event.conf b/src/plugins/koops_event.conf
index a811077..2379d7d 100644
--- a/src/plugins/koops_event.conf
+++ b/src/plugins/koops_event.conf
@@ -8,6 +8,9 @@ EVENT=post-create type=Kerneloops
             abrt-action-check-oops-for-hw-error
         fi
         {
+        abrt-action-check-oops-for-alt-component || true
+        } &&
+        {
         # run abrt-action-analyze-oops only if check-hw-error didn't create the
         # required files
         if test ! -f uuid -a ! -f duphash; then
diff --git a/src/plugins/vmcore_event.conf b/src/plugins/vmcore_event.conf
index 43fa7f0..6870332 100644
--- a/src/plugins/vmcore_event.conf
+++ b/src/plugins/vmcore_event.conf
@@ -29,6 +29,7 @@ EVENT=post-create type=vmcore
         # Do not fail the event (->do not delete problem dir)
         # if check-oops-for-hw-error exits nonzero:
         { abrt-action-check-oops-for-hw-error || true; }
+        { abrt-action-check-oops-for-alt-component || true; }
 
 # analyze
 EVENT=analyze_VMcore type=vmcore
-- 
2.4.3