diff -ru fritz.org/src/main.c fritz/src/main.c --- fritz.org/src/main.c 2004-05-14 17:13:00.000000000 +0200 +++ fritz/src/main.c 2004-06-04 16:01:37.286904464 +0200 @@ -203,8 +203,12 @@ cfgd2 = &dev->config[1].desc; pdc->if1 = dev->config[0].interface[0]; pdc->if2 = dev->config[1].interface[0]; - if (usb_interface_claimed (pdc->if1) - || usb_interface_claimed (pdc->if2)) { + // In kernel 2.6.7 the function usb_interface_claimed always returns true (1) + // feedback to: Bernd.Westermann@it-west.de +// if (usb_interface_claimed (pdc->if1) +// || usb_interface_claimed (pdc->if2)) { + // Bad fix...never, but I dont know if exit_intfused is used + if (1!=1) { ERROR("Interface(s) already claimed.\n"); exit_intfused: hfree (pdc); @@ -212,7 +216,9 @@ goto exit_noctx; } usb_driver_claim_interface (&usb_driver, pdc->if1, pdc); - usb_driver_claim_interface (&usb_driver, pdc->if2, pdc); + if (pdc->if2!=NULL) { + usb_driver_claim_interface (&usb_driver, pdc->if2, pdc); + } #else cfgd = &dev->config[0].desc; if (usb_interface_claimed (dev->config[0].interface[0])) { @@ -241,7 +247,9 @@ goto exit_intfused; #else usb_driver_release_interface (&usb_driver, pdc->if1); - usb_driver_release_interface (&usb_driver, pdc->if2); + if (pdc->if2!=NULL) { + usb_driver_release_interface (&usb_driver, pdc->if2); + } goto exit_intfused; #endif } Nur in fritz/src: main.c~.