android_kernel_xiaomi_sdm845/include/trace/events
Wen Congyang b853fd3648 ext4: avoid null dereference in trace_ext4_mballoc_discard
ac->inode is set to null in function ext4_mb_release_group_pa(),
and then trace_ext4_mballoc_discard(ac) is called, the kernel
will panic.

BUG: unable to handle kernel NULL pointer dereference at 000000a4
IP: [<f87e1714>] ftrace_raw_event_ext4__mballoc+0x54/0xc0 [ext4]
*pdpt = 0000000000abd001 *pde = 0000000000000000
Oops: 0000 [#1] SMP

Pid: 550, comm: flush-8:16 Not tainted 2.6.36-rc1 #1 SE7320EP2/Altos G530
EIP: 0060:[<f87e1714>] EFLAGS: 00010206 CPU: 1
EIP is at ftrace_raw_event_ext4__mballoc+0x54/0xc0 [ext4]
EAX: f32ac840 EBX: f3f1cf88 ECX: f32ac840 EDX: 00000000
ESI: f32ac83c EDI: f880b9d8 EBP: 00000000 ESP: f4b77ae4
 DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
Process flush-8:16 (pid: 550, ti=f4b76000 task=f613e540 task.ti=f4b76000)
Call Trace:
 [<f87f5ac1>] ? ext4_mb_release_group_pa+0x121/0x150 [ext4]
 [<f87f8356>] ? ext4_mb_discard_group_preallocations+0x336/0x400 [ext4]
 [<f87fb7f1>] ? ext4_mb_new_blocks+0x3d1/0x4f0 [ext4]
 [<c05a6c5b>] ? __make_request+0x10b/0x440
 [<f87f1fb4>] ? ext4_ext_map_blocks+0x1334/0x1980 [ext4]
 [<c04ac78a>] ? rb_reserve_next_event+0xaa/0x3b0
 [<f87d18d6>] ? ext4_map_blocks+0xd6/0x1d0 [ext4]
 [<f87d2da7>] ? mpage_da_map_blocks+0xc7/0x8a0 [ext4]
 [<c04c8a68>] ? find_get_pages_tag+0x38/0x110
 [<c04d23a5>] ? __pagevec_release+0x15/0x20
 [<f87d3ca5>] ? ext4_da_writepages+0x2b5/0x5d0 [ext4]
 [<c04cfbe0>] ? __writepage+0x0/0x30
 [<c04d0e34>] ? do_writepages+0x14/0x30
 [<c0526600>] ? writeback_single_inode+0xa0/0x240
 [<c0526971>] ? writeback_sb_inodes+0xc1/0x180
 [<c0526ab8>] ? writeback_inodes_wb+0x88/0x140
 [<c0526d7b>] ? wb_writeback+0x20b/0x320
 [<c045aca7>] ? lock_timer_base+0x27/0x50
 [<c0526fe0>] ? wb_do_writeback+0x150/0x190
 [<c05270a8>] ? bdi_writeback_thread+0x88/0x1f0
 [<c043b680>] ? complete+0x40/0x60
 [<c0527020>] ? bdi_writeback_thread+0x0/0x1f0
 [<c0469474>] ? kthread+0x74/0x80
 [<c0469400>] ? kthread+0x0/0x80
 [<c040a23e>] ? kernel_thread_helper+0x6/0x10

Signed-off-by: Wen Congyang <wency@cn.fujitsu.com>
Acked-by: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
2010-10-27 21:27:12 -04:00
..
bkl.h events: Harmonize event field names and print output names 2009-10-15 12:42:03 +02:00
block.h block: remove wrappers for request type/flags 2010-08-07 18:17:56 +02:00
ext4.h ext4: avoid null dereference in trace_ext4_mballoc_discard 2010-10-27 21:27:12 -04:00
gfpflags.h vmscan: tracing: add trace events for kswapd wakeup, sleeping and direct reclaim 2010-08-09 20:44:59 -07:00
irq.h tracing: Convert softirq events to DEFINE_EVENT 2009-11-26 09:14:03 +01:00
jbd2.h ext4: Add new tracepoint for jbd2_cleanup_journal_tail 2009-12-23 07:45:44 -05:00
kmem.h vmscan: tracing: add trace events for kswapd wakeup, sleeping and direct reclaim 2010-08-09 20:44:59 -07:00
kvm.h KVM: cleanup kvm trace 2010-05-17 12:15:22 +03:00
lock.h tracing: Factorize lock events in a lock class 2010-05-09 13:45:35 +02:00
mce.h perf_event, x86, mce: Use TRACE_EVENT() for MCE logging 2009-10-13 09:43:38 +02:00
module.h Merge branch 'linus' into tracing/core 2010-04-08 10:18:47 +02:00
napi.h tracing: Fix tracepoint.h DECLARE_TRACE() to allow more than one header 2010-05-05 11:46:17 -04:00
power.h x86 cpufreq, perf: Make trace_power_frequency cpufreq driver independent 2010-07-22 12:08:27 +02:00
sched.h tracing: Convert more sched events to DEFINE_EVENT 2010-06-28 17:12:50 -04:00
scsi.h [SCSI] scsi_trace: Enhance SCSI command tracing 2010-04-30 12:52:08 -05:00
signal.h tracing: Fix null pointer deref with SEND_SIG_FORCED 2010-06-08 23:51:32 +02:00
skb.h net: skb ftracer - add tracepoint to skb_copy_datagram_iovec (v3) 2009-08-13 16:26:14 -07:00
syscalls.h tracing: Separate raw syscall from syscall tracer 2009-11-25 14:20:06 -05:00
timer.h tracing: Fix timer tracing 2010-08-19 13:00:41 +02:00
vmscan.h memcg: add mm_vmscan_memcg_isolate tracepoint 2010-08-09 20:45:03 -07:00
workqueue.h workqueue: Add basic tracepoints to track workqueue execution 2010-08-21 13:19:37 -07:00
writeback.h writeback: add new tracepoints 2010-08-07 18:53:56 +02:00