Package: unicorn-source Version: 0.9.2-1 Hello,
I was using kernel 2.6.10 with version 0.9.0 using module unicorn_usb_eth.ko. Then I upgraded kernel to 2.6.15 and tried version 0.9.2 of unicorn source. Didn't compile but I was able to fix it (I guess is ok and patch is in the end of email). Internet connection looked ok but when I tried to upload files (tested sending patch-2.6.15.bz2 file to a remote machine using ssh) it failed and I got the following error message in log: Feb 10 00:18:07 localhost kernel: IntInComplete: ATM Operation Error interrupt Feb 10 00:18:08 localhost kernel: HandleAtmError: Reset ATM FIFO I never tried module unicorn_usb_atm.ko because I don't know how to make work instead of unicorn_usb_eth and I don't think unicorn_pci_*.ko works with USB modem. Can I get any help on this? Thanks in advance for the help, Bruno Pires Marinho -------------- --- unicorn-2.6.12/unicorn_atm/unicorn_atmdrv.c 2005-07-15 14:40:09.000000000 +0100 +++ unicorn-2.6.15/unicorn_atm/unicorn_atmdrv.c 2006-02-08 23:24:34.000000000 +0000 @@ -54,6 +54,7 @@ struct atm_dev *atm_dev; struct sk_buff_head rt_tx_q; // Real-Time transmit queue - CBR,VBR struct sk_buff_head tx_q; // "Normal" transmit queue - UBR + struct sk_buff_head *current_tx_q; // current q ADSL_STATUS adsl_status; unsigned long downstream_rate; unsigned long upstream_rate; @@ -343,8 +344,10 @@ struct sk_buff *skb; skb = skb_peek(&drv->rt_tx_q); + drv->current_tx_q = &drv->rt_tx_q; if (!skb) { skb = skb_peek(&drv->tx_q); + drv->current_tx_q = &drv->tx_q; } return skb; } @@ -505,7 +508,7 @@ if (finished) { // Finished with this buffer - skb_unlink(skb); + skb_unlink(skb, drv->current_tx_q); tx_free_skb(skb); // Get next buffer skb = peek_tx_skb(drv); --- unicorn-2.6.12/unicorn_eth/unicorn_ethdrv.c 2005-07-15 14:40:09.000000000 +0100 +++ unicorn-2.6.15/unicorn_eth/unicorn_ethdrv.c 2006-02-08 23:25:21.000000000 +0000 @@ -487,7 +487,7 @@ if (finished) { // Finished with this buffer - skb_unlink(skb); + skb_unlink(skb, &drv->tx_q); dev_kfree_skb_any(skb); // Get next buffer skb = peek_tx_skb(drv);