Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/601/?format=api
{ "id": 601, "url": "http://patchwork.ozlabs.org/api/patches/601/?format=api", "web_url": "http://patchwork.ozlabs.org/project/netdev/patch/20080919105703.089971000@de.ibm.com/", "project": { "id": 7, "url": "http://patchwork.ozlabs.org/api/projects/7/?format=api", "name": "Linux network development", "link_name": "netdev", "list_id": "netdev.vger.kernel.org", "list_email": "netdev@vger.kernel.org", "web_url": null, "scm_url": null, "webscm_url": null, "list_archive_url": "", "list_archive_url_format": "", "commit_url_format": "" }, "msgid": "<20080919105703.089971000@de.ibm.com>", "list_archive_url": null, "date": "2008-09-19T10:56:03", "name": "[2/2] qeth: avoid qeth recovery problems", "commit_ref": null, "pull_url": null, "state": "accepted", "archived": true, "hash": "32d999d4b3c3d0cd5abfb281370e6d712812b8e2", "submitter": { "id": 294, "url": "http://patchwork.ozlabs.org/api/people/294/?format=api", "name": null, "email": "frank.blaschka@de.ibm.com" }, "delegate": { "id": 36, "url": "http://patchwork.ozlabs.org/api/users/36/?format=api", "username": "jgarzik", "first_name": "Jeff", "last_name": "Garzik", "email": "jgarzik@pobox.com" }, "mbox": "http://patchwork.ozlabs.org/project/netdev/patch/20080919105703.089971000@de.ibm.com/mbox/", "series": [], "comments": "http://patchwork.ozlabs.org/api/patches/601/comments/", "check": "pending", "checks": "http://patchwork.ozlabs.org/api/patches/601/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<netdev-owner@vger.kernel.org>", "X-Original-To": "patchwork-incoming@ozlabs.org", "Delivered-To": "patchwork-incoming@ozlabs.org", "Received": [ "from vger.kernel.org (vger.kernel.org [209.132.176.167])\n\tby ozlabs.org (Postfix) with ESMTP id 68F05DDECA\n\tfor <patchwork-incoming@ozlabs.org>;\n\tFri, 19 Sep 2008 20:57:48 +1000 (EST)", "(majordomo@vger.kernel.org) by vger.kernel.org via listexpand\n\tid S1751263AbYISK5h (ORCPT <rfc822;patchwork-incoming@ozlabs.org>);\n\tFri, 19 Sep 2008 06:57:37 -0400", "(majordomo@vger.kernel.org) by vger.kernel.org id S1751164AbYISK5h\n\t(ORCPT <rfc822; netdev-outgoing>); Fri, 19 Sep 2008 06:57:37 -0400", "from mtagate3.de.ibm.com ([195.212.29.152]:51300 \"EHLO\n\tmtagate3.de.ibm.com\" rhost-flags-OK-OK-OK-OK) by vger.kernel.org\n\twith ESMTP id S1751016AbYISK5f (ORCPT\n\t<rfc822;netdev@vger.kernel.org>); Fri, 19 Sep 2008 06:57:35 -0400", "from d12nrmr1607.megacenter.de.ibm.com\n\t(d12nrmr1607.megacenter.de.ibm.com [9.149.167.49])\n\tby mtagate3.de.ibm.com (8.13.8/8.13.8) with ESMTP id m8JAvIRW231474; \n\tFri, 19 Sep 2008 10:57:18 GMT", "from d12av02.megacenter.de.ibm.com (d12av02.megacenter.de.ibm.com\n\t[9.149.165.228])\n\tby d12nrmr1607.megacenter.de.ibm.com (8.13.8/8.13.8/NCO v9.1) with\n\tESMTP id m8JAvHdo2113598; Fri, 19 Sep 2008 12:57:17 +0200", "from d12av02.megacenter.de.ibm.com (loopback [127.0.0.1])\n\tby d12av02.megacenter.de.ibm.com (8.12.11.20060308/8.13.3) with ESMTP\n\tid m8JAvEG4003008; Fri, 19 Sep 2008 12:57:14 +0200", "from tuxmaker.boeblingen.de.ibm.com\n\t(tuxmaker.boeblingen.de.ibm.com [9.152.85.9])\n\tby d12av02.megacenter.de.ibm.com (8.12.11.20060308/8.12.11) with\n\tESMTP id m8JAvEJe002788\n\t(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);\n\tFri, 19 Sep 2008 12:57:14 +0200", "from tuxmaker.boeblingen.de.ibm.com (localhost.localdomain\n\t[127.0.0.1])\n\tby tuxmaker.boeblingen.de.ibm.com (8.13.8/8.13.8) with ESMTP id\n\tm8JAv36w012734; Fri, 19 Sep 2008 12:57:03 +0200", "(from blaschka@localhost)\n\tby tuxmaker.boeblingen.de.ibm.com (8.13.8/8.13.8/Submit) id\n\tm8JAv3wx012733; Fri, 19 Sep 2008 12:57:03 +0200" ], "X-Authentication-Warning": "tuxmaker.boeblingen.de.ibm.com: blaschka set\n\tsender to frank.blaschka@de.ibm.com using -f", "Message-Id": "<20080919105703.089971000@de.ibm.com>", "References": "<20080919105601.986966000@de.ibm.com>", "User-Agent": "quilt/0.46-1", "Date": "Fri, 19 Sep 2008 12:56:03 +0200", "From": "frank.blaschka@de.ibm.com", "To": "jgarzik@pobox.com", "Cc": "netdev@vger.kernel.org, linux-s390@vger.kernel.org,\n\tUrsula Braun <ursula.braun@de.ibm.com>", "Subject": "[patch 2/2] qeth: avoid qeth recovery problems", "Content-Disposition": "inline; filename=601-qeth-recovery.diff", "Sender": "netdev-owner@vger.kernel.org", "Precedence": "bulk", "List-ID": "<netdev.vger.kernel.org>", "X-Mailing-List": "netdev@vger.kernel.org" }, "content": "From: Ursula Braun <ursula.braun@de.ibm.com>\n\nDo not touch IFF_UP flag during qeth recovery, but invoke dev_close()\nin case of failing recovery.\nCancel outstanding control commands in case of Data Checks or\nChannel Checks.\nDo not invoke qeth_l2_del_all_mc() in case of a hard stop to speed up\nremoval of qeth devices.\n\nSigned-off-by: Ursula Braun <ursula.braun@de.ibm.com>\nSigned-off-by: Frank Blaschka <frank.blaschka@de.ibm.com>", "diff": "Index: git_linus/drivers/s390/net/qeth_core_main.c\n===================================================================\n--- git_linus.orig/drivers/s390/net/qeth_core_main.c\t2008-09-17 13:46:00.000000000 +0200\n+++ git_linus/drivers/s390/net/qeth_core_main.c\t2008-09-19 11:08:55.000000000 +0200\n@@ -760,7 +760,7 @@\n \t\tif (sense[SENSE_COMMAND_REJECT_BYTE] &\n \t\t SENSE_COMMAND_REJECT_FLAG) {\n \t\t\tQETH_DBF_TEXT(TRACE, 2, \"CMDREJi\");\n-\t\t\treturn 0;\n+\t\t\treturn 1;\n \t\t}\n \t\tif ((sense[2] == 0xaf) && (sense[3] == 0xfe)) {\n \t\t\tQETH_DBF_TEXT(TRACE, 2, \"AFFE\");\n@@ -884,6 +884,7 @@\n \t\t}\n \t\trc = qeth_get_problem(cdev, irb);\n \t\tif (rc) {\n+\t\t\tqeth_clear_ipacmd_list(card);\n \t\t\tqeth_schedule_recovery(card);\n \t\t\tgoto out;\n \t\t}\n@@ -4147,6 +4148,7 @@\n \tunsigned long flags;\n \tstruct qeth_card *card = dev_get_drvdata(&gdev->dev);\n \n+\tQETH_DBF_TEXT(SETUP, 2, \"removedv\");\n \tif (card->discipline.ccwgdriver) {\n \t\tcard->discipline.ccwgdriver->remove(gdev);\n \t\tqeth_core_free_discipline(card);\nIndex: git_linus/drivers/s390/net/qeth_l2_main.c\n===================================================================\n--- git_linus.orig/drivers/s390/net/qeth_l2_main.c\t2008-09-19 11:08:36.000000000 +0200\n+++ git_linus/drivers/s390/net/qeth_l2_main.c\t2008-09-19 11:08:55.000000000 +0200\n@@ -395,7 +395,8 @@\n \t}\n \tif (card->state == CARD_STATE_SOFTSETUP) {\n \t\tqeth_l2_process_vlans(card, 1);\n-\t\tqeth_l2_del_all_mc(card);\n+\t\tif (!card->use_hard_stop)\n+\t\t\tqeth_l2_del_all_mc(card);\n \t\tqeth_clear_ipacmd_list(card);\n \t\tcard->state = CARD_STATE_HARDSETUP;\n \t}\n@@ -826,7 +827,6 @@\n \t}\n \tcard->data.state = CH_STATE_UP;\n \tcard->state = CARD_STATE_UP;\n-\tcard->dev->flags |= IFF_UP;\n \tnetif_start_queue(dev);\n \n \tif (!card->lan_online && netif_carrier_ok(dev))\n@@ -841,7 +841,6 @@\n \n \tQETH_DBF_TEXT(TRACE, 4, \"qethstop\");\n \tnetif_tx_disable(dev);\n-\tcard->dev->flags &= ~IFF_UP;\n \tif (card->state == CARD_STATE_UP)\n \t\tcard->state = CARD_STATE_SOFTSETUP;\n \treturn 0;\n@@ -1138,9 +1137,13 @@\n \tif (!rc)\n \t\tPRINT_INFO(\"Device %s successfully recovered!\\n\",\n \t\t\t CARD_BUS_ID(card));\n-\telse\n+\telse {\n+\t\trtnl_lock();\n+\t\tdev_close(card->dev);\n+\t\trtnl_unlock();\n \t\tPRINT_INFO(\"Device %s could not be recovered!\\n\",\n \t\t\t CARD_BUS_ID(card));\n+\t}\n \treturn 0;\n }\n \nIndex: git_linus/drivers/s390/net/qeth_l3_main.c\n===================================================================\n--- git_linus.orig/drivers/s390/net/qeth_l3_main.c\t2008-09-17 13:46:00.000000000 +0200\n+++ git_linus/drivers/s390/net/qeth_l3_main.c\t2008-09-19 11:08:55.000000000 +0200\n@@ -2795,7 +2795,6 @@\n \t\treturn -ENODEV;\n \tcard->data.state = CH_STATE_UP;\n \tcard->state = CARD_STATE_UP;\n-\tcard->dev->flags |= IFF_UP;\n \tnetif_start_queue(dev);\n \n \tif (!card->lan_online && netif_carrier_ok(dev))\n@@ -2809,7 +2808,6 @@\n \n \tQETH_DBF_TEXT(TRACE, 4, \"qethstop\");\n \tnetif_tx_disable(dev);\n-\tcard->dev->flags &= ~IFF_UP;\n \tif (card->state == CARD_STATE_UP)\n \t\tcard->state = CARD_STATE_SOFTSETUP;\n \treturn 0;\n@@ -3218,9 +3216,13 @@\n \tif (!rc)\n \t\tPRINT_INFO(\"Device %s successfully recovered!\\n\",\n \t\t\t CARD_BUS_ID(card));\n-\telse\n+\telse {\n+\t\trtnl_lock();\n+\t\tdev_close(card->dev);\n+\t\trtnl_unlock();\n \t\tPRINT_INFO(\"Device %s could not be recovered!\\n\",\n \t\t\t CARD_BUS_ID(card));\n+\t}\n \treturn 0;\n }\n \n", "prefixes": [ "2/2" ] }