On Mon, 5 Dec 2011 16:25:39 -0800
Maxim Uvarov<maxim.uvarov@xxxxxxxxxx> wrote:
Mark hpwdt watchdog pages executable to prevent failing:
BUG: unable to handle kernel paging request at c00f0000
IP: [<c00f0000>] 0xc00effff
*pdpt = 0000000000b7c001 *pde = 0000000000cf5067 *pte = 80000000000f0163
Oops: 0011 [#1] SMP
...
--- a/drivers/watchdog/hpwdt.c
+++ b/drivers/watchdog/hpwdt.c
@@ -335,6 +335,8 @@ static int __devinit detect_cru_service(void)
if (p == NULL)
return -ENOMEM;
+ set_memory_x((unsigned long)p& PAGE_MASK, ROM_SIZE>> PAGE_SHIFT);
+
for (q = p; q< p + ROM_SIZE; q += 16) {
rc = bios32_present(q);
if (!rc)
Odd. Either nobody else is using this driver, or there's something
special about your setup. Are you able to explain this?
Also, do you believe that this fix should be backported into earlierAndrew, I found this problem in 3.0 than checked that it exist in linux-next when it was 3.1+. Because it's panic on module loading, yes this is critical bug and it's needs to be back-ported. (Actually this driver was not changed so simple cherry-pick one line patch will work.).
stable kernels and if so, why?