Ar Iau, 2006-08-10 am 23:19 +0200, ysgrifennodd
[email protected]:
> + wd_regs = ioremap_nocache(rr->start, rr->end + 1 - rr->start);
If this fails ?
> + res = misc_register(&miscdev);
> + if (res)
> + iounmap(wd_regs);
> + register_reboot_notifier(&wdt_gpi_shutdown);
> + return res;
Failure path appears incomplete, surely you don't want to register a
reboot notifier then unload and error ?
> + copy_to_user((void __user *)arg, &wdinfo, size);
This function returns an error and should be checked. (The tricks with
IOC bits and verify_area aren't enough to be sure it won't error and
actually probably aren't worth doing)
> + printk(KERN_WARNING "%s: watchdog expired - resetting system\n",
> + wdt_gpi_name);
> +
> + *(volatile char *) flagaddr |= 0x01;
> + *(volatile char *) resetaddr = powercycle ? 0x01 : 0x2;
> + iob();
> + while (1) continue;
cpu_relax();
> +
> + return IRQ_HANDLED;
Unreachable code.
Also if this is a software watchdog why is it better than using
softdog ?
Otherwise it looks pretty sound.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[Index of Archives]
[Kernel Newbies]
[Netfilter]
[Bugtraq]
[Photo]
[Stuff]
[Gimp]
[Yosemite News]
[MIPS Linux]
[ARM Linux]
[Linux Security]
[Linux RAID]
[Video 4 Linux]
[Linux for the blind]
[Linux Resources]