Lines Matching refs:entry
76 static void link_vcc(struct clip_vcc *clip_vcc, struct atmarp_entry *entry) in link_vcc() argument
78 pr_debug("%p to entry %p (neigh %p)\n", clip_vcc, entry, entry->neigh); in link_vcc()
79 clip_vcc->entry = entry; in link_vcc()
81 clip_vcc->next = entry->vccs; in link_vcc()
82 entry->vccs = clip_vcc; in link_vcc()
83 entry->neigh->used = jiffies; in link_vcc()
88 struct atmarp_entry *entry = clip_vcc->entry; in unlink_clip_vcc() local
91 if (!entry) { in unlink_clip_vcc()
95 netif_tx_lock_bh(entry->neigh->dev); /* block clip_start_xmit() */ in unlink_clip_vcc()
96 entry->neigh->used = jiffies; in unlink_clip_vcc()
97 for (walk = &entry->vccs; *walk; walk = &(*walk)->next) in unlink_clip_vcc()
102 clip_vcc->entry = NULL; in unlink_clip_vcc()
104 netif_wake_queue(entry->neigh->dev); in unlink_clip_vcc()
105 if (entry->vccs) in unlink_clip_vcc()
107 entry->expires = jiffies - 1; in unlink_clip_vcc()
109 error = neigh_update(entry->neigh, NULL, NUD_NONE, in unlink_clip_vcc()
115 pr_err("ATMARP: failed (entry %p, vcc 0x%p)\n", entry, clip_vcc); in unlink_clip_vcc()
117 netif_tx_unlock_bh(entry->neigh->dev); in unlink_clip_vcc()
123 struct atmarp_entry *entry = neighbour_priv(n); in neigh_check_cb() local
128 for (cv = entry->vccs; cv; cv = cv->next) { in neigh_check_cb()
133 cv, cv->vcc, entry); in neigh_check_cb()
138 if (entry->vccs || time_before(jiffies, entry->expires)) in neigh_check_cb()
204 if (clip_vcc->entry) in clip_push()
211 skb->dev = clip_vcc->entry ? clip_vcc->entry->neigh->dev : clip_devs; in clip_push()
292 struct atmarp_entry *entry = neighbour_priv(neigh); in clip_constructor() local
303 entry->neigh = neigh; in clip_constructor()
304 entry->vccs = NULL; in clip_constructor()
305 entry->expires = jiffies - 1; in clip_constructor()
333 struct atmarp_entry *entry; in clip_start_xmit() local
360 entry = neighbour_priv(n); in clip_start_xmit()
361 if (!entry->vccs) { in clip_start_xmit()
362 if (time_after(jiffies, entry->expires)) { in clip_start_xmit()
364 entry->expires = jiffies + ATMARP_RETRY_DELAY * HZ; in clip_start_xmit()
367 if (entry->neigh->arp_queue.qlen < ATMARP_MAX_UNRES_PACKETS) in clip_start_xmit()
368 skb_queue_tail(&entry->neigh->arp_queue, skb); in clip_start_xmit()
375 pr_debug("neigh %p, vccs %p\n", entry, entry->vccs); in clip_start_xmit()
376 ATM_SKB(skb)->vcc = vcc = entry->vccs->vcc; in clip_start_xmit()
378 if (entry->vccs->encap) { in clip_start_xmit()
386 entry->vccs->last_use = jiffies; in clip_start_xmit()
388 old = xchg(&entry->vccs->xoff, 1); /* assume XOFF ... */ in clip_start_xmit()
397 entry->vccs->xoff = 0; in clip_start_xmit()
403 if (!entry->vccs->xoff) in clip_start_xmit()
428 clip_vcc->entry = NULL; in clip_mkip()
447 struct atmarp_entry *entry; in clip_setentry() local
458 if (!clip_vcc->entry) { in clip_setentry()
473 entry = neighbour_priv(neigh); in clip_setentry()
474 if (entry != clip_vcc->entry) { in clip_setentry()
475 if (!clip_vcc->entry) in clip_setentry()
481 link_vcc(clip_vcc, entry); in clip_setentry()
737 struct atmarp_entry *entry, struct clip_vcc *clip_vcc) in atmarp_info() argument
750 exp = entry->neigh->used; in atmarp_info()
766 if (time_before(jiffies, entry->expires)) in atmarp_info()
770 refcount_read(&entry->neigh->refcnt)); in atmarp_info()