Re: [Kgdb-bugreport] [PATCH] Kill kgdb_serial

From: George Anzinger
Date: Thu Mar 04 2004 - 18:10:00 EST


Tom Rini wrote:
On Thu, Mar 04, 2004 at 10:11:39AM +0530, Amit S. Kale wrote:

On Wednesday 03 Mar 2004 8:46 pm, Tom Rini wrote:

On Wed, Mar 03, 2004 at 11:13:02AM +0530, Amit S. Kale wrote:

[snip]

kgdb_serial isn't ugly. It's just a function switch, similar to several
of them in the kernel. ppc is ugly, but that's anyway the case because of
so many varieties of ppc. If we are trying to make ppc code clean, it
makes more sense to move this weak function thing into ppc specific files
IMHO.

I think you missed the point. The problem isn't with providing weak
functions, the problem is trying to set the function pointer. PPC
becomes quite clean since the next step is to kill off
PPC_SIMPLE_SERIAL and just have kgdb_read/write_debug_char in the
relevant serial drivers.

We can still have one single hardcoded function pointer for ppc and manage
the rest in ppc specific files.


I think you're still missing the point.

Regardless, the solution to this is what dwmw2 suggested on IRC I
believe, as this should remove all of the #ifdef mess.

I am afraid I don't quite understand what he was saying other than early init stuff. On of the problems with trying early init stuff, by the way, is that a lot of things depend on having alloc up and that happens rather late in the game.

But back to the method. Is he/are you suggesting that the init code plug the array of functions into the kgdb table? This could be done by providing a register function in kgdb to register an i/o method. Pass it a pointer to a struc of entry points, keep the pointers in an array, etc. All that is left is to define the default in some simple and clean way, a way that might be overridden at command line parse time and so on.

I haven't looked at the latest version of the kgdb serial code, but it could, rather easily, be set up to initiialize on first call (if it isn't now), so for it, and others that can do likewise we could register the method at compile time.


--
George Anzinger george@xxxxxxxxxx
High-res-timers: http://sourceforge.net/projects/high-res-timers/
Preemption patch: http://www.kernel.org/pub/linux/kernel/people/rml

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