Short version:  I've rearranged the kernel with all the USB stuff as
modules and added usbdevfs to the mix.  Still doesn't work and I'm
strongly suspecting that the problem is with the USB-to-SCSI emulation
for mass storage devices, not with USB itself.

Long version (system responses to insmod are from syslog):

---
# insmod usbcore
kernel: usb.c: registered new driver usbdevfs
kernel: usb.c: registered new driver hub

# insmod usb-uhci
kernel: usb-uhci.c: $Revision: 1.275 $ time 15:12:14 Jul 21 2002
kernel: usb-uhci.c: High bandwidth mode enabled
kernel: PCI: Found IRQ 9 for device 00:04.3
kernel: PCI: Sharing IRQ 9 with 00:04.2
kernel: usb-uhci.c: USB UHCI at I/O 0xd800, IRQ 9
kernel: usb-uhci.c: Detected 2 ports
kernel: usb.c: new USB bus registered, assigned bus number 1
kernel: hub.c: USB hub found
kernel: hub.c: 2 ports detected
kernel: PCI: Found IRQ 9 for device 00:04.2
kernel: PCI: Sharing IRQ 9 with 00:04.3
kernel: usb-uhci.c: USB UHCI at I/O 0xd400, IRQ 9
kernel: usb-uhci.c: Detected 2 ports
kernel: usb.c: new USB bus registered, assigned bus number 2
kernel: hub.c: USB hub found
kernel: hub.c: 2 ports detected
kernel: usb-uhci.c: v1.275:USB Universal Host Controller Interface driver
kernel: hub.c: USB new device connect on bus2/2, assigned device number 2
kernel: usb.c: USB device 2 (vend/prod 0x5e3/0x700) is not claimed by any active driver.

# insmod usb-storage
tcplogd: port 9000 connection attempt from pchan.sherohman.org [208.38.79.207]
kernel: Initializing USB Mass Storage driver...
kernel: usb.c: registered new driver usb-storage
kernel: usb-storage: act_altsettting is 0
kernel: usb-storage: id_index calculated to be: 59
kernel: usb-storage: Array length appears to be: 61
kernel: usb-storage: USB Mass Storage device detected
kernel: usb-storage: Endpoints: In: 0xc2e26bc0 Out: 0xc2e26bd4 Int: 0x00000000 (Period 0)
kernel: usb-storage: New GUID 05e307000000000000000000
kernel: usb-uhci.c: interrupt, status 2, frame# 1684
kernel: usb-storage: GetMaxLUN command result is 0, data is 206
kernel: usb-storage: Transport: Bulk
kernel: usb-storage: Protocol: Transparent SCSI
kernel: usb-storage: *** thread sleeping.
kernel: scsi1 : SCSI emulation for USB Mass Storage devices
kernel: usb-storage: queuecommand() called
kernel: usb-storage: *** thread awakened.
kernel: usb-storage: Command INQUIRY (6 bytes)
kernel: usb-storage: 12 00 00 00 ff 00 00 00 65 89 19 c0
kernel: usb-storage: Bulk command S 0x43425355 T 0xa Trg 0 LUN 0 L 255 F 128 CL 6
kernel: usb-storage: Bulk command transfer result=0
kernel: usb-storage: usb_stor_transfer_partial(): xfer 255 bytes
kernel: usb-storage: usb_stor_bulk_msg() returned -84 xferred 0/255
kernel: usb-storage: usb_stor_transfer_partial(): unknown error
kernel: usb-storage: Bulk data transfer result 0x2
kernel: usb-storage: Attempting to get CSW...
kernel: usb-storage: Bulk status result = -84
kernel: usb-storage: Bulk reset requested
kernel: usb-storage: Bulk soft reset failed -110
kernel: usb-storage: -- transport indicates transport failure
kernel: usb-storage: Fixing INQUIRY data to show SCSI rev 2
kernel: usb-storage: scsi cmd done, result=0x70000
kernel: usb-storage: *** thread sleeping.
kernel: usb-storage: queuecommand() called
kernel: usb-storage: *** thread awakened.
kernel: usb-storage: Command INQUIRY (6 bytes)
kernel: usb-storage: 12 00 00 00 ff 00 00 00 65 89 19 c0
kernel: usb-storage: Bulk command S 0x43425355 T 0xb Trg 0 LUN 0 L 255 F 128 CL 6
kernel: usb-storage: Bulk command transfer result=-110
kernel: usb-storage: Bulk reset requested
kernel: usb-storage: Bulk soft reset failed -110
kernel: usb-storage: -- transport indicates transport failure
kernel: usb-storage: Fixing INQUIRY data to show SCSI rev 2
kernel: usb-storage: scsi cmd done, result=0x70000
kernel: usb-storage: *** thread sleeping.
kernel: usb-storage: queuecommand() called
kernel: usb-storage: *** thread awakened.
kernel: usb-storage: Command INQUIRY (6 bytes)
kernel: usb-storage: 12 00 00 00 ff 00 00 00 65 89 19 c0
kernel: usb-storage: Bulk command S 0x43425355 T 0xc Trg 0 LUN 0 L 255 F 128 CL 6
kernel: usb-storage: Bulk command transfer result=-110
kernel: usb-storage: Bulk reset requested
kernel: usb-storage: Bulk soft reset failed -110
kernel: usb-storage: -- transport indicates transport failure
kernel: usb-storage: Fixing INQUIRY data to show SCSI rev 2
kernel: usb-storage: scsi cmd done, result=0x70000
kernel: usb-storage: *** thread sleeping.
kernel: usb-storage: queuecommand() called
kernel: usb-storage: *** thread awakened.
kernel: usb-storage: Bad target number (1/0)
kernel: usb-storage: *** thread sleeping.
<repeat lst 4 lines for target numbers (2/0) through (7/0)>
kernel: WARNING: USB Mass Storage data integrity not assured
kernel: USB Mass Storage device found at 2
kernel: USB Mass Storage support registered.
---

Now that usbdevfs is in place, usbview shows two USB UHCI Root Hub
devices, one with a usb-storage device attached.  The details on the
usb-storage are:

---
usb-storage
Speed: 12Mb/s (full)
USB Version:  1.10
Device Class: 00(>ifc )
Device Subclass: 00
Device Protocol: 00
Maximum Default Endpoint Size: 8
Number of Configurations: 1
Vendor Id: 05e3
Product Id: 0700
Revision Number:  1.13

Config Number: 1
  Number of Interfaces: 1
  Attributes: 80
  MaxPower Needed:  96mA

  Interface Number: 0
    Name: usb-storage
    Alternate Number: 0
    Class: 08(stor.) 
    Sub Class: 6
    Protocol: 50
    Number of Endpoints: 2

      Endpoint Address: 81
      Direction: in
      Attribute: 2
      Type: Bulk
      Max Packet Size: 64
      Interval:   0ms

      Endpoint Address: 02
      Direction: out
      Attribute: 2
      Type: Bulk
      Max Packet Size: 64
      Interval:   0ms
---

I also tried building an ide-scsi module and adding that, just to be sure,
but it had no effect on the USB situation.

/proc/scsi/scsi still only shows the real scsi bus and not the CF reader,
although /proc/scsi/usb-storage-0/ is still there.

-- 
When we reduce our own liberties to stop terrorism, the terrorists
have already won. - reverius

Innocence is no protection when governments go bad. - Tom Swiss