diff options
author | Frank Pavlic <fpavlic@de.ibm.com> | 2006-09-15 10:26:34 -0400 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2006-09-17 01:03:07 -0400 |
commit | 09d2d38a152419467f764c0f730821e896766c1f (patch) | |
tree | 56001b9b3573a9a2fc05f74a4e2d0571607d0a19 /drivers/s390/net/qeth.h | |
parent | f7b65d70a3e6f1c97eb614964270816992d0d4b4 (diff) |
[PATCH] s390: qeth driver fixes [4/6]
[PATCH 7/9] s390: qeth driver fixes [4/6]
From: Frank Pavlic <fpavlic@de.ibm.com>
- fix kernel crash due to race,
set card->state to SOFTSETUP after
card and card->dev are initialized properly.
- remove CONFIG_QETH_PERF_STATS, use sysfs attribute instead,
as we want to have the ability to turn on/off the
statistics at runtime.
Signed-off-by: Frank Pavlic <fpavlic@de.ibm.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
Diffstat (limited to 'drivers/s390/net/qeth.h')
-rw-r--r-- | drivers/s390/net/qeth.h | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/drivers/s390/net/qeth.h b/drivers/s390/net/qeth.h index c04ee915dc1b..22a7ffbcaa42 100644 --- a/drivers/s390/net/qeth.h +++ b/drivers/s390/net/qeth.h | |||
@@ -176,7 +176,6 @@ extern struct ccwgroup_driver qeth_ccwgroup_driver; | |||
176 | /** | 176 | /** |
177 | * card stuff | 177 | * card stuff |
178 | */ | 178 | */ |
179 | #ifdef CONFIG_QETH_PERF_STATS | ||
180 | struct qeth_perf_stats { | 179 | struct qeth_perf_stats { |
181 | unsigned int bufs_rec; | 180 | unsigned int bufs_rec; |
182 | unsigned int bufs_sent; | 181 | unsigned int bufs_sent; |
@@ -211,8 +210,10 @@ struct qeth_perf_stats { | |||
211 | unsigned int large_send_cnt; | 210 | unsigned int large_send_cnt; |
212 | unsigned int sg_skbs_sent; | 211 | unsigned int sg_skbs_sent; |
213 | unsigned int sg_frags_sent; | 212 | unsigned int sg_frags_sent; |
213 | /* initial values when measuring starts */ | ||
214 | unsigned long initial_rx_packets; | ||
215 | unsigned long initial_tx_packets; | ||
214 | }; | 216 | }; |
215 | #endif /* CONFIG_QETH_PERF_STATS */ | ||
216 | 217 | ||
217 | /* Routing stuff */ | 218 | /* Routing stuff */ |
218 | struct qeth_routing_info { | 219 | struct qeth_routing_info { |
@@ -767,6 +768,7 @@ struct qeth_card_options { | |||
767 | int fake_ll; | 768 | int fake_ll; |
768 | int layer2; | 769 | int layer2; |
769 | enum qeth_large_send_types large_send; | 770 | enum qeth_large_send_types large_send; |
771 | int performance_stats; | ||
770 | }; | 772 | }; |
771 | 773 | ||
772 | /* | 774 | /* |
@@ -819,9 +821,7 @@ struct qeth_card { | |||
819 | struct list_head cmd_waiter_list; | 821 | struct list_head cmd_waiter_list; |
820 | /* QDIO buffer handling */ | 822 | /* QDIO buffer handling */ |
821 | struct qeth_qdio_info qdio; | 823 | struct qeth_qdio_info qdio; |
822 | #ifdef CONFIG_QETH_PERF_STATS | ||
823 | struct qeth_perf_stats perf_stats; | 824 | struct qeth_perf_stats perf_stats; |
824 | #endif /* CONFIG_QETH_PERF_STATS */ | ||
825 | int use_hard_stop; | 825 | int use_hard_stop; |
826 | int (*orig_hard_header)(struct sk_buff *,struct net_device *, | 826 | int (*orig_hard_header)(struct sk_buff *,struct net_device *, |
827 | unsigned short,void *,void *,unsigned); | 827 | unsigned short,void *,void *,unsigned); |
@@ -1049,13 +1049,11 @@ qeth_get_arphdr_type(int cardtype, int linktype) | |||
1049 | } | 1049 | } |
1050 | } | 1050 | } |
1051 | 1051 | ||
1052 | #ifdef CONFIG_QETH_PERF_STATS | ||
1053 | static inline int | 1052 | static inline int |
1054 | qeth_get_micros(void) | 1053 | qeth_get_micros(void) |
1055 | { | 1054 | { |
1056 | return (int) (get_clock() >> 12); | 1055 | return (int) (get_clock() >> 12); |
1057 | } | 1056 | } |
1058 | #endif | ||
1059 | 1057 | ||
1060 | static inline int | 1058 | static inline int |
1061 | qeth_get_qdio_q_format(struct qeth_card *card) | 1059 | qeth_get_qdio_q_format(struct qeth_card *card) |