linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
* "tvec_bases too large for per-cpu data" commit broke early_serial_setup()
@ 2006-04-01 20:53 Eugene Surovegin
  2006-04-01 22:06 ` Andrew Morton
  0 siblings, 1 reply; 3+ messages in thread
From: Eugene Surovegin @ 2006-04-01 20:53 UTC (permalink / raw)
  To: linux-kernel; +Cc: Andrew Morton, linuxppc-dev, Jan Beulich

Hi!

Commit 
a4a6198b80cf82eb8160603c98da218d1bd5e104 
"[PATCH] tvec_bases too large for per-cpu data"

broke early_serial_setup() and maybe other code which uses 
init_timer() before init_timers_cpu() is called.

This commit introduced run-time initialization dependence which never 
existed before, namely, tvec_bases was always valid before this 
change, but now it's a pointer which should be initialized prior to 
use of any timer function.

If init_timer() is called before such initialization (in my case this 
happens when PPC440GX board support code calls early_serial_setup to 
register UARTs, serial8250_isa_init_ports() calls init_timer()), 
"base" field in the timer_list struct is set to NULL.

When later mod_timer() is called for such timer it hangs in 
lock_timer_base().

Rolling back this commit fixes the problem, although, this is 
obviously not a proper fix.

I don't a fix I like, so I'll leave it to people more familiar with 
this matter :)

-- 
Eugene

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2006-04-01 22:33 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-04-01 20:53 "tvec_bases too large for per-cpu data" commit broke early_serial_setup() Eugene Surovegin
2006-04-01 22:06 ` Andrew Morton
2006-04-01 22:32   ` Eugene Surovegin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).