Hello again.

So after backporting the -current pmap fixes to -8 in order to be able to 
be able boot -d in order be able to examine I2C panics and after fixing them 
I have an operational -8 machine again only to find that the USB problems 
that made me update are still there.

The simplest libusb program (I tried to get myslf acquianted to libusb) will 
lock-up the machine if run the second time. The only trace I have is (once)
        ohci0: WARNING: addr 0x41088dc0 not found.
The machine becomes (at least) unresponsive to virtual console switches, 
most times, entering DDB works; backtrace is
        x86_memfence()
        usb_soft_intr()
        softint_dispatch()
or
        bus_dmamap_sync()
        ohci_softintr()
        usb_soft_intr()
        softint_dispatch()

When I looked, I had most processes in tstile.

Any hints? Another broken pull-up?
#include <err.h>
#include <stdio.h>
#include <usb.h>

struct usb_bus *bus;
struct usb_device *dev;
usb_dev_handle *udev;

int main(int argc, char *argv[]) {
        puts("init");
        usb_init();
        puts("find_busses");
        usb_find_busses();
        puts("find_devices");
        usb_find_devices();

        for (bus = usb_busses; bus; bus = bus->next) {
                puts(bus->dirname);
                for (dev = bus->devices; dev; dev = dev->next) {
                        printf("%d: %s\n", dev->devnum, dev->filename);
                        udev = usb_open(dev);
                        if (!udev) {
                                warnx("usb_open: %s", usb_strerror());
                                continue;
                        }
                        printf("%0x %0x %0x\n", dev->descriptor.idVendor, 
dev->descriptor.idProduct, dev->descriptor.bcdDevice);
#if 0
                        if (usb_claim_interface(udev, 0) < 0) {
                                errx(1, "usb_claim: %s", usb_strerror());
                        }
#endif
                        usb_close(udev);
                }
        }
        return 0;
}

Reply via email to