On Thu, Jun 17, 2004 at 10:52:58PM +0200, Karsten Keil wrote:
On Wed, Jun 16, 2004 at 07:54:53PM +0200, Jürgen Heiler wrote:
Hallo alle, ich habe heute unter Suse 9.1 den von YOU angebotenen Kernel-Update installiert, weil er wohl der Sicherheit dient. Danach habe ich rebootet. Jetzt wird die Capi nicht mehr geladen (FRITZ DSL USB). Ich finde das schon äergerlich, ohne meine Windows-Partition wäre ich jetzt wieder aufgeschmissen. Was kann ich jetzt tun.
Im Moment nur den Treiber neu uebersetzen.
Bei USB hat sich das Verhalten einer Funktion (usb_interface_claimed) geaendert, bei aelteren kernel hat sie, solange der Treiber das Interface noch nicht registriert hat false geliefert, jetzt wird allerdings das control interface schon vor dem probe Aufruf an den Treiber gebunden. Für den fcdslusb Treiber reicht es den test ganz rauszunehmen:
--- src/src.fcdslusb/main.c~ 2004-06-17 22:49:50.133544246 +0200 +++ src/src.fcdslusb/main.c 2004-06-17 22:49:50.133544246 +0200 @@ -164,6 +164,7 @@ /* Interface */ cfgd = &dev->config[0].desc; assert (cfgd != NULL); +#if 0 if (usb_interface_claimed (dev->config[0].interface[0])) { ERROR("Interface already claimed.\n"); exit_intfused: @@ -171,6 +172,7 @@ capi_card = NULL; goto exit_noctx; } +#endif pdc->epwrite = &iface->altsetting[0].endpoint[0].desc; pdc->epread = &iface->altsetting[0].endpoint[1].desc;
Etwas zu einfach :-(( sollte besser gehen: --- src/src.fcdslusb/main.c~ 2004-06-17 23:12:21.000000000 +0200 +++ src/src.fcdslusb/main.c 2004-06-17 23:12:21.000000000 +0200 @@ -164,13 +164,6 @@ /* Interface */ cfgd = &dev->config[0].desc; assert (cfgd != NULL); - if (usb_interface_claimed (dev->config[0].interface[0])) { - ERROR("Interface already claimed.\n"); - exit_intfused: - hfree (pdc); - capi_card = NULL; - goto exit_noctx; - } pdc->epwrite = &iface->altsetting[0].endpoint[0].desc; pdc->epread = &iface->altsetting[0].endpoint[1].desc; @@ -182,7 +175,9 @@ if (NULL == (pdc->tx_buffer = (char *) hmalloc (MAX_TRANSFER_SIZE))) { ERROR("Could not allocate tx buffer.\n"); exit_notxbuf: - goto exit_intfused; + hfree (pdc); + capi_card = NULL; + goto exit_noctx; } if (NULL == (pdc->tx_urb = usb_alloc_urb (0, GFP_ATOMIC))) { ERROR("Could not allocate tx urb.\n"); -- Karsten Keil SuSE Labs ISDN development