kdump: kdump can't boot in this case

From: Xishi Qiu
Date: Wed Oct 09 2013 - 22:35:13 EST


I write a module, and find kdump can't boot in this case.
kernel version is 3.12, Intel(R) Xeon(R) CPU E5620

struct timer_list g_timer;

void tmrhnd_invtssfault(unsigned long data)
{
long __res;
printk(KERN_EMERG "invalid TSS fault in interrupt context.\n");
__asm__ volatile("int $0x0A" : "=a"(__res):);
}

{
...
init_timer(&g_timer);
g_timer.expires = jiffies + 10;
g_timer.data = 0;
g_timer.function = tmrhnd_invtssfault;
add_timer(&g_timer);
...
}

If access NULL pointer instead of "__asm__ volatile("int $0x0A" : "=a"(__res):);"
in tmrhnd_invtssfault(), kdump can boot.
And if not use timer, just do "__asm__ volatile("int $0x0A" : "=a"(__res):);" only
once in module, kdump can boot too.

--
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/