[patch] slub crashes with recent -git

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Linus, Christoph,

recent slub commits in -git cause this bootup crash:

 Freeing unused kernel memory: 324k freed
 Write protecting the kernel read-only data: 1294k
 ------------[ cut here ]------------
 kernel BUG at mm/slub.c:2401!
 invalid opcode: 0000 [#1]
 PREEMPT SMP 
 Modules linked in:
 CPU:    0
 EIP:    0060:[<c017dac3>]    Not tainted VLI
 EFLAGS: 00010046   (2.6.22 #1)
 EIP is at ksize+0x13/0x42
 eax: 00000000   ebx: 00000000   ecx: 00000020   edx: 00000000
 esi: f76a4000   edi: 00000004   ebp: f7b11e74   esp: f7b11e74
 ds: 007b   es: 007b   fs: 00d8  gs: 0033  ss: 0068
 Process udevd (pid: 824, ti=f7b11000 task=f7ca5000 task.ti=f7b11000)
 Stack: f7b11e94 c016c28b f768cb00 00000020 f7ca5000 00000004 f76a4000 fffffff4 
        f7b11eb4 c03cf158 00000002 f76a4000 00000020 f768cb00 f76a4000 f7b11ed8 
        f7b11ed0 c03cfbc6 f768cb00 f768cb00 c046bf80 f768cb00 0000000c f7b11f6c 
 Call Trace:
  [<c0105e3e>] show_trace_log_lvl+0x19/0x2e
  [<c0105ef0>] show_stack_log_lvl+0x9d/0xa5
  [<c010628f>] show_registers+0x1f5/0x334
  [<c01064e6>] die+0x118/0x1fc
  [<c0426e7f>] do_trap+0x8e/0xa8
  [<c0106ac3>] do_invalid_op+0x88/0x92
  [<c0426a92>] error_code+0x72/0x78
  [<c016c28b>] krealloc+0x27/0x6d
  [<c03cf158>] netlink_realloc_groups+0x61/0xd9
  [<c03cfbc6>] netlink_bind+0x4f/0x121
  [<c03afe8d>] sys_bind+0x67/0x86
  [<c03b11e3>] sys_socketcall+0x8f/0x244
  [<c0104ef2>] sysenter_past_esp+0x6b/0xb5
  =======================
 Code: 40 02 00 75 03 8b 52 0c 8b 02 5d 84 c0 b8 00 00 00 00 0f 49 d0 89 d0 c3 55 31 d2 83 f8 10 89 e5 74 34 e8 bc ff ff ff 85 c0 75 04 <0f> 0b eb fe 8b 40 10 85 c0 75 04 0f 0b eb fe 8b 10 f6 c6 0c 74 

i had to apply the patch below to make the kernel boot again.

Signed-off-by: Ingo Molnar <[email protected]>

Index: linux/mm/slub.c
===================================================================
--- linux.orig/mm/slub.c
+++ linux/mm/slub.c
@@ -2394,7 +2394,7 @@ size_t ksize(const void *object)
 	struct page *page;
 	struct kmem_cache *s;
 
-	if (object == ZERO_SIZE_PTR)
+	if (object == ZERO_SIZE_PTR || !object)
 		return 0;
 
 	page = get_object_page(object);
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux