aboutsummaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorDuncan Sands <duncan.sands@math.u-psud.fr>2005-05-26 14:32:51 +0200
committerGreg Kroah-Hartman <gregkh@suse.de>2005-06-27 14:43:57 -0700
commite20d6645f794b51835e6f740a5b6f95c7e3fd843 (patch)
tree2f5ea85d786d96549aac73c8f0c7b0118195c0c0 /drivers
parent86699e35923366ccb5c3451d24e94deb9dd0af29 (diff)
[PATCH] USB ATM: reduce log spamming
Reduce the number of "unknown vpi/vci" debug messages to (usually) at most one per-urb, rather than one per-cell. This is only an issue when (a) many packets come in but no connection is open; and (b) CONFIG_USB_DEBUG is set. Signed-off-by: Duncan Sands <baldrick@free.fr> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/usb/atm/usbatm.c21
1 files changed, 11 insertions, 10 deletions
diff --git a/drivers/usb/atm/usbatm.c b/drivers/usb/atm/usbatm.c
index e134e279448..bb2b5d256e3 100644
--- a/drivers/usb/atm/usbatm.c
+++ b/drivers/usb/atm/usbatm.c
@@ -298,7 +298,6 @@ static void usbatm_extract_cells(struct usbatm_data *instance,
struct usbatm_vcc_data *cached_vcc = NULL;
struct atm_vcc *vcc;
struct sk_buff *sarb;
- struct usbatm_vcc_data *vcc_data;
unsigned int stride = instance->rx_channel.stride;
int vci, cached_vci = 0;
short vpi, cached_vpi = 0;
@@ -311,18 +310,20 @@ static void usbatm_extract_cells(struct usbatm_data *instance,
vdbg("%s: vpi %hd, vci %d, pti %d", __func__, vpi, vci, pti);
- if (cached_vcc && (vci == cached_vci) && (vpi == cached_vpi))
- vcc_data = cached_vcc;
- else if ((vcc_data = usbatm_find_vcc(instance, vpi, vci))) {
- cached_vcc = vcc_data;
+ if ((vci != cached_vci) || (vpi != cached_vpi)) {
cached_vpi = vpi;
cached_vci = vci;
- } else {
- atm_dbg(instance, "%s: unknown vpi/vci (%hd/%d)!\n", __func__, vpi, vci);
- continue;
+
+ cached_vcc = usbatm_find_vcc(instance, vpi, vci);
+
+ if (!cached_vcc)
+ atm_dbg(instance, "%s: unknown vpi/vci (%hd/%d)!\n", __func__, vpi, vci);
}
- vcc = vcc_data->vcc;
+ if (!cached_vcc)
+ continue;
+
+ vcc = cached_vcc->vcc;
/* OAM F5 end-to-end */
if (pti == ATM_PTI_E2EF5) {
@@ -331,7 +332,7 @@ static void usbatm_extract_cells(struct usbatm_data *instance,
continue;
}
- sarb = vcc_data->sarb;
+ sarb = cached_vcc->sarb;
if (sarb->tail + ATM_CELL_PAYLOAD > sarb->end) {
atm_dbg(instance, "%s: buffer overrun (sarb->len %u, vcc: 0x%p)!\n",