From 33455c3c07c0529ef382460573723c60fcfda197 Mon Sep 17 00:00:00 2001 From: Duncan Sands Date: Thu, 26 May 2005 14:32:51 +0200 Subject: [PATCH] --- yaml --- r: 3697 b: refs/heads/master c: e20d6645f794b51835e6f740a5b6f95c7e3fd843 h: refs/heads/master i: 3695: 751b07296645bc8c7604c50760558822a1e15681 v: v3 --- [refs] | 2 +- trunk/drivers/usb/atm/usbatm.c | 21 +++++++++++---------- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/[refs] b/[refs] index afbda9d0c29a..a56da12d3e4c 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 86699e35923366ccb5c3451d24e94deb9dd0af29 +refs/heads/master: e20d6645f794b51835e6f740a5b6f95c7e3fd843 diff --git a/trunk/drivers/usb/atm/usbatm.c b/trunk/drivers/usb/atm/usbatm.c index e134e2794486..bb2b5d256e34 100644 --- a/trunk/drivers/usb/atm/usbatm.c +++ b/trunk/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",