RE: question about driver built-in kernel

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Thanks Greg! 

Got everything straighten up.
 
1, replaced init_module() by __init init_module to avoid kernel build conflict.
2, arranged correct sequence in Makefile to load two drivers in proper order.

Now it looks the pci bus register accessing has problem. If loaded as module, everything works fine. If build in kernel, it always failed at the spot driver resetting the chip through register during the kernel loading. It seems the pci base address mapping or something related has problem. Is there any difference for ioremap call between the kernel loading and after system is up? Is anything special on pci device register accessing during the kernel booting, compare with after system boot up?

Thanks!

Eddie 

-----Original Message-----
From: Greg KH [mailto:[email protected]] 
Sent: Friday, November 18, 2005 5:20 PM
To: [email protected]
Cc: [email protected]
Subject: Re: question about driver built-in kernel

On Thu, Nov 17, 2005 at 05:18:34PM -0700, [email protected] wrote:
> We have two driver modules to support our hardware for some
> applications. Both modules worked fine as loadable modules. Now I need
> to build both drivers in kernel 2.6.11-8. I have changed configuration
> file and make file. Both drivers are built OK with kernel together.

Have a pointer to the source for these drivers?

> 1, Because both drivers were loaded as module before, the entry point
> for both driver is "init_module()". Since both drivers are built in
> kernel, the entry name is conflicting. Changing one entry point name
> will make driver built OK. However, I am concerned that loading kernel
> will not pick up the driver with changed entry point name. What is the
> best way to handle this situation?

Make your init module function static, like all other kernel drivers.

> 2, One of built-in driver requires to be loaded before the second one.
> Because these two drivers are not belong to any existing group, such
> as network, scsi, where is the best place these two driver can be
> specified for loading sequence? I checked init.d and rc* files but did
> not figure out proper place to handle the requirement.

The linker specifies the loading order.

hope this helps,

greg k-h
-
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]
  Powered by Linux