]>
Commit | Line | Data |
---|---|---|
88769a2b JR |
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; |