Commit 37bc6081 authored by Martin Schwidefsky's avatar Martin Schwidefsky Committed by Linus Torvalds

[PATCH] s390: network driver

From: Frank Pavlic <pavlic@de.ibm.com>
From: Thomas Spatzier <tspat@de.ibm.com>

s390 network driver changes:
 - ctc/iucv: Use DECLARE_PER_CPU instead of extern DEFINE_PER_CPU.
 - lcs: Always set channel state to CH_STATE_INIT when stopping channels.
 - qeth: vlan fixes.
Signed-off-by: default avatarMartin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 40fbc9e7
/* /*
* *
* linux/drivers/s390/net/ctcdbug.h ($Revision: 1.3 $) * linux/drivers/s390/net/ctcdbug.h ($Revision: 1.4 $)
* *
* CTC / ESCON network driver - s390 dbf exploit. * CTC / ESCON network driver - s390 dbf exploit.
* *
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
* Author(s): Original Code written by * Author(s): Original Code written by
* Peter Tiedemann (ptiedem@de.ibm.com) * Peter Tiedemann (ptiedem@de.ibm.com)
* *
* $Revision: 1.3 $ $Date: 2004/07/28 12:27:54 $ * $Revision: 1.4 $ $Date: 2004/10/15 09:26:58 $
* *
* This program is free software; you can redistribute it and/or modify * 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 * it under the terms of the GNU General Public License as published by
...@@ -59,7 +59,7 @@ ...@@ -59,7 +59,7 @@
debug_event(ctc_dbf_##name,level,(void*)(addr),len); \ debug_event(ctc_dbf_##name,level,(void*)(addr),len); \
} while (0) } while (0)
extern DEFINE_PER_CPU(char[256], ctc_dbf_txt_buf); DECLARE_PER_CPU(char[256], ctc_dbf_txt_buf);
extern debug_info_t *ctc_dbf_setup; extern debug_info_t *ctc_dbf_setup;
extern debug_info_t *ctc_dbf_data; extern debug_info_t *ctc_dbf_data;
extern debug_info_t *ctc_dbf_trace; extern debug_info_t *ctc_dbf_trace;
......
...@@ -63,7 +63,7 @@ ...@@ -63,7 +63,7 @@
debug_event(iucv_dbf_##name,level,(void*)(addr),len); \ debug_event(iucv_dbf_##name,level,(void*)(addr),len); \
} while (0) } while (0)
extern DEFINE_PER_CPU(char[256], iucv_dbf_txt_buf); DECLARE_PER_CPU(char[256], iucv_dbf_txt_buf);
#define IUCV_DBF_TEXT_(name,level,text...) \ #define IUCV_DBF_TEXT_(name,level,text...) \
do { \ do { \
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
* Frank Pavlic (pavlic@de.ibm.com) and * Frank Pavlic (pavlic@de.ibm.com) and
* Martin Schwidefsky <schwidefsky@de.ibm.com> * Martin Schwidefsky <schwidefsky@de.ibm.com>
* *
* $Revision: 1.92 $ $Date: 2004/09/03 08:06:11 $ * $Revision: 1.94 $ $Date: 2004/10/19 09:30:54 $
* *
* This program is free software; you can redistribute it and/or modify * 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 * it under the terms of the GNU General Public License as published by
...@@ -59,7 +59,7 @@ ...@@ -59,7 +59,7 @@
/** /**
* initialization string for output * initialization string for output
*/ */
#define VERSION_LCS_C "$Revision: 1.92 $" #define VERSION_LCS_C "$Revision: 1.94 $"
static char version[] __initdata = "LCS driver ("VERSION_LCS_C "/" VERSION_LCS_H ")"; static char version[] __initdata = "LCS driver ("VERSION_LCS_C "/" VERSION_LCS_H ")";
static char debug_buffer[255]; static char debug_buffer[255];
...@@ -549,6 +549,7 @@ lcs_stop_channel(struct lcs_channel *channel) ...@@ -549,6 +549,7 @@ lcs_stop_channel(struct lcs_channel *channel)
return 0; return 0;
LCS_DBF_TEXT(4,trace,"haltsch"); LCS_DBF_TEXT(4,trace,"haltsch");
LCS_DBF_TEXT_(4,trace,"%s", channel->ccwdev->dev.bus_id); 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); spin_lock_irqsave(get_ccwdev_lock(channel->ccwdev), flags);
rc = ccw_device_halt(channel->ccwdev, (addr_t) channel); rc = ccw_device_halt(channel->ccwdev, (addr_t) channel);
spin_unlock_irqrestore(get_ccwdev_lock(channel->ccwdev), flags); spin_unlock_irqrestore(get_ccwdev_lock(channel->ccwdev), flags);
...@@ -1357,6 +1358,7 @@ lcs_irq(struct ccw_device *cdev, unsigned long intparm, struct irb *irb) ...@@ -1357,6 +1358,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, "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.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? */ /* How far in the ccw chain have we processed? */
if ((channel->state != CH_STATE_INIT) && if ((channel->state != CH_STATE_INIT) &&
...@@ -1624,8 +1626,6 @@ lcs_detect(struct lcs_card *card) ...@@ -1624,8 +1626,6 @@ lcs_detect(struct lcs_card *card)
/* start/reset card */ /* start/reset card */
if (card->dev) if (card->dev)
netif_stop_queue(card->dev); netif_stop_queue(card->dev);
card->write.state = CH_STATE_INIT;
card->read.state = CH_STATE_INIT;
rc = lcs_stop_channels(card); rc = lcs_stop_channels(card);
if (rc == 0) { if (rc == 0) {
rc = lcs_start_channels(card); rc = lcs_start_channels(card);
......
...@@ -92,7 +92,7 @@ ...@@ -92,7 +92,7 @@
debug_event(qeth_dbf_##name,level,(void*)(addr),len); \ debug_event(qeth_dbf_##name,level,(void*)(addr),len); \
} while (0) } while (0)
extern DEFINE_PER_CPU(char[256], qeth_dbf_txt_buf); DECLARE_PER_CPU(char[256], qeth_dbf_txt_buf);
#define QETH_DBF_TEXT_(name,level,text...) \ #define QETH_DBF_TEXT_(name,level,text...) \
do { \ do { \
...@@ -740,8 +740,6 @@ struct qeth_card { ...@@ -740,8 +740,6 @@ struct qeth_card {
#ifdef CONFIG_QETH_VLAN #ifdef CONFIG_QETH_VLAN
spinlock_t vlanlock; spinlock_t vlanlock;
struct vlan_group *vlangrp; struct vlan_group *vlangrp;
__u8 vlans_current[VLAN_GROUP_ARRAY_LEN/(8*sizeof(__u8))];
__u8 vlans_new[VLAN_GROUP_ARRAY_LEN/(8*sizeof(__u8))];
#endif #endif
struct work_struct kernel_thread_starter; struct work_struct kernel_thread_starter;
spinlock_t thread_mask_lock; spinlock_t thread_mask_lock;
......
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