Commit 8d21a7e3 authored by Andrew Morton's avatar Andrew Morton Committed by Linus Torvalds

[PATCH] s390: network device drivers.

From: Martin Schwidefsky <schwidefsky@de.ibm.com>

Network driver changes:
 - qeth: Fix reference counting in regard to sysfs backing store patches.
 - qeth: Prefix kernel thread names with qeth_.
 - qeth: Remove inbound and outbound tasklets. Handle buffers directly
         in the interrupts handlers.
 - iucv: Add missing kfree in iucv_register_program.
 - iucv: Add missing return in netiucv_transmit_skb.
 - iucv: Check for NULL pointer in conn_action_txdone.
parent c6f7f898
/* /*
* $Id: iucv.c,v 1.27 2004/03/22 07:43:43 braunu Exp $ * $Id: iucv.c,v 1.28 2004/04/15 06:34:58 braunu Exp $
* *
* IUCV network driver * IUCV network driver
* *
...@@ -29,7 +29,7 @@ ...@@ -29,7 +29,7 @@
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
* *
* RELEASE-TAG: IUCV lowlevel driver $Revision: 1.27 $ * RELEASE-TAG: IUCV lowlevel driver $Revision: 1.28 $
* *
*/ */
...@@ -351,7 +351,7 @@ do { \ ...@@ -351,7 +351,7 @@ do { \
static void static void
iucv_banner(void) iucv_banner(void)
{ {
char vbuf[] = "$Revision: 1.27 $"; char vbuf[] = "$Revision: 1.28 $";
char *version = vbuf; char *version = vbuf;
if ((version = strchr(version, ':'))) { if ((version = strchr(version, ':'))) {
...@@ -800,6 +800,7 @@ iucv_register_program (__u8 pgmname[16], ...@@ -800,6 +800,7 @@ iucv_register_program (__u8 pgmname[16],
if (iucv_pathid_table == NULL) { if (iucv_pathid_table == NULL) {
printk(KERN_WARNING "%s: iucv_pathid_table storage " printk(KERN_WARNING "%s: iucv_pathid_table storage "
"allocation failed\n", __FUNCTION__); "allocation failed\n", __FUNCTION__);
kfree(new_handler);
return NULL; return NULL;
} }
memset (iucv_pathid_table, 0, max_connections * sizeof(handler *)); memset (iucv_pathid_table, 0, max_connections * sizeof(handler *));
......
/* /*
* $Id: netiucv.c,v 1.48 2004/04/01 13:42:09 braunu Exp $ * $Id: netiucv.c,v 1.49 2004/04/15 06:37:54 braunu Exp $
* *
* IUCV network driver * IUCV network driver
* *
...@@ -30,7 +30,7 @@ ...@@ -30,7 +30,7 @@
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
* *
* RELEASE-TAG: IUCV network driver $Revision: 1.48 $ * RELEASE-TAG: IUCV network driver $Revision: 1.49 $
* *
*/ */
...@@ -601,11 +601,12 @@ conn_action_txdone(fsm_instance *fi, int event, void *arg) ...@@ -601,11 +601,12 @@ conn_action_txdone(fsm_instance *fi, int event, void *arg)
if ((skb = skb_dequeue(&conn->commit_queue))) { if ((skb = skb_dequeue(&conn->commit_queue))) {
atomic_dec(&skb->users); atomic_dec(&skb->users);
dev_kfree_skb_any(skb); dev_kfree_skb_any(skb);
}
if (privptr) { if (privptr) {
privptr->stats.tx_packets++; privptr->stats.tx_packets++;
privptr->stats.tx_bytes += privptr->stats.tx_bytes +=
(skb->len - NETIUCV_HDRLEN - NETIUCV_HDRLEN); (skb->len - NETIUCV_HDRLEN
- NETIUCV_HDRLEN);
}
} }
} }
conn->tx_buff->data = conn->tx_buff->tail = conn->tx_buff->head; conn->tx_buff->data = conn->tx_buff->tail = conn->tx_buff->head;
...@@ -1078,6 +1079,7 @@ netiucv_transmit_skb(struct iucv_connection *conn, struct sk_buff *skb) { ...@@ -1078,6 +1079,7 @@ netiucv_transmit_skb(struct iucv_connection *conn, struct sk_buff *skb) {
"%s: Could not allocate tx_skb\n", "%s: Could not allocate tx_skb\n",
conn->netdev->name); conn->netdev->name);
rc = -ENOMEM; rc = -ENOMEM;
return rc;
} else { } else {
skb_reserve(nskb, NETIUCV_HDRLEN); skb_reserve(nskb, NETIUCV_HDRLEN);
memcpy(skb_put(nskb, skb->len), memcpy(skb_put(nskb, skb->len),
...@@ -1880,7 +1882,7 @@ static struct device_driver netiucv_driver = { ...@@ -1880,7 +1882,7 @@ static struct device_driver netiucv_driver = {
static void static void
netiucv_banner(void) netiucv_banner(void)
{ {
char vbuf[] = "$Revision: 1.48 $"; char vbuf[] = "$Revision: 1.49 $";
char *version = vbuf; char *version = vbuf;
if ((version = strchr(version, ':'))) { if ((version = strchr(version, ':'))) {
......
...@@ -23,7 +23,7 @@ ...@@ -23,7 +23,7 @@
#include "qeth_mpc.h" #include "qeth_mpc.h"
#define VERSION_QETH_H "$Revision: 1.98 $" #define VERSION_QETH_H "$Revision: 1.100 $"
#ifdef CONFIG_QETH_IPV6 #ifdef CONFIG_QETH_IPV6
#define QETH_VERSION_IPV6 ":IPv6" #define QETH_VERSION_IPV6 ":IPv6"
...@@ -423,14 +423,12 @@ struct qeth_qdio_out_q { ...@@ -423,14 +423,12 @@ struct qeth_qdio_out_q {
struct qeth_qdio_out_buffer bufs[QDIO_MAX_BUFFERS_PER_Q]; struct qeth_qdio_out_buffer bufs[QDIO_MAX_BUFFERS_PER_Q];
int queue_no; int queue_no;
struct qeth_card *card; struct qeth_card *card;
struct tasklet_struct tasklet;
spinlock_t lock; spinlock_t lock;
volatile int do_pack; volatile int do_pack;
/* /*
* index of buffer to be filled by driver; state EMPTY or PACKING * index of buffer to be filled by driver; state EMPTY or PACKING
*/ */
volatile int next_buf_to_fill; volatile int next_buf_to_fill;
volatile int next_buf_to_flush;
/* /*
* number of buffers that are currently filled (PRIMED) * number of buffers that are currently filled (PRIMED)
* -> these buffers are hardware-owned * -> these buffers are hardware-owned
...@@ -447,7 +445,6 @@ struct qeth_qdio_info { ...@@ -447,7 +445,6 @@ struct qeth_qdio_info {
struct qeth_qdio_buffer_pool in_buf_pool; struct qeth_qdio_buffer_pool in_buf_pool;
struct qeth_qdio_buffer_pool init_pool; struct qeth_qdio_buffer_pool init_pool;
int in_buf_size; int in_buf_size;
struct tasklet_struct in_tasklet;
/* output */ /* output */
int no_out_queues; int no_out_queues;
......
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment