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
/
s390
/
net
/
lcs.c
diff --git
a/drivers/s390/net/lcs.c
b/drivers/s390/net/lcs.c
index
f786361
..
0f76e94
100644
(file)
--- a/
drivers/s390/net/lcs.c
+++ b/
drivers/s390/net/lcs.c
@@
-11,7
+11,7
@@
* Frank Pavlic (pavlic@de.ibm.com) and
* Martin Schwidefsky <schwidefsky@de.ibm.com>
*
* Frank Pavlic (pavlic@de.ibm.com) and
* Martin Schwidefsky <schwidefsky@de.ibm.com>
*
- * $Revision: 1.9
2 $ $Date: 2004/09/03 08:06:11
$
+ * $Revision: 1.9
6 $ $Date: 2004/11/11 13:42:33
$
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
@@
-59,7
+59,7
@@
/**
* initialization string for output
*/
/**
* initialization string for output
*/
-#define VERSION_LCS_C "$Revision: 1.9
2
$"
+#define VERSION_LCS_C "$Revision: 1.9
6
$"
static char version[] __initdata = "LCS driver ("VERSION_LCS_C "/" VERSION_LCS_H ")";
static char debug_buffer[255];
static char version[] __initdata = "LCS driver ("VERSION_LCS_C "/" VERSION_LCS_H ")";
static char debug_buffer[255];
@@
-191,6
+191,7
@@
lcs_alloc_card(void)
return NULL;
memset(card, 0, sizeof(struct lcs_card));
card->lan_type = LCS_FRAME_TYPE_AUTO;
return NULL;
memset(card, 0, sizeof(struct lcs_card));
card->lan_type = LCS_FRAME_TYPE_AUTO;
+ card->pkt_seq = 0;
card->lancmd_timeout = LCS_LANCMD_TIMEOUT_DEFAULT;
/* Allocate io buffers for the read channel. */
rc = lcs_alloc_channel(&card->read);
card->lancmd_timeout = LCS_LANCMD_TIMEOUT_DEFAULT;
/* Allocate io buffers for the read channel. */
rc = lcs_alloc_channel(&card->read);
@@
-549,6
+550,7
@@
lcs_stop_channel(struct lcs_channel *channel)
return 0;
LCS_DBF_TEXT(4,trace,"haltsch");
LCS_DBF_TEXT_(4,trace,"%s", channel->ccwdev->dev.bus_id);
return 0;
LCS_DBF_TEXT(4,trace,"haltsch");
LCS_DBF_TEXT_(4,trace,"%s", channel->ccwdev->dev.bus_id);
+ channel->state = CH_STATE_INIT;
spin_lock_irqsave(get_ccwdev_lock(channel->ccwdev), flags);
rc = ccw_device_halt(channel->ccwdev, (addr_t) channel);
spin_unlock_irqrestore(get_ccwdev_lock(channel->ccwdev), flags);
spin_lock_irqsave(get_ccwdev_lock(channel->ccwdev), flags);
rc = ccw_device_halt(channel->ccwdev, (addr_t) channel);
spin_unlock_irqrestore(get_ccwdev_lock(channel->ccwdev), flags);
@@
-1357,6
+1359,7
@@
lcs_irq(struct ccw_device *cdev, unsigned long intparm, struct irb *irb)
LCS_DBF_TEXT_(5, trace, "Rint%s",cdev->dev.bus_id);
LCS_DBF_TEXT_(5, trace, "%4x%4x",irb->scsw.cstat, irb->scsw.dstat);
LCS_DBF_TEXT_(5, trace, "Rint%s",cdev->dev.bus_id);
LCS_DBF_TEXT_(5, trace, "%4x%4x",irb->scsw.cstat, irb->scsw.dstat);
+ LCS_DBF_TEXT_(5, trace, "%4x%4x",irb->scsw.fctl, irb->scsw.actl);
/* How far in the ccw chain have we processed? */
if ((channel->state != CH_STATE_INIT) &&
/* How far in the ccw chain have we processed? */
if ((channel->state != CH_STATE_INIT) &&
@@
-1624,8
+1627,6
@@
lcs_detect(struct lcs_card *card)
/* start/reset card */
if (card->dev)
netif_stop_queue(card->dev);
/* start/reset card */
if (card->dev)
netif_stop_queue(card->dev);
- card->write.state = CH_STATE_INIT;
- card->read.state = CH_STATE_INIT;
rc = lcs_stop_channels(card);
if (rc == 0) {
rc = lcs_start_channels(card);
rc = lcs_stop_channels(card);
if (rc == 0) {
rc = lcs_start_channels(card);
@@
-1874,6
+1875,7
@@
lcs_get_skb(struct lcs_card *card, char *skb_data, unsigned int skb_len)
skb->protocol = card->lan_type_trans(skb, card->dev);
card->stats.rx_bytes += skb_len;
card->stats.rx_packets++;
skb->protocol = card->lan_type_trans(skb, card->dev);
card->stats.rx_bytes += skb_len;
card->stats.rx_packets++;
+ *((__u32 *)skb->cb) = ++card->pkt_seq;
netif_rx(skb);
}
netif_rx(skb);
}