On Wed, Mar 16, 2011 at 02:18:17PM -0700, Yinghai Lu wrote: > > > Stefano found SP5100 TCO watchdog driver using wrong address. > > [ 9.148536] SP5100 TCO timer: SP5100 TCO WatchDog Timer Driver v0.01 > [ 9.148628] DEBUG __ioremap_caller WARNING address=b8fe00 size=8 valid=1 reserved=1 > > and e820 said that range is RAM. > > We should check if we can use that reading out. BIOS could just program wrong address there. > > -v2: Mike pointed out one path need one release. > > Reported-by: Stefano Stabellini > Signed-off-by:Yinghai Lu > Acked-by: Mike Waychison I have no idea why it worked the first time b/c this: > + if (request_mem_region_exclusive(val, SP5100_WDT_MEM_MAP_SIZE, "SP5100 TCO")) { is wrong. It should have been "if (!request...").. With that, and with Stefano's patches (stefano/2.6.38-rc6-mm-fix) on top of 2.6.39-rc0 it boots up fine. Excerpt from the log: [ 0.000000] DEBUG find_early_table_space: _text=1000000 _end=1e33000 pgtable_start=9fc000 pgtable_end=9fc000 [ 0.000000] DEBUG find_early_table_space: _text=1000000 _end=1e33000 pgtable_start=beba5000 pgtable_end=beba5000 [ 9.064064] calling sp5100_tco_init_module+0x0/0x1000 [sp5100_tco] @ 507 [ 9.064067] SP5100 TCO timer: SP5100 TCO WatchDog Timer Driver v0.01 [ 9.064180] SP5100 TCO timer: mmio address 0xb8fe00 already in use [ 9.064201] initcall sp5100_tco_init_module+0x0/0x1000 [sp5100_tco] returned 0 after 126 usecs Attached is the full log if folks are curious.