Re: 2.6.21-rc2-mm1: drivers/usb/host/ohci-ssb.c doesn't compile

Michael Buesch
2007-03-05T11:27:48Z

On Monday 05 March 2007 11:57, Michael Buesch wrote:
> > > CC drivers/usb/host/ohci-hcd.o
> > > In file included from
> > > /home/bunk/linux/kernel-2.6/linux-2.6.21-rc2-mm1/drivers/usb/host/ohci-hcd.c:931:
> > > /home/bunk/linux/kernel-2.6/linux-2.6.21-rc2-mm1/drivers/usb/host/ohci-ssb.c:47: error: request for member 'hcd_priv_size' in something not a structure or union
> >
> > Seems like there was a comma missing.
> > There also seems to be some Kconfig problem. will fix that.
> >
> > > /home/bunk/linux/kernel-2.6/linux-2.6.21-rc2-mm1/drivers/usb/host/ohci-ssb.c:47: error: 'ssb_ohci_device' undeclared here (not in a function)
> > > /home/bunk/linux/kernel-2.6/linux-2.6.21-rc2-mm1/drivers/usb/host/ohci-ssb.c:52: error: 'ssb_ohci_reset' undeclared here (not in a function)
> > > /home/bunk/linux/kernel-2.6/linux-2.6.21-rc2-mm1/drivers/usb/host/ohci-ssb.c:53: error: 'ssb_ohci_start' undeclared here (not in a function)
> > > ...
> > > make[4]: *** [drivers/usb/host/ohci-hcd.o] Error 1
> > >
> > > <-- snip -->
>
> Actually, it seems like I will run into other kinds of nasty problems
> due to stupid design of the HCD code. The OHCI code #includes
> the various drivers, which have a module_init each. So if you
> compile PCI and SSB support, you have two module_init for one
> OHCI module. Not sure how to fix this. Any idea?

A real problem is that the HCD core seems to have the assumption
built-in that there can only be one OHCI driver per machine/arch.
That's not the case for SSB, where we can have both PCI and SSB
bus enabled, so both ohci drivers compiled.
Any idea? Greg perhaps?

Refactoring the code that OHCI drivers register to the HCD core
instead of hard-linking it in would fix the issue. But that's pretty
intrusive to do.

--
Greetings Michael.