>>>> >>>> It looks to me like the weak bit isn't working so well >>>> >>>> if (platform_sysrq_reset_seq) { >>>> for (i = 0; i < ARRAY_SIZE(sysrq_reset_seq); i++) { >>>> key = platform_sysrq_reset_seq[i]; >>>> 6d: 66 8b 8c 00 00 00 00 mov 0x0(%eax,%eax,1),%cx >>>> 74: 00 >>>> >>>> is around where it craps out. >>>> gcc version 4.7.2 20121109 (Red Hat 4.7.2-8) (GCC) >>>> Fedora 18 machine. >>> >>> And just to confirm reverting >>> 154b7a489a5b1d808323b933b04864958c2f1056.in Linus' tree allows boot to >>> proceed. >> >> >> Looks like my first picture bounced, >> >> here's a link >> http://www.skynet.ie/~airlied/sysrq_oops.jpg > > Just some more disasm: > > if (platform_sysrq_reset_seq) { > 4c: ba 00 00 00 00 mov $0x0,%edx > 51: 31 c0 xor %eax,%eax > 53: 8b 1d 04 00 00 00 mov 0x4,%ebx > 59: 85 d2 test %edx,%edx > 5b: 75 2d jne 8a <sysrq_init+0x72> > > sysrq_reset_seq[sysrq_reset_seq_len++] = key; > } > } > > error = input_register_handler(&sysrq_handler); > 5d: b8 b4 00 00 00 mov $0xb4,%eax > 62: e8 fc ff ff ff call 63 <sysrq_init+0x4b> > if (error) > 67: 85 c0 test %eax,%eax > 69: 74 3e je a9 <sysrq_init+0x91> > 6b: eb 2d jmp 9a <sysrq_init+0x82> > int error; > int i; > 6d: 66 8b 8c 00 00 00 00 mov 0x0(%eax,%eax,1),%cx > 74: 00 > if (key == KEY_RESERVED || key > KEY_MAX) > 75: 8d 71 ff lea -0x1(%ecx),%esi > 78: 66 81 fe fe 02 cmp $0x2fe,%si > 7d: 76 02 jbe 81 <sysrq_init+0x69> > 7f: eb 11 jmp 92 <sysrq_init+0x7a> > break; > > sysrq_reset_seq[sysrq_reset_seq_len++] = key; > 81: 66 89 8c 12 08 00 00 mov %cx,0x8(%edx,%edx,1) > 88: 00 > > Dave.
It really does look like gcc is screwing up here, after a debug session on irc with dhowells and rmk. I'm going to sleep, its too much for my brain at the moment. Dave. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/