From: frank.blaschka@de.ibm.com
To: davem@davemloft.net
Cc: netdev@vger.kernel.org, linux-s390@vger.kernel.org,
Carsten Otte <cotte@de.ibm.com>
Subject: [patch 03/11] [PATCH] qeth: Add new s390 debug feature for each qeth card
Date: Tue, 22 Jun 2010 10:57:04 +0200 [thread overview]
Message-ID: <20100622085807.226194000@de.ibm.com> (raw)
In-Reply-To: 20100622085701.772508000@de.ibm.com
[-- Attachment #1: 603-qeth-dbf-per-card.diff --]
[-- Type: text/plain, Size: 3916 bytes --]
From: Carsten Otte <cotte@de.ibm.com>
This patch adds a debug area for each qeth card. This debug area will replace
various other debug areas that are global for all cards handled by the device
driver. On crash dump analysis this makes life easier when trying to find out
what's going on with an interface. Also, the forest of debug areas for this
device driver is significantly cleared up.
Signed-off-by: Carsten Otte <cotte@de.ibm.com>
Signed-off-by: Frank Blaschka <frank.blaschka@de.ibm.com>
---
drivers/s390/net/qeth_core.h | 13 +++++++++++++
drivers/s390/net/qeth_core_main.c | 21 ++++++++++++++++++---
2 files changed, 31 insertions(+), 3 deletions(-)
diff -urpN linux-2.6/drivers/s390/net/qeth_core.h linux-2.6-patched/drivers/s390/net/qeth_core.h
--- linux-2.6/drivers/s390/net/qeth_core.h 2010-06-22 08:54:58.000000000 +0200
+++ linux-2.6-patched/drivers/s390/net/qeth_core.h 2010-06-22 08:54:58.000000000 +0200
@@ -73,6 +73,18 @@ struct qeth_dbf_info {
#define QETH_DBF_TEXT_(name, level, text...) \
qeth_dbf_longtext(qeth_dbf[QETH_DBF_##name].id, level, text)
+#define QETH_CARD_TEXT(card, level, text) \
+ debug_text_event(card->debug, level, text)
+
+#define QETH_CARD_HEX(card, level, addr, len) \
+ debug_event(card->debug, level, (void *)(addr), len)
+
+#define QETH_CARD_MESSAGE(card, text...) \
+ debug_sprintf_event(card->debug, level, text)
+
+#define QETH_CARD_TEXT_(card, level, text...) \
+ qeth_dbf_longtext(card->debug, level, text)
+
#define SENSE_COMMAND_REJECT_BYTE 0
#define SENSE_COMMAND_REJECT_FLAG 0x80
#define SENSE_RESETTING_EVENT_BYTE 1
@@ -738,6 +750,7 @@ struct qeth_card {
atomic_t force_alloc_skb;
struct service_level qeth_service_level;
struct qdio_ssqd_desc ssqd;
+ debug_info_t *debug;
struct mutex conf_mutex;
};
diff -urpN linux-2.6/drivers/s390/net/qeth_core_main.c linux-2.6-patched/drivers/s390/net/qeth_core_main.c
--- linux-2.6/drivers/s390/net/qeth_core_main.c 2010-06-22 08:54:58.000000000 +0200
+++ linux-2.6-patched/drivers/s390/net/qeth_core_main.c 2010-06-22 08:54:58.000000000 +0200
@@ -4282,6 +4282,7 @@ static int qeth_core_probe_device(struct
struct device *dev;
int rc;
unsigned long flags;
+ char dbf_name[20];
QETH_DBF_TEXT(SETUP, 2, "probedev");
@@ -4297,6 +4298,17 @@ static int qeth_core_probe_device(struct
rc = -ENOMEM;
goto err_dev;
}
+
+ snprintf(dbf_name, sizeof(dbf_name), "qeth_card_%s",
+ dev_name(&gdev->dev));
+ card->debug = debug_register(dbf_name, 2, 1, 8);
+ if (!card->debug) {
+ QETH_DBF_TEXT_(SETUP, 2, "%s", "qcdbf");
+ rc = -ENOMEM;
+ goto err_card;
+ }
+ debug_register_view(card->debug, &debug_hex_ascii_view);
+
card->read.ccwdev = gdev->cdev[0];
card->write.ccwdev = gdev->cdev[1];
card->data.ccwdev = gdev->cdev[2];
@@ -4309,12 +4321,12 @@ static int qeth_core_probe_device(struct
rc = qeth_determine_card_type(card);
if (rc) {
QETH_DBF_TEXT_(SETUP, 2, "3err%d", rc);
- goto err_card;
+ goto err_dbf;
}
rc = qeth_setup_card(card);
if (rc) {
QETH_DBF_TEXT_(SETUP, 2, "2err%d", rc);
- goto err_card;
+ goto err_dbf;
}
if (card->info.type == QETH_CARD_TYPE_OSN)
@@ -4322,7 +4334,7 @@ static int qeth_core_probe_device(struct
else
rc = qeth_core_create_device_attributes(dev);
if (rc)
- goto err_card;
+ goto err_dbf;
switch (card->info.type) {
case QETH_CARD_TYPE_OSN:
case QETH_CARD_TYPE_OSM:
@@ -4352,6 +4364,8 @@ err_attr:
qeth_core_remove_osn_attributes(dev);
else
qeth_core_remove_device_attributes(dev);
+err_dbf:
+ debug_unregister(card->debug);
err_card:
qeth_core_free_card(card);
err_dev:
@@ -4375,6 +4389,7 @@ static void qeth_core_remove_device(stru
} else {
qeth_core_remove_device_attributes(&gdev->dev);
}
+ debug_unregister(card->debug);
write_lock_irqsave(&qeth_core_card_list.rwlock, flags);
list_del(&card->list);
write_unlock_irqrestore(&qeth_core_card_list.rwlock, flags);
next prev parent reply other threads:[~2010-06-22 8:58 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-06-22 8:57 [patch 00/11] s390: qeth patches for 2.6.36 frank.blaschka
2010-06-22 8:57 ` [patch 01/11] [PATCH] smsgiucv: guarantee single iucv connect in thaw frank.blaschka
2010-06-22 8:57 ` [patch 02/11] [PATCH] qeth: Rework qeth_dbf_longtext frank.blaschka
2010-06-22 8:57 ` frank.blaschka [this message]
2010-06-22 8:57 ` [patch 04/11] [PATCH] qeth: Fold qeth_trace debug area frank.blaschka
2010-06-22 8:57 ` [patch 05/11] [PATCH] qeth: Fold qeth_sense " frank.blaschka
2010-06-22 8:57 ` [patch 06/11] [PATCH] qeth: Fold qeth_misc " frank.blaschka
2010-06-22 8:57 ` [patch 07/11] [PATCH] qeth: Fold qeth_qerr " frank.blaschka
2010-06-22 8:57 ` [patch 08/11] [PATCH] qeth: fix use after free for qeths " frank.blaschka
2010-06-22 8:57 ` [patch 09/11] [PATCH] qeth: fix page breaks in hw headers frank.blaschka
2010-06-22 8:57 ` [patch 10/11] [PATCH] qeth: specify correct function level for OSN devices frank.blaschka
2010-06-22 8:57 ` [patch 11/11] [PATCH] qeth: handle missing z/VM authorization of OSX frank.blaschka
2010-06-23 19:08 ` [patch 00/11] s390: qeth patches for 2.6.36 David Miller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20100622085807.226194000@de.ibm.com \
--to=frank.blaschka@de.ibm.com \
--cc=cotte@de.ibm.com \
--cc=davem@davemloft.net \
--cc=linux-s390@vger.kernel.org \
--cc=netdev@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).