Lines Matching refs:clip_vcc
88 static void link_vcc(struct clip_vcc *clip_vcc, struct atmarp_entry *entry)
90 pr_debug("%p to entry %p (neigh %p)\n", clip_vcc, entry, entry->neigh);
91 clip_vcc->entry = entry;
92 clip_vcc->xoff = 0; /* @@@ may overrun buffer by one packet */
93 clip_vcc->next = entry->vccs;
94 entry->vccs = clip_vcc;
98 static void unlink_clip_vcc(struct clip_vcc *clip_vcc)
100 struct atmarp_entry *entry = clip_vcc->entry;
101 struct clip_vcc **walk;
104 pr_err("!clip_vcc->entry (clip_vcc %p)\n", clip_vcc);
110 if (*walk == clip_vcc) {
113 *walk = clip_vcc->next; /* atomic */
114 clip_vcc->entry = NULL;
115 if (clip_vcc->xoff)
127 pr_err("ATMARP: failed (entry %p, vcc 0x%p)\n", entry, clip_vcc);
136 struct clip_vcc *cv;
204 struct clip_vcc *clip_vcc = CLIP_VCC(vcc);
209 pr_debug("removing VCC %p\n", clip_vcc);
210 if (clip_vcc->entry)
211 unlink_clip_vcc(clip_vcc);
212 clip_vcc->old_push(vcc, NULL); /* pass on the bad news */
213 kfree(clip_vcc);
222 skb->dev = clip_vcc->entry ? clip_vcc->entry->neigh->dev : clip_devs;
223 /* clip_vcc->entry == NULL if we don't have an IP address yet */
230 if (!clip_vcc->encap ||
244 clip_vcc->last_use = jiffies;
258 struct clip_vcc *clip_vcc = CLIP_VCC(vcc);
264 clip_vcc->old_pop(vcc, skb);
270 old = xchg(&clip_vcc->xoff, 0);
428 struct clip_vcc *clip_vcc;
434 clip_vcc = kmalloc(sizeof(struct clip_vcc), GFP_KERNEL);
435 if (!clip_vcc)
437 pr_debug("%p vcc %p\n", clip_vcc, vcc);
438 clip_vcc->vcc = vcc;
439 vcc->user_back = clip_vcc;
441 clip_vcc->entry = NULL;
442 clip_vcc->xoff = 0;
443 clip_vcc->encap = 1;
444 clip_vcc->last_use = jiffies;
445 clip_vcc->idle_timeout = timeout * HZ;
446 clip_vcc->old_push = vcc->push;
447 clip_vcc->old_pop = vcc->pop;
462 struct clip_vcc *clip_vcc;
469 clip_vcc = CLIP_VCC(vcc);
471 if (!clip_vcc->entry) {
476 unlink_clip_vcc(clip_vcc);
487 if (entry != clip_vcc->entry) {
488 if (!clip_vcc->entry)
492 unlink_clip_vcc(clip_vcc);
494 link_vcc(clip_vcc, entry);
768 struct atmarp_entry *entry, struct clip_vcc *clip_vcc)
775 svc = ((clip_vcc == SEQ_NO_VCC_TOKEN) ||
776 (sk_atm(clip_vcc->vcc)->sk_family == AF_ATMSVC));
778 llc = ((clip_vcc == SEQ_NO_VCC_TOKEN) || clip_vcc->encap);
780 if (clip_vcc == SEQ_NO_VCC_TOKEN)
783 exp = clip_vcc->last_use;
796 if (clip_vcc == SEQ_NO_VCC_TOKEN) {
804 clip_vcc->vcc->dev->number,
805 clip_vcc->vcc->vpi, clip_vcc->vcc->vci);
807 svc_addr(seq, &clip_vcc->vcc->remote);
817 struct clip_vcc *vcc;
820 static struct clip_vcc *clip_seq_next_vcc(struct atmarp_entry *e,
821 struct clip_vcc *curr)
840 struct clip_vcc *vcc = state->vcc;
883 struct clip_vcc *vcc = state->vcc;