Hello all, I am having a problem using a PCI USB 2.0 Hi-Speed controller (EHCI) with the dbau1500 eval kit with kernel 2.4.26. I have traced the problem down to a call to atomic_add() (in include/asm-mips/atomic.h) that uses assembly to access ll/sc registers of the mips architecture. If I override CPU options and disable ll/sc when configuring the kernel, everything works fine. However this causes the atomic_add() to use local_irq_save()/local_irq_restore(). I am assuming this will cause quite a performance hit since atomic_add() gets called all over the place. I should include that the ll/sc version of atomic_add() seems to work fine until the call from the usb infrastructure. Below is a code trail that leads to the call to atomic_add(): hub.c: usb_hub_port_connect_change() usb.c: usb_set_address() usb.c: usb_control_msg() usb.c: usb_internal_control_msg() usb.c: usb_start_wait_urb() usb.c: usb_submit_urb() usb.c: submit_urb() hcd.c: hcd_submit_urb() host/ehci-hcd.c: ehci_urb_enqueue() (urb_enqueue function ptr) host/ehci-q.c: submit_async() host/ehci-q.c: qh_append_tds() host/ehci-mem.c: qh_get() atomic.h atomic_inc() atomic.h #define atomic_inc(v) atomic_add(1,(v)) <- uses ll/sc To reproduce my results: Plug in a Hi-Speed USB 2.0 controller into your pci slot and boot with a usb ehci enabled kernel. Be sure to disable the non-pci usb host that is built-in to the au1500 when building the kernel. (I have tried two controllers (NEC and ALi) with identical results.) Plug a Hi-Speed device (thumb drive or external HD) into the controller. (system stops responding here) Low/Full speed devices work without a problem because they use the ohci or uhci drivers. Any help or direction will be greatly appreciated. John