* [patch 0/4] s390: qeth fixes 2.6.28-rc1
@ 2008-10-24 9:16 frank.blaschka
2008-10-24 9:16 ` [patch 1/4] qeth: remove non-recover-thread checkings frank.blaschka
` (3 more replies)
0 siblings, 4 replies; 6+ messages in thread
From: frank.blaschka @ 2008-10-24 9:16 UTC (permalink / raw)
To: jgarzik; +Cc: netdev, linux-s390
Hi Jeff,
here are a couple of qeth bug fixes for 2.6.28-rc1
shortlog:
Ursula Braun (2)
qeth: remove non-recover-thread checkings
qeth: avoid skb_under_panic for malformatted inbound data
Frank Blaschka (2)
qeth: fix offset error in non prealloc header path
qeth: remove unnecessary support ckeck in sysfs route6
Thanks,
Frank
--
^ permalink raw reply [flat|nested] 6+ messages in thread
* [patch 1/4] qeth: remove non-recover-thread checkings
2008-10-24 9:16 [patch 0/4] s390: qeth fixes 2.6.28-rc1 frank.blaschka
@ 2008-10-24 9:16 ` frank.blaschka
2008-10-27 18:52 ` Jeff Garzik
2008-10-24 9:16 ` [patch 2/4] qeth: fix offset error in non prealloc header path frank.blaschka
` (2 subsequent siblings)
3 siblings, 1 reply; 6+ messages in thread
From: frank.blaschka @ 2008-10-24 9:16 UTC (permalink / raw)
To: jgarzik; +Cc: netdev, linux-s390, Ursula Braun
[-- Attachment #1: 600-qeth-thread.diff --]
[-- Type: text/plain, Size: 3565 bytes --]
From: Ursula Braun <ursula.braun@de.ibm.com>
IP-threads have been removed from the qeth driver. Only the
recover-thread is left over. This makes checkings for
non-recover threads superfluous.
Signed-off-by: Ursula Braun <ursula.braun@de.ibm.com>
Signed-off-by: Frank Blaschka <frank.blaschka@de.ibm.com>
---
drivers/s390/net/qeth_l2_main.c | 14 +-------------
drivers/s390/net/qeth_l3_main.c | 13 +------------
2 files changed, 2 insertions(+), 25 deletions(-)
Index: git_linus/drivers/s390/net/qeth_l2_main.c
===================================================================
--- git_linus.orig/drivers/s390/net/qeth_l2_main.c
+++ git_linus/drivers/s390/net/qeth_l2_main.c
@@ -373,8 +373,6 @@ static int qeth_l2_stop_card(struct qeth
QETH_DBF_HEX(SETUP, 2, &card, sizeof(void *));
qeth_set_allowed_threads(card, 0, 1);
- if (qeth_wait_for_threads(card, ~QETH_RECOVER_THREAD))
- return -ERESTARTSYS;
if (card->read.state == CH_STATE_UP &&
card->write.state == CH_STATE_UP &&
(card->state == CARD_STATE_UP)) {
@@ -975,12 +973,6 @@ static int __qeth_l2_set_online(struct c
QETH_DBF_HEX(SETUP, 2, &card, sizeof(void *));
qeth_set_allowed_threads(card, QETH_RECOVER_THREAD, 1);
- if (qeth_wait_for_threads(card, ~QETH_RECOVER_THREAD)) {
- PRINT_WARN("set_online of card %s interrupted by user!\n",
- CARD_BUS_ID(card));
- return -ERESTARTSYS;
- }
-
recover_flag = card->state;
rc = ccw_device_set_online(CARD_RDEV(card));
if (rc) {
@@ -1091,11 +1083,7 @@ static int __qeth_l2_set_offline(struct
if (card->dev && netif_carrier_ok(card->dev))
netif_carrier_off(card->dev);
recover_flag = card->state;
- if (qeth_l2_stop_card(card, recovery_mode) == -ERESTARTSYS) {
- PRINT_WARN("Stopping card %s interrupted by user!\n",
- CARD_BUS_ID(card));
- return -ERESTARTSYS;
- }
+ qeth_l2_stop_card(card, recovery_mode);
rc = ccw_device_set_offline(CARD_DDEV(card));
rc2 = ccw_device_set_offline(CARD_WDEV(card));
rc3 = ccw_device_set_offline(CARD_RDEV(card));
Index: git_linus/drivers/s390/net/qeth_l3_main.c
===================================================================
--- git_linus.orig/drivers/s390/net/qeth_l3_main.c
+++ git_linus/drivers/s390/net/qeth_l3_main.c
@@ -2064,8 +2064,6 @@ static int qeth_l3_stop_card(struct qeth
QETH_DBF_HEX(SETUP, 2, &card, sizeof(void *));
qeth_set_allowed_threads(card, 0, 1);
- if (qeth_wait_for_threads(card, ~QETH_RECOVER_THREAD))
- return -ERESTARTSYS;
if (card->read.state == CH_STATE_UP &&
card->write.state == CH_STATE_UP &&
(card->state == CARD_STATE_UP)) {
@@ -3049,11 +3047,6 @@ static int __qeth_l3_set_online(struct c
QETH_DBF_HEX(SETUP, 2, &card, sizeof(void *));
qeth_set_allowed_threads(card, QETH_RECOVER_THREAD, 1);
- if (qeth_wait_for_threads(card, ~QETH_RECOVER_THREAD)) {
- PRINT_WARN("set_online of card %s interrupted by user!\n",
- CARD_BUS_ID(card));
- return -ERESTARTSYS;
- }
recover_flag = card->state;
rc = ccw_device_set_online(CARD_RDEV(card));
@@ -3170,11 +3163,7 @@ static int __qeth_l3_set_offline(struct
if (card->dev && netif_carrier_ok(card->dev))
netif_carrier_off(card->dev);
recover_flag = card->state;
- if (qeth_l3_stop_card(card, recovery_mode) == -ERESTARTSYS) {
- PRINT_WARN("Stopping card %s interrupted by user!\n",
- CARD_BUS_ID(card));
- return -ERESTARTSYS;
- }
+ qeth_l3_stop_card(card, recovery_mode);
rc = ccw_device_set_offline(CARD_DDEV(card));
rc2 = ccw_device_set_offline(CARD_WDEV(card));
rc3 = ccw_device_set_offline(CARD_RDEV(card));
--
^ permalink raw reply [flat|nested] 6+ messages in thread
* [patch 2/4] qeth: fix offset error in non prealloc header path
2008-10-24 9:16 [patch 0/4] s390: qeth fixes 2.6.28-rc1 frank.blaschka
2008-10-24 9:16 ` [patch 1/4] qeth: remove non-recover-thread checkings frank.blaschka
@ 2008-10-24 9:16 ` frank.blaschka
2008-10-24 9:16 ` [patch 3/4] qeth: remove unnecessary support ckeck in sysfs route6 frank.blaschka
2008-10-24 9:16 ` [patch 4/4] qeth: avoid skb_under_panic for malformatted inbound data frank.blaschka
3 siblings, 0 replies; 6+ messages in thread
From: frank.blaschka @ 2008-10-24 9:16 UTC (permalink / raw)
To: jgarzik; +Cc: netdev, linux-s390
[-- Attachment #1: 603-qeth-offset.diff --]
[-- Type: text/plain, Size: 938 bytes --]
From: Frank Blaschka <frank.blaschka@de.ibm.com>
For the non preallocated qeth header code path we should not
change the header length.
Signed-off-by: Frank Blaschka <frank.blaschka@de.ibm.com>
---
drivers/s390/net/qeth_core_main.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
Index: git_linus/drivers/s390/net/qeth_core_main.c
===================================================================
--- git_linus.orig/drivers/s390/net/qeth_core_main.c
+++ git_linus/drivers/s390/net/qeth_core_main.c
@@ -3025,7 +3025,7 @@ static inline void __qeth_fill_buffer(st
struct qdio_buffer *buffer, int is_tso, int *next_element_to_fill,
int offset)
{
- int length = skb->len - offset;
+ int length = skb->len;
int length_here;
int element;
char *data;
@@ -3037,6 +3037,7 @@ static inline void __qeth_fill_buffer(st
if (offset >= 0) {
data = skb->data + offset;
+ length -= offset;
first_lap = 0;
}
--
^ permalink raw reply [flat|nested] 6+ messages in thread
* [patch 3/4] qeth: remove unnecessary support ckeck in sysfs route6
2008-10-24 9:16 [patch 0/4] s390: qeth fixes 2.6.28-rc1 frank.blaschka
2008-10-24 9:16 ` [patch 1/4] qeth: remove non-recover-thread checkings frank.blaschka
2008-10-24 9:16 ` [patch 2/4] qeth: fix offset error in non prealloc header path frank.blaschka
@ 2008-10-24 9:16 ` frank.blaschka
2008-10-24 9:16 ` [patch 4/4] qeth: avoid skb_under_panic for malformatted inbound data frank.blaschka
3 siblings, 0 replies; 6+ messages in thread
From: frank.blaschka @ 2008-10-24 9:16 UTC (permalink / raw)
To: jgarzik; +Cc: netdev, linux-s390
[-- Attachment #1: 604-qeth-ipv6check.diff --]
[-- Type: text/plain, Size: 1054 bytes --]
From: Frank Blaschka <frank.blaschka@de.ibm.com>
Removing this check improves usability because you do not have to
set the device online to initially set ipv6 routing option.
Signed-off-by: Frank Blaschka <frank.blaschka@de.ibm.com>
---
drivers/s390/net/qeth_l3_sys.c | 7 -------
1 file changed, 7 deletions(-)
Index: git_linus/drivers/s390/net/qeth_l3_sys.c
===================================================================
--- git_linus.orig/drivers/s390/net/qeth_l3_sys.c
+++ git_linus/drivers/s390/net/qeth_l3_sys.c
@@ -121,9 +121,6 @@ static ssize_t qeth_l3_dev_route6_show(s
if (!card)
return -EINVAL;
- if (!qeth_is_supported(card, IPA_IPV6))
- return sprintf(buf, "%s\n", "n/a");
-
return qeth_l3_dev_route_show(card, &card->options.route6, buf);
}
@@ -135,10 +132,6 @@ static ssize_t qeth_l3_dev_route6_store(
if (!card)
return -EINVAL;
- if (!qeth_is_supported(card, IPA_IPV6)) {
- return -EOPNOTSUPP;
- }
-
return qeth_l3_dev_route_store(card, &card->options.route6,
QETH_PROT_IPV6, buf, count);
}
--
^ permalink raw reply [flat|nested] 6+ messages in thread
* [patch 4/4] qeth: avoid skb_under_panic for malformatted inbound data
2008-10-24 9:16 [patch 0/4] s390: qeth fixes 2.6.28-rc1 frank.blaschka
` (2 preceding siblings ...)
2008-10-24 9:16 ` [patch 3/4] qeth: remove unnecessary support ckeck in sysfs route6 frank.blaschka
@ 2008-10-24 9:16 ` frank.blaschka
3 siblings, 0 replies; 6+ messages in thread
From: frank.blaschka @ 2008-10-24 9:16 UTC (permalink / raw)
To: jgarzik; +Cc: netdev, linux-s390, Ursula Braun
[-- Attachment #1: 605-qeth-panic.diff --]
[-- Type: text/plain, Size: 1270 bytes --]
From: Ursula Braun <ursula.braun@de.ibm.com>
To make the qeth driver more robust in case of malformatted inbound
packets due to hardware problems, an additional check for
OSN-card-type is added for OSN-type packets.
Signed-off-by: Ursula Braun <ursula.braun@de.ibm.com>
Signed-off-by: Frank Blaschka <frank.blaschka@de.ibm.com>
---
drivers/s390/net/qeth_l2_main.c | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
Index: git_linus/drivers/s390/net/qeth_l2_main.c
===================================================================
--- git_linus.orig/drivers/s390/net/qeth_l2_main.c
+++ git_linus/drivers/s390/net/qeth_l2_main.c
@@ -449,12 +449,15 @@ static void qeth_l2_process_inbound_buff
netif_rx(skb);
break;
case QETH_HEADER_TYPE_OSN:
- skb_push(skb, sizeof(struct qeth_hdr));
- skb_copy_to_linear_data(skb, hdr,
+ if (card->info.type == QETH_CARD_TYPE_OSN) {
+ skb_push(skb, sizeof(struct qeth_hdr));
+ skb_copy_to_linear_data(skb, hdr,
sizeof(struct qeth_hdr));
- len = skb->len;
- card->osn_info.data_cb(skb);
- break;
+ len = skb->len;
+ card->osn_info.data_cb(skb);
+ break;
+ }
+ /* else unknown */
default:
dev_kfree_skb_any(skb);
QETH_DBF_TEXT(TRACE, 3, "inbunkno");
--
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [patch 1/4] qeth: remove non-recover-thread checkings
2008-10-24 9:16 ` [patch 1/4] qeth: remove non-recover-thread checkings frank.blaschka
@ 2008-10-27 18:52 ` Jeff Garzik
0 siblings, 0 replies; 6+ messages in thread
From: Jeff Garzik @ 2008-10-27 18:52 UTC (permalink / raw)
To: frank.blaschka; +Cc: netdev, linux-s390, Ursula Braun
frank.blaschka@de.ibm.com wrote:
> From: Ursula Braun <ursula.braun@de.ibm.com>
>
> IP-threads have been removed from the qeth driver. Only the
> recover-thread is left over. This makes checkings for
> non-recover threads superfluous.
>
> Signed-off-by: Ursula Braun <ursula.braun@de.ibm.com>
> Signed-off-by: Frank Blaschka <frank.blaschka@de.ibm.com>
> ---
>
> drivers/s390/net/qeth_l2_main.c | 14 +-------------
> drivers/s390/net/qeth_l3_main.c | 13 +------------
> 2 files changed, 2 insertions(+), 25 deletions(-)
applied 1-4
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2008-10-27 18:52 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-10-24 9:16 [patch 0/4] s390: qeth fixes 2.6.28-rc1 frank.blaschka
2008-10-24 9:16 ` [patch 1/4] qeth: remove non-recover-thread checkings frank.blaschka
2008-10-27 18:52 ` Jeff Garzik
2008-10-24 9:16 ` [patch 2/4] qeth: fix offset error in non prealloc header path frank.blaschka
2008-10-24 9:16 ` [patch 3/4] qeth: remove unnecessary support ckeck in sysfs route6 frank.blaschka
2008-10-24 9:16 ` [patch 4/4] qeth: avoid skb_under_panic for malformatted inbound data frank.blaschka
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).