]> git.pld-linux.org Git - packages/kernel.git/blame - linux-2.4.22-fore200e-0.2f.patch
- ported from linux-2.4.25-atmdd.patch
[packages/kernel.git] / linux-2.4.22-fore200e-0.2f.patch
CommitLineData
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;
This page took 0.13959 seconds and 4 git commands to generate.