Re: module depencies during startup

From: Keith Owens (kaos@ocs.com.au)
Date: Tue Mar 27 2001 - 20:45:21 EST


On Tue, 27 Mar 2001 20:09:13 +0200,
Tea Age <th@visuelle-maschinen.de> wrote:
>I found out, that agpgart, which is needed by i810fb, is initialized
>_after_ i810fb setup. Therefore i810fb failes to initialize.

This will be messy. I assume you put i810fb in drivers/char/Makefile
as something like this
  obj-$(CONFIG_I810FB) += i810fb.o
That links i810fb.o into drivers/char/char.o in a defined order
relative to the other objects in drivers/char. In the top level
Makefile we have

  DRIVERS =drivers/block/block.o \
                   drivers/char/char.o \
  ...
  DRIVERS-$(CONFIG_AGP) += drivers/char/agp/agp.o

so everything in drivers/char is linked into vmlinux before agp is
linked. Since the link order defines the execution order of the
__initcall routines, everything in drivers/char/char.o is initialised
before agp.

Two possible fixes, which one you use depends on what the frame buffer
maintainers think is the correct approach.

(1) Move agp.o ahead of char.o in the drivers list so agp is available
    to all char drivers. Will that break any char drivers? I have no
    idea, ask the agp and frame buffer maintainers.

(2) Move i810fb to its own directory under drivers/char, like agp and
    drm. Adjust drivers/char/Makefile accordingly and add

      DRIVERS-$(CONFIG_I810FB) += i810fb.o

    after agp in the top level Makefile. This will work as a short
    term fix but the correct order for agp versus the rest of the char
    drivers still needs to be reviewd (and documented!).

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Sat Mar 31 2001 - 21:00:17 EST