]> git.pld-linux.org Git - packages/kernel.git/blob - linux-2.4.22-fore200e-0.2f.patch
- added description of djurban's branch
[packages/kernel.git] / linux-2.4.22-fore200e-0.2f.patch
1 --- ref-2.3.99-pre6-atm-0.77/drivers/atm/Makefile
2 +++ linux-2.3.99-pre6-atm-0.77-fore200e-0.2f/drivers/atm/Makefile       Mon May  8 14:50:10 2000
3 @@ -103,7 +103,7 @@
4    endif
5    ifeq ($(CONFIG_ATM_FORE200E_PCA_DEFAULT_FW),y)
6  #   guess the target endianess to choose the right PCA-200E firmware image
7 -    CONFIG_ATM_FORE200E_PCA_FW := $(shell if test -n "`$(CC) -E -dM ../../include/asm/byteorder.h | grep ' __LITTLE_ENDIAN '`"; then echo pca200e.bin; else echo pca200e_ecd.bin2; fi)
8 +    CONFIG_ATM_FORE200E_PCA_FW := $(shell if test -n "`$(CC) -E -dM ../../include/asm/byteorder.h | grep -w '__BIG_ENDIAN'`"; then echo pca200e_ecd.bin2; else echo pca200e.bin; fi)
9    endif
10  endif
11  ifeq ($(CONFIG_ATM_FORE200E_SBA),y)
12 --- ref-2.3.99-pre6-atm-0.77/drivers/atm/fore200e.c
13 +++ linux-2.3.99-pre6-atm-0.77-fore200e-0.2f/drivers/atm/fore200e.c     Sun May 21 15:21:38 2000
14 @@ -67,7 +67,7 @@
15  #define FORE200E_52BYTE_AAL0_SDU
16  #endif
17  
18 -#define FORE200E_VERSION "0.2d"
19 +#define FORE200E_VERSION "0.2f"
20  
21  
22  #define FORE200E         "fore200e: "
23 @@ -1214,8 +1214,8 @@
24             fore200e_push_rpd(fore200e, entry->rpd);
25         }
26         else {
27 -           printk(FORE200E "damaged PDU on %d.%d.%d\n", 
28 -                  fore200e->atm_dev->number, entry->rpd->atm_header.vpi, entry->rpd->atm_header.vci);
29 +           DPRINTK(1, "damaged PDU on %d.%d.%d\n", 
30 +                   fore200e->atm_dev->number, entry->rpd->atm_header.vpi, entry->rpd->atm_header.vci); 
31         }
32  
33         fore200e_collect_rpd(fore200e, entry->rpd);
34 @@ -1550,7 +1550,7 @@
35      
36    retry_here:
37      
38 -    tasklet_disable(&fore200e->tasklet);
39 +    spin_lock_bh(&fore200e->tx_lock);
40  
41      entry = &txq->host_entry[ txq->head ];
42      
43 @@ -1560,8 +1560,8 @@
44         fore200e_irq_tx(fore200e);
45         
46         if (*entry->status != STATUS_FREE) {
47 -           
48 -           tasklet_enable(&fore200e->tasklet);
49 +
50 +           spin_unlock_bh(&fore200e->tx_lock);
51  
52             /* retry once again? */
53             if(--retry > 0)
54 @@ -1600,8 +1600,9 @@
55         
56         entry->data = kmalloc(tx_len, GFP_ATOMIC | GFP_DMA);
57         if (entry->data == NULL) {
58 -           
59 -           tasklet_enable(&fore200e->tasklet);
60 +
61 +           spin_unlock_bh(&fore200e->tx_lock);
62 +
63             if (vcc->pop)
64                 vcc->pop(vcc, skb);
65             else
66 @@ -1625,7 +1626,7 @@
67      FORE200E_NEXT_ENTRY(txq->head, QUEUE_SIZE_TX);
68      txq->txing++;
69  
70 -    tasklet_enable(&fore200e->tasklet);
71 +    spin_unlock_bh(&fore200e->tx_lock);
72  
73      /* ensure DMA synchronisation */
74      fore200e->bus->dma_sync(fore200e, tpd->tsd[ 0 ].buffer, tpd->tsd[ 0 ].length, FORE200E_DMA_TODEVICE);
75 @@ -2358,6 +2359,7 @@
76  
77      DPRINTK(2, "device %s being initialized\n", fore200e->name);
78  
79 +    spin_lock_init(&fore200e->tx_lock);
80      init_MUTEX(&fore200e->rate_sf);
81      
82      cpq = fore200e->cp_queues = (struct cp_queues*) (fore200e->virt_base + FORE200E_CP_QUEUES_OFFSET);
83 --- ref-2.3.99-pre6-atm-0.77/drivers/atm/fore200e.h
84 +++ linux-2.3.99-pre6-atm-0.77-fore200e-0.2f/drivers/atm/fore200e.h     Mon May  8 13:34:33 2000
85 @@ -879,6 +879,7 @@
86      struct stats*              stats;                  /* last snapshot of the stats         */
87      
88      struct semaphore           rate_sf;                /* protects rate reservation ops      */
89 +    spinlock_t                 tx_lock;                /* protects tx ops                    */
90      struct tasklet_struct      tasklet;                /* performs interrupt work            */
91  
92  } fore200e_t;
This page took 0.073636 seconds and 3 git commands to generate.