Lines Matching refs:entry

76 static void link_vcc(struct clip_vcc *clip_vcc, struct atmarp_entry *entry)
78 pr_debug("%p to entry %p (neigh %p)\n", clip_vcc, entry, entry->neigh);
79 clip_vcc->entry = entry;
81 clip_vcc->next = entry->vccs;
82 entry->vccs = clip_vcc;
83 entry->neigh->used = jiffies;
88 struct atmarp_entry *entry = clip_vcc->entry;
91 if (!entry) {
92 pr_err("!clip_vcc->entry (clip_vcc %p)\n", clip_vcc);
95 netif_tx_lock_bh(entry->neigh->dev); /* block clip_start_xmit() */
96 entry->neigh->used = jiffies;
97 for (walk = &entry->vccs; *walk; walk = &(*walk)->next)
102 clip_vcc->entry = NULL;
104 netif_wake_queue(entry->neigh->dev);
105 if (entry->vccs)
107 entry->expires = jiffies - 1;
109 error = neigh_update(entry->neigh, NULL, NUD_NONE,
115 pr_err("ATMARP: failed (entry %p, vcc 0x%p)\n", entry, clip_vcc);
117 netif_tx_unlock_bh(entry->neigh->dev);
120 /* The neighbour entry n->lock is held. */
123 struct atmarp_entry *entry = neighbour_priv(n);
128 for (cv = entry->vccs; cv; cv = cv->next) {
132 pr_debug("releasing vcc %p->%p of entry %p\n",
133 cv, cv->vcc, entry);
138 if (entry->vccs || time_before(jiffies, entry->expires))
204 if (clip_vcc->entry)
211 skb->dev = clip_vcc->entry ? clip_vcc->entry->neigh->dev : clip_devs;
212 /* clip_vcc->entry == NULL if we don't have an IP address yet */
292 struct atmarp_entry *entry = neighbour_priv(neigh);
303 entry->neigh = neigh;
304 entry->vccs = NULL;
305 entry->expires = jiffies - 1;
314 * to allocate the neighbour entry but not to ask atmarpd for resolution. Also,
333 struct atmarp_entry *entry;
360 entry = neighbour_priv(n);
361 if (!entry->vccs) {
362 if (time_after(jiffies, entry->expires)) {
364 entry->expires = jiffies + ATMARP_RETRY_DELAY * HZ;
367 if (entry->neigh->arp_queue.qlen < ATMARP_MAX_UNRES_PACKETS)
368 skb_queue_tail(&entry->neigh->arp_queue, skb);
375 pr_debug("neigh %p, vccs %p\n", entry, entry->vccs);
376 ATM_SKB(skb)->vcc = vcc = entry->vccs->vcc;
378 if (entry->vccs->encap) {
386 entry->vccs->last_use = jiffies;
388 old = xchg(&entry->vccs->xoff, 1); /* assume XOFF ... */
397 entry->vccs->xoff = 0;
403 if (!entry->vccs->xoff)
428 clip_vcc->entry = NULL;
447 struct atmarp_entry *entry;
458 if (!clip_vcc->entry) {
459 pr_err("hiding hidden ATMARP entry\n");
473 entry = neighbour_priv(neigh);
474 if (entry != clip_vcc->entry) {
475 if (!clip_vcc->entry)
481 link_vcc(clip_vcc, entry);
733 /* This means the neighbour entry has no attached VCC objects. */
737 struct atmarp_entry *entry, struct clip_vcc *clip_vcc)
750 exp = entry->neigh->used;
766 if (time_before(jiffies, entry->expires))
770 refcount_read(&entry->neigh->refcnt));