All of lore.kernel.org
 help / color / mirror / Atom feed
* [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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.