Re: [PATCH v4] drivers/tty: Folding Android's keyreset driver in sysRQ

From: Dave Airlie
Date: Wed Feb 27 2013 - 06:10:58 EST


On Wed, Feb 27, 2013 at 9:06 PM, Dave Airlie <airlied@xxxxxxxxx> wrote:
> On Wed, Feb 27, 2013 at 6:26 PM, Dave Airlie <airlied@xxxxxxxxx> wrote:
>>>
>>> this patch seems to be oopsing on my x86 32-bit machine on bootup, pic attached.
>>>
>>> .config attached.
>>>
>>> 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.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/