Commit e20d6645 authored by Duncan Sands's avatar Duncan Sands Committed by Greg Kroah-Hartman

[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: default avatarDuncan Sands <baldrick@free.fr>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent 86699e35
...@@ -298,7 +298,6 @@ static void usbatm_extract_cells(struct usbatm_data *instance, ...@@ -298,7 +298,6 @@ static void usbatm_extract_cells(struct usbatm_data *instance,
struct usbatm_vcc_data *cached_vcc = NULL; struct usbatm_vcc_data *cached_vcc = NULL;
struct atm_vcc *vcc; struct atm_vcc *vcc;
struct sk_buff *sarb; struct sk_buff *sarb;
struct usbatm_vcc_data *vcc_data;
unsigned int stride = instance->rx_channel.stride; unsigned int stride = instance->rx_channel.stride;
int vci, cached_vci = 0; int vci, cached_vci = 0;
short vpi, cached_vpi = 0; short vpi, cached_vpi = 0;
...@@ -311,18 +310,20 @@ static void usbatm_extract_cells(struct usbatm_data *instance, ...@@ -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); vdbg("%s: vpi %hd, vci %d, pti %d", __func__, vpi, vci, pti);
if (cached_vcc && (vci == cached_vci) && (vpi == cached_vpi)) if ((vci != cached_vci) || (vpi != cached_vpi)) {
vcc_data = cached_vcc;
else if ((vcc_data = usbatm_find_vcc(instance, vpi, vci))) {
cached_vcc = vcc_data;
cached_vpi = vpi; cached_vpi = vpi;
cached_vci = vci; cached_vci = vci;
} else {
atm_dbg(instance, "%s: unknown vpi/vci (%hd/%d)!\n", __func__, vpi, vci); cached_vcc = usbatm_find_vcc(instance, vpi, vci);
continue;
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 */ /* OAM F5 end-to-end */
if (pti == ATM_PTI_E2EF5) { if (pti == ATM_PTI_E2EF5) {
...@@ -331,7 +332,7 @@ static void usbatm_extract_cells(struct usbatm_data *instance, ...@@ -331,7 +332,7 @@ static void usbatm_extract_cells(struct usbatm_data *instance,
continue; continue;
} }
sarb = vcc_data->sarb; sarb = cached_vcc->sarb;
if (sarb->tail + ATM_CELL_PAYLOAD > sarb->end) { if (sarb->tail + ATM_CELL_PAYLOAD > sarb->end) {
atm_dbg(instance, "%s: buffer overrun (sarb->len %u, vcc: 0x%p)!\n", atm_dbg(instance, "%s: buffer overrun (sarb->len %u, vcc: 0x%p)!\n",
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment