Re: [bisected][mismerge?] Re: [microcode] 2.6.23.git pulled this morning oopses loading P4 microcode

Previous thread: [Patch](memory hotplug) Make kmem_cache_node for SLUB on memory online to avoid panic(take 3) by Yasunori Goto on Wednesday, October 17, 2007 - 8:25 pm. (11 messages)

Next thread: [serial?] 6.2.23.git.today poking SysRq-T triggers NMI watchdog by Mike Galbraith on Wednesday, October 17, 2007 - 10:00 pm. (1 message)
From: Mike Galbraith
Date: Wednesday, October 17, 2007 - 9:25 pm

Greetings,

Freshly pulled tree oopes per $subject.

[  114.714335] BUG: unable to handle kernel NULL pointer dereference at virtual address 00000031
[  114.732810] printing eip: c03332ff *pde = 00000000 
[  114.747614] Oops: 0000 [#1] PREEMPT SMP 
[  114.761320] Modules linked in: microcode snd_seq edd button battery ac ip6t_REJECT xt_tcpudp ipt_REJECT xt_state iptable_mangle iptable_nat nf_nat iptable_filter ip6table_mangle nf_conntrack_ipv4 nf_conntrack ip_tables ip6table_filter ip6_tables x_tables nls_iso8859_1 nls_cp437 nls_utf8 snd_intel8x0 snd_ac97_codec ac97_bus snd_pcm snd_mpu401 snd_timer snd_mpu401_uart snd_rawmidi prism54 snd_page_alloc snd_seq_device snd soundcore intel_agp agpgart i2c_i801 fan thermal processor
[  114.781462] CPU:    0
[  114.781464] EIP:    0060:[<c03332ff>]    Not tainted VLI
[  114.781468] EFLAGS: 00010293   (2.6.23-smp-git #13)
[  114.781478] EIP is at misc_register+0x53/0x14f
[  114.781483] eax: 00000025   ebx: f8bff858   ecx: f8bff900   edx: 00000031
[  114.781490] esi: 000000b8   edi: f8bff864   ebp: c2e0de88   esp: c2e0de68
[  114.781496] ds: 007b   es: 007b   fs: 00d8  gs: 0033  ss: 0068
[  114.781502] Process modprobe (pid: 6115, ti=c2e0d000 task=c2efa070 task.ti=c2e0d000)
[  114.781508] Stack: c1cb4070 f8bff900 c2e0de88 c014818c f8bff900 f8bff900 f8bff900 00000029 
[  114.781521]        c2e0de9c f8bac011 c01368e6 ffffffff f8bff900 c2e0dfb0 c0149dfa 00000000 
[  114.781533]        00000000 00002000 c04d4060 c2e0ded0 c2e0df58 f8be0058 f8be0054 f8bff948 
[  114.781545] Call Trace:
[  114.781548]  [<c010514a>] show_trace_log_lvl+0x1a/0x30
[  114.781558]  [<c0105205>] show_stack_log_lvl+0xa5/0xca
[  114.781564]  [<c0105426>] show_registers+0x1fc/0x33d
[  114.781571]  [<c010567d>] die+0x116/0x239
[  114.781577]  [<c011d008>] do_page_fault+0x2dc/0x5c4
[  114.781585]  [<c04c0662>] error_code+0x72/0x78
[  114.781594]  [<f8bac011>] microcode_init+0x11/0xbb [microcode]
[  114.781604]  [<c0149dfa>] sys_init_module+0xef/0x19bb
[  114.781612]  ...
From: Mike Galbraith
Date: Thursday, October 18, 2007 - 10:56 am

The winner of a very long git bisect session:

04c71976500352d02f60616d2b960267d8c5fe24 is first bad commit
commit 04c71976500352d02f60616d2b960267d8c5fe24
Author: Samuel Thibault <samuel.thibault@ens-lyon.org>
Date:   Tue Oct 16 23:27:04 2007 -0700

    unicode diacritics support


Attempting to revert with git:

root@Homer: git revert 04c71976500352d02f60616d2b960267d8c5fe24
Auto-merged drivers/char/keyboard.c
Auto-merged drivers/char/vt_ioctl.c
CONFLICT (delete/modify): drivers/tc/lk201-map.c_shipped deleted in HEAD and modified in 04c7197... unicode diacritics support. Version 04c7197... unicode diacritics support of drivers/tc/lk201-map.c_shipped left in tree.
Automatic revert failed.  After resolving the conflicts,
mark the corrected paths with 'git-add <paths>'
and commit the result.

I reverted it manually in my working tree, ignoring a couple of bogus
rejects and the missing lk201-map.c_shipped which is _created_ in the
git tree by the attempt to revert, and now have a working kernel.  The
oops on microcode driver load is gone, as is the freeze on shutdown when
scripts attempt to set hardware clock, nmi_watchdog firing when I poke
SysRq-T, and the inability to login via serial console reported in
thread:

http://groups.google.com/group/fa.linux.kernel/msg/1b08c2f15894aaf7

	-Mike

-

From: Samuel Thibault
Date: Thursday, October 18, 2007 - 3:33 pm

Hi,

Mike Galbraith, le Thu 18 Oct 2007 19:56:38 +0200, a 
From: Mike Galbraith
Date: Thursday, October 18, 2007 - 7:48 pm

That didn't break my box.  However, removing your test patch and
re-applying the revert I generated between git tree and working tree
brought it right back.  With the below applied, diff says there is no
difference between working tree and git tree (except for
vsyscall_32.lds, which is a generated file kbuild leaves lying around).
Per gitk, the git repository is at
d85714d81cc0408daddb68c10f7fd69eafe7c213

diff -uprNX /root/dontdiff git/linux-2.6/drivers/acorn/char/defkeymap-l7200.c linux-2.6.23.git/drivers/acorn/char/defkeymap-l7200.c
--- git/linux-2.6/drivers/acorn/char/defkeymap-l7200.c	2007-10-18 18:55:53.000000000 +0200
+++ linux-2.6.23.git/drivers/acorn/char/defkeymap-l7200.c	2007-10-18 19:02:12.000000000 +0200
@@ -346,7 +346,7 @@ char *func_table[MAX_NR_FUNC] = {
 	0,
 };
 
-struct kbdiacruc accent_table[MAX_DIACR] = {
+struct kbdiacr accent_table[MAX_DIACR] = {
 	{'`', 'A', '\300'},	{'`', 'a', '\340'},
 	{'\'', 'A', '\301'},	{'\'', 'a', '\341'},
 	{'^', 'A', '\302'},	{'^', 'a', '\342'},
diff -uprNX /root/dontdiff git/linux-2.6/drivers/char/consolemap.c linux-2.6.23.git/drivers/char/consolemap.c
--- git/linux-2.6/drivers/char/consolemap.c	2007-10-18 18:55:53.000000000 +0200
+++ linux-2.6.23.git/drivers/char/consolemap.c	2007-10-18 19:02:12.000000000 +0200
@@ -669,29 +669,19 @@ void con_protect_unimap(struct vc_data *
 		p->readonly = rdonly;
 }
 
-/*
- * Always use USER_MAP. These functions are used by the keyboard,
- * which shouldn't be affected by G0/G1 switching, etc.
- * If the user map still contains default values, i.e. the
- * direct-to-font mapping, then assume user is using Latin1.
- */
 /* may be called during an interrupt */
 u32 conv_8bit_to_uni(unsigned char c)
 {
+	/*
+	 * Always use USER_MAP. This function is used by the keyboard,
+	 * which shouldn't be affected by G0/G1 switching, etc.
+	 * If the user map still contains default values, i.e. the
+	 * direct-to-font mapping, then assume user is using Latin1.
+	 */
 	unsigned short uni = ...
From: Samuel Thibault
Date: Friday, October 19, 2007 - 1:55 am

Just to make sure, could you check in System.map that accent_table is
correctly 256*3*4=3072 bytes long?

Samuel
-

From: Mike Galbraith
Date: Friday, October 19, 2007 - 3:20 am

See mail I just sent.  A day a half wasted here.  Sorry for however much
time you wasted on this.

	-Mike

-

From: Mike Galbraith
Date: Friday, October 19, 2007 - 3:18 am

Weeeell now, that skepticism is indeed well founded.  It's dontdiff.  A
diff of trees where defkeymap.c_shipped has been modified produces no
output.  Once a working tree has been afflicted by using diff+dontdiff
to update it, even overwriting the entire tree via git-archive doesn't
lead to a good build unless you also touch defkeymap.c_shipped
afterward.  In my case, the working tree remained buildable yet
thoroughly busted through a lengthy bisect and beyond.  That bisect
positively identified... the victim.

poo.

	-Mike

-

From: Randy Dunlap
Date: Friday, October 19, 2007 - 8:34 am

Yes, that's bad.  Sam has asked me to fix some dontdiff problems.
I'll try to get to it soon.  Other people can also update it....


---
~Randy
-

Previous thread: [Patch](memory hotplug) Make kmem_cache_node for SLUB on memory online to avoid panic(take 3) by Yasunori Goto on Wednesday, October 17, 2007 - 8:25 pm. (11 messages)

Next thread: [serial?] 6.2.23.git.today poking SysRq-T triggers NMI watchdog by Mike Galbraith on Wednesday, October 17, 2007 - 10:00 pm. (1 message)