git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
vserver 1.9.5.x5
[linux-2.6.git]
/
drivers
/
net
/
wan
/
farsync.c
diff --git
a/drivers/net/wan/farsync.c
b/drivers/net/wan/farsync.c
index
543ac79
..
7575b79
100644
(file)
--- a/
drivers/net/wan/farsync.c
+++ b/
drivers/net/wan/farsync.c
@@
-33,11
+33,6
@@
*/
MODULE_AUTHOR("R.J.Dunlop <bob.dunlop@farsite.co.uk>");
MODULE_DESCRIPTION("FarSync T-Series WAN driver. FarSite Communications Ltd.");
*/
MODULE_AUTHOR("R.J.Dunlop <bob.dunlop@farsite.co.uk>");
MODULE_DESCRIPTION("FarSync T-Series WAN driver. FarSite Communications Ltd.");
-MODULE_PARM(fst_txq_low, "i");
-MODULE_PARM(fst_txq_high, "i");
-MODULE_PARM(fst_max_reads, "i");
-MODULE_PARM(fst_excluded_cards, "i");
-MODULE_PARM(fst_excluded_list, "0-32i");
MODULE_LICENSE("GPL");
/* Driver configuration and global parameters
MODULE_LICENSE("GPL");
/* Driver configuration and global parameters
@@
-85,6
+80,12
@@
int fst_max_reads = 7;
int fst_excluded_cards = 0;
int fst_excluded_list[FST_MAX_CARDS];
int fst_excluded_cards = 0;
int fst_excluded_list[FST_MAX_CARDS];
+module_param(fst_txq_low, int, 0);
+module_param(fst_txq_high, int, 0);
+module_param(fst_max_reads, int, 0);
+module_param(fst_excluded_cards, int, 0);
+module_param_array(fst_excluded_list, int, NULL, 0);
+
/* Card shared memory layout
* =========================
*/
/* Card shared memory layout
* =========================
*/
@@
-411,7
+412,7
@@
struct buf_window {
};
/* Calculate offset of a buffer object within the shared memory window */
};
/* Calculate offset of a buffer object within the shared memory window */
-#define BUF_OFFSET(X) (
(unsigned int)&(((struct buf_window *)BFM_BASE)->
X))
+#define BUF_OFFSET(X) (
BFM_BASE + offsetof(struct buf_window,
X))
#pragma pack()
#pragma pack()
@@
-443,8
+444,8
@@
struct fst_port_info {
/* Per card information
*/
struct fst_card_info {
/* Per card information
*/
struct fst_card_info {
- char
*mem;
/* Card memory mapped to kernel space */
- char
*ctlmem;
/* Control memory for PCI cards */
+ char
__iomem *mem;
/* Card memory mapped to kernel space */
+ char
__iomem *ctlmem;
/* Control memory for PCI cards */
unsigned int phys_mem; /* Physical memory window address */
unsigned int phys_ctlmem; /* Physical control memory address */
unsigned int irq; /* Interrupt request line number */
unsigned int phys_mem; /* Physical memory window address */
unsigned int phys_ctlmem; /* Physical control memory address */
unsigned int irq; /* Interrupt request line number */
@@
-781,7
+782,7
@@
fst_disable_intr(struct fst_card_info *card)
}
}
}
}
-/* Process the result of trying to pass a rec
ie
ved frame up the stack
+/* Process the result of trying to pass a rec
ei
ved frame up the stack
*/
static void
fst_process_rx_status(int rx_status, char *name)
*/
static void
fst_process_rx_status(int rx_status, char *name)
@@
-857,6
+858,18
@@
fst_tx_dma_complete(struct fst_card_info *card, struct fst_port_info *port,
dev->trans_start = jiffies;
}
dev->trans_start = jiffies;
}
+/*
+ * Mark it for our own raw sockets interface
+ */
+static unsigned short farsync_type_trans(struct sk_buff *skb,
+ struct net_device *dev)
+{
+ skb->dev = dev;
+ skb->mac.raw = skb->data;
+ skb->pkt_type = PACKET_HOST;
+ return htons(ETH_P_CUST);
+}
+
/* Rx dma complete interrupt
*/
static void
/* Rx dma complete interrupt
*/
static void
@@
-881,17
+894,10
@@
fst_rx_dma_complete(struct fst_card_info *card, struct fst_port_info *port,
/* Push upstream */
dbg(DBG_RX, "Pushing the frame up the stack\n");
/* Push upstream */
dbg(DBG_RX, "Pushing the frame up the stack\n");
- skb->mac.raw = skb->data;
- skb->dev = dev;
- if (port->mode == FST_RAW) {
- /*
- * Mark it for our own raw sockets interface
- */
- skb->protocol = htons(ETH_P_CUST);
- skb->pkt_type = PACKET_HOST;
- } else {
- skb->protocol = hdlc_type_trans(skb, skb->dev);
- }
+ if (port->mode == FST_RAW)
+ skb->protocol = farsync_type_trans(skb, dev);
+ else
+ skb->protocol = hdlc_type_trans(skb, dev);
rx_status = netif_rx(skb);
fst_process_rx_status(rx_status, port_to_dev(port)->name);
if (rx_status == NET_RX_DROP)
rx_status = netif_rx(skb);
fst_process_rx_status(rx_status, port_to_dev(port)->name);
if (rx_status == NET_RX_DROP)
@@
-1316,17
+1322,10
@@
fst_intr_rx(struct fst_card_info *card, struct fst_port_info *port)
/* Push upstream */
dbg(DBG_RX, "Pushing frame up the stack\n");
/* Push upstream */
dbg(DBG_RX, "Pushing frame up the stack\n");
- skb->mac.raw = skb->data;
- skb->dev = dev;
- if (port->mode == FST_RAW) {
- /*
- * Mark it for our own raw sockets interface
- */
- skb->protocol = htons(ETH_P_CUST);
- skb->pkt_type = PACKET_HOST;
- } else {
- skb->protocol = hdlc_type_trans(skb, skb->dev);
- }
+ if (port->mode == FST_RAW)
+ skb->protocol = farsync_type_trans(skb, dev);
+ else
+ skb->protocol = hdlc_type_trans(skb, dev);
rx_status = netif_rx(skb);
fst_process_rx_status(rx_status, port_to_dev(port)->name);
if (rx_status == NET_RX_DROP) {
rx_status = netif_rx(skb);
fst_process_rx_status(rx_status, port_to_dev(port)->name);
if (rx_status == NET_RX_DROP) {