On Tue, 9 Nov 2004, David Brownell wrote: > On Tuesday 09 November 2004 07:23, Alan Stern wrote: > > On Mon, 8 Nov 2004, David Brownell wrote: > > > > > The SL-811 code will need updates too (or it will, once > > > there's one that compiles and runs), > > > > Actually no. The SL-811 code doesn't currently use the hcd glue layer at > > all! > > It will. So far as I'm concerned, once it does then it'll > finally be reasonable to remove that old 2.2 bus framework.
Well, assuming my changes are applied in the near future, when the SL-811 driver finally gets updated to use the hcd stuff then it will be compatible with the changes! > > I didn't change the meaning of hcd->self.hcpriv; it was useless before and > > it's still useless. The model I copied from was the SCSI host code. > > Look at the patch for the uhci_hcd.h file to see the definitions of > > uhci_to_hcd() and hcd_to_uhci(). The hardware-specific structure is > > allocated at the end of the generic one rather than containing it; they > > share the same refcount. > > But as I said: that relies on type punning ("knowing" > that pointer-to-A is also pointer-to-B), which is a > practice best observed by avoiding it. I think it's not so bad, when done in controlled ways like here. You might just as well complain about the types returned by kmalloc and accepted by kfree. :-) (That's not an idle analogy, by the way. In each case, a core routine must deal with pointers to regions of memory storing types defined by a less-central routine. There's no alternative to using a generic pointer type. If I could have defined the new last field in struct usb_hcd as "void hcd_priv[0]" I would have.) > > > > hcd->state is explicitly initialized to USB_STATE_HALT when the > > > > hcd structure is created. > > > > > > As opposed to implicitly as part of bzeroing the memory. > > > > No, as opposed to being set explictly following the call to > > driver->reset() in usb_hcd_pci_probe. > > But the definition of reset() involves leaving the HCD in > that HALT state. The notion is that reset() should be used > not just during initialization, but also after recovering > from dead HCDs. That assignment relieves HCDs of code. So what? They are still relieved of the code, because now hcd->state is set to USB_STATE_HALT when hcd_pci_probe calls usb_create_hcd, before driver->reset instead of after. Unless you think there's some reason the driver is going to change hcd->state to something else and it needs to be changed back? Shall I simply go ahead and submit my patches for Greg to review? Alan Stern ------------------------------------------------------- This SF.Net email is sponsored by: Sybase ASE Linux Express Edition - download now for FREE LinuxWorld Reader's Choice Award Winner for best database on Linux. http://ads.osdn.com/?ad_id=5588&alloc_id=12065&op=click _______________________________________________ [EMAIL PROTECTED] To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel