Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 52240062 authored by Stephen Hemminger's avatar Stephen Hemminger Committed by David S. Miller
Browse files

[ATM]: Replace DPRINTK() with pr_debug().



Get rid of using DPRINTK macro in ATM and use pr_debug (in kernel.h).
Using the standard macro is cleaner and forces code to check for bad arguments
and formatting.

Fixes from Thomas Graf.

Signed-off-by: default avatarStephen Hemminger <shemminger@linux-foundation.org>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 23f1f4ef
Loading
Loading
Loading
Loading
+11 −17
Original line number Original line Diff line number Diff line
@@ -34,12 +34,6 @@ Author: Marcell GAL, 2000, XDSL Ltd, Hungary
 */
 */
/* #define FASTER_VERSION */
/* #define FASTER_VERSION */


#ifdef DEBUG
#define DPRINTK(format, args...) printk(KERN_DEBUG "br2684: " format, ##args)
#else
#define DPRINTK(format, args...)
#endif

#ifdef SKB_DEBUG
#ifdef SKB_DEBUG
static void skb_debug(const struct sk_buff *skb)
static void skb_debug(const struct sk_buff *skb)
{
{
@@ -180,7 +174,7 @@ static int br2684_xmit_vcc(struct sk_buff *skb, struct br2684_dev *brdev,
	skb_debug(skb);
	skb_debug(skb);


	ATM_SKB(skb)->vcc = atmvcc = brvcc->atmvcc;
	ATM_SKB(skb)->vcc = atmvcc = brvcc->atmvcc;
	DPRINTK("atm_skb(%p)->vcc(%p)->dev(%p)\n", skb, atmvcc, atmvcc->dev);
	pr_debug("atm_skb(%p)->vcc(%p)->dev(%p)\n", skb, atmvcc, atmvcc->dev);
	if (!atm_may_send(atmvcc, skb->truesize)) {
	if (!atm_may_send(atmvcc, skb->truesize)) {
		/* we free this here for now, because we cannot know in a higher
		/* we free this here for now, because we cannot know in a higher
			layer whether the skb point it supplied wasn't freed yet.
			layer whether the skb point it supplied wasn't freed yet.
@@ -209,11 +203,11 @@ static int br2684_start_xmit(struct sk_buff *skb, struct net_device *dev)
	struct br2684_dev *brdev = BRPRIV(dev);
	struct br2684_dev *brdev = BRPRIV(dev);
	struct br2684_vcc *brvcc;
	struct br2684_vcc *brvcc;


	DPRINTK("br2684_start_xmit, skb->dst=%p\n", skb->dst);
	pr_debug("br2684_start_xmit, skb->dst=%p\n", skb->dst);
	read_lock(&devs_lock);
	read_lock(&devs_lock);
	brvcc = pick_outgoing_vcc(skb, brdev);
	brvcc = pick_outgoing_vcc(skb, brdev);
	if (brvcc == NULL) {
	if (brvcc == NULL) {
		DPRINTK("no vcc attached to dev %s\n", dev->name);
		pr_debug("no vcc attached to dev %s\n", dev->name);
		brdev->stats.tx_errors++;
		brdev->stats.tx_errors++;
		brdev->stats.tx_carrier_errors++;
		brdev->stats.tx_carrier_errors++;
		/* netif_stop_queue(dev); */
		/* netif_stop_queue(dev); */
@@ -239,7 +233,7 @@ static int br2684_start_xmit(struct sk_buff *skb, struct net_device *dev)


static struct net_device_stats *br2684_get_stats(struct net_device *dev)
static struct net_device_stats *br2684_get_stats(struct net_device *dev)
{
{
	DPRINTK("br2684_get_stats\n");
	pr_debug("br2684_get_stats\n");
	return &BRPRIV(dev)->stats;
	return &BRPRIV(dev)->stats;
}
}


@@ -390,7 +384,7 @@ packet_fails_filter(__be16 type, struct br2684_vcc *brvcc, struct sk_buff *skb)


static void br2684_close_vcc(struct br2684_vcc *brvcc)
static void br2684_close_vcc(struct br2684_vcc *brvcc)
{
{
	DPRINTK("removing VCC %p from dev %p\n", brvcc, brvcc->device);
	pr_debug("removing VCC %p from dev %p\n", brvcc, brvcc->device);
	write_lock_irq(&devs_lock);
	write_lock_irq(&devs_lock);
	list_del(&brvcc->brvccs);
	list_del(&brvcc->brvccs);
	write_unlock_irq(&devs_lock);
	write_unlock_irq(&devs_lock);
@@ -408,7 +402,7 @@ static void br2684_push(struct atm_vcc *atmvcc, struct sk_buff *skb)
	struct br2684_dev *brdev = BRPRIV(net_dev);
	struct br2684_dev *brdev = BRPRIV(net_dev);
	int plen = sizeof(llc_oui_pid_pad) + ETH_HLEN;
	int plen = sizeof(llc_oui_pid_pad) + ETH_HLEN;


	DPRINTK("br2684_push\n");
	pr_debug("br2684_push\n");


	if (unlikely(skb == NULL)) {
	if (unlikely(skb == NULL)) {
		/* skb==NULL means VCC is being destroyed */
		/* skb==NULL means VCC is being destroyed */
@@ -425,7 +419,7 @@ static void br2684_push(struct atm_vcc *atmvcc, struct sk_buff *skb)


	skb_debug(skb);
	skb_debug(skb);
	atm_return(atmvcc, skb->truesize);
	atm_return(atmvcc, skb->truesize);
	DPRINTK("skb from brdev %p\n", brdev);
	pr_debug("skb from brdev %p\n", brdev);
	if (brvcc->encaps == e_llc) {
	if (brvcc->encaps == e_llc) {
		/* let us waste some time for checking the encapsulation.
		/* let us waste some time for checking the encapsulation.
		   Note, that only 7 char is checked so frames with a valid FCS
		   Note, that only 7 char is checked so frames with a valid FCS
@@ -474,7 +468,7 @@ static void br2684_push(struct atm_vcc *atmvcc, struct sk_buff *skb)
#endif /* CONFIG_ATM_BR2684_IPFILTER */
#endif /* CONFIG_ATM_BR2684_IPFILTER */
	skb->dev = net_dev;
	skb->dev = net_dev;
	ATM_SKB(skb)->vcc = atmvcc;	/* needed ? */
	ATM_SKB(skb)->vcc = atmvcc;	/* needed ? */
	DPRINTK("received packet's protocol: %x\n", ntohs(skb->protocol));
	pr_debug("received packet's protocol: %x\n", ntohs(skb->protocol));
	skb_debug(skb);
	skb_debug(skb);
	if (unlikely(!(net_dev->flags & IFF_UP))) {
	if (unlikely(!(net_dev->flags & IFF_UP))) {
		/* sigh, interface is down */
		/* sigh, interface is down */
@@ -532,7 +526,7 @@ Note: we do not have explicit unassign, but look at _push()
		err = -EINVAL;
		err = -EINVAL;
		goto error;
		goto error;
	}
	}
	DPRINTK("br2684_regvcc vcc=%p, encaps=%d, brvcc=%p\n", atmvcc, be.encaps,
	pr_debug("br2684_regvcc vcc=%p, encaps=%d, brvcc=%p\n", atmvcc, be.encaps,
		brvcc);
		brvcc);
	if (list_empty(&brdev->brvccs) && !brdev->mac_was_set) {
	if (list_empty(&brdev->brvccs) && !brdev->mac_was_set) {
		unsigned char *esi = atmvcc->dev->esi;
		unsigned char *esi = atmvcc->dev->esi;
@@ -612,7 +606,7 @@ static int br2684_create(void __user *arg)
	struct br2684_dev *brdev;
	struct br2684_dev *brdev;
	struct atm_newif_br2684 ni;
	struct atm_newif_br2684 ni;


	DPRINTK("br2684_create\n");
	pr_debug("br2684_create\n");


	if (copy_from_user(&ni, arg, sizeof ni)) {
	if (copy_from_user(&ni, arg, sizeof ni)) {
		return -EFAULT;
		return -EFAULT;
@@ -629,7 +623,7 @@ static int br2684_create(void __user *arg)


	brdev = BRPRIV(netdev);
	brdev = BRPRIV(netdev);


	DPRINTK("registered netdev %s\n", netdev->name);
	pr_debug("registered netdev %s\n", netdev->name);
	/* open, stop, do_ioctl ? */
	/* open, stop, do_ioctl ? */
	err = register_netdev(netdev);
	err = register_netdev(netdev);
	if (err < 0) {
	if (err < 0) {
+27 −35
Original line number Original line Diff line number Diff line
@@ -40,14 +40,6 @@
#include "resources.h"
#include "resources.h"
#include <net/atmclip.h>
#include <net/atmclip.h>



#if 0
#define DPRINTK(format,args...) printk(format,##args)
#else
#define DPRINTK(format,args...)
#endif


static struct net_device *clip_devs;
static struct net_device *clip_devs;
static struct atm_vcc *atmarpd;
static struct atm_vcc *atmarpd;
static struct neigh_table clip_tbl;
static struct neigh_table clip_tbl;
@@ -59,7 +51,7 @@ static int to_atmarpd(enum atmarp_ctrl_type type, int itf, __be32 ip)
	struct atmarp_ctrl *ctrl;
	struct atmarp_ctrl *ctrl;
	struct sk_buff *skb;
	struct sk_buff *skb;


	DPRINTK("to_atmarpd(%d)\n", type);
	pr_debug("to_atmarpd(%d)\n", type);
	if (!atmarpd)
	if (!atmarpd)
		return -EUNATCH;
		return -EUNATCH;
	skb = alloc_skb(sizeof(struct atmarp_ctrl),GFP_ATOMIC);
	skb = alloc_skb(sizeof(struct atmarp_ctrl),GFP_ATOMIC);
@@ -79,7 +71,7 @@ static int to_atmarpd(enum atmarp_ctrl_type type, int itf, __be32 ip)


static void link_vcc(struct clip_vcc *clip_vcc, struct atmarp_entry *entry)
static void link_vcc(struct clip_vcc *clip_vcc, struct atmarp_entry *entry)
{
{
	DPRINTK("link_vcc %p to entry %p (neigh %p)\n", clip_vcc, entry,
	pr_debug("link_vcc %p to entry %p (neigh %p)\n", clip_vcc, entry,
		entry->neigh);
		entry->neigh);
	clip_vcc->entry = entry;
	clip_vcc->entry = entry;
	clip_vcc->xoff = 0;	/* @@@ may overrun buffer by one packet */
	clip_vcc->xoff = 0;	/* @@@ may overrun buffer by one packet */
@@ -134,7 +126,7 @@ static int neigh_check_cb(struct neighbour *n)
		unsigned long exp = cv->last_use + cv->idle_timeout;
		unsigned long exp = cv->last_use + cv->idle_timeout;


		if (cv->idle_timeout && time_after(jiffies, exp)) {
		if (cv->idle_timeout && time_after(jiffies, exp)) {
			DPRINTK("releasing vcc %p->%p of entry %p\n",
			pr_debug("releasing vcc %p->%p of entry %p\n",
				cv, cv->vcc, entry);
				cv, cv->vcc, entry);
			vcc_release_async(cv->vcc, -ETIMEDOUT);
			vcc_release_async(cv->vcc, -ETIMEDOUT);
		}
		}
@@ -146,7 +138,7 @@ static int neigh_check_cb(struct neighbour *n)
	if (atomic_read(&n->refcnt) > 1) {
	if (atomic_read(&n->refcnt) > 1) {
		struct sk_buff *skb;
		struct sk_buff *skb;


		DPRINTK("destruction postponed with ref %d\n",
		pr_debug("destruction postponed with ref %d\n",
			atomic_read(&n->refcnt));
			atomic_read(&n->refcnt));


		while ((skb = skb_dequeue(&n->arp_queue)) != NULL)
		while ((skb = skb_dequeue(&n->arp_queue)) != NULL)
@@ -155,7 +147,7 @@ static int neigh_check_cb(struct neighbour *n)
		return 0;
		return 0;
	}
	}


	DPRINTK("expired neigh %p\n", n);
	pr_debug("expired neigh %p\n", n);
	return 1;
	return 1;
}
}


@@ -171,14 +163,14 @@ static int clip_arp_rcv(struct sk_buff *skb)
{
{
	struct atm_vcc *vcc;
	struct atm_vcc *vcc;


	DPRINTK("clip_arp_rcv\n");
	pr_debug("clip_arp_rcv\n");
	vcc = ATM_SKB(skb)->vcc;
	vcc = ATM_SKB(skb)->vcc;
	if (!vcc || !atm_charge(vcc, skb->truesize)) {
	if (!vcc || !atm_charge(vcc, skb->truesize)) {
		dev_kfree_skb_any(skb);
		dev_kfree_skb_any(skb);
		return 0;
		return 0;
	}
	}
	DPRINTK("pushing to %p\n", vcc);
	pr_debug("pushing to %p\n", vcc);
	DPRINTK("using %p\n", CLIP_VCC(vcc)->old_push);
	pr_debug("using %p\n", CLIP_VCC(vcc)->old_push);
	CLIP_VCC(vcc)->old_push(vcc, skb);
	CLIP_VCC(vcc)->old_push(vcc, skb);
	return 0;
	return 0;
}
}
@@ -196,9 +188,9 @@ static void clip_push(struct atm_vcc *vcc, struct sk_buff *skb)
{
{
	struct clip_vcc *clip_vcc = CLIP_VCC(vcc);
	struct clip_vcc *clip_vcc = CLIP_VCC(vcc);


	DPRINTK("clip push\n");
	pr_debug("clip push\n");
	if (!skb) {
	if (!skb) {
		DPRINTK("removing VCC %p\n", clip_vcc);
		pr_debug("removing VCC %p\n", clip_vcc);
		if (clip_vcc->entry)
		if (clip_vcc->entry)
			unlink_clip_vcc(clip_vcc);
			unlink_clip_vcc(clip_vcc);
		clip_vcc->old_push(vcc, NULL);	/* pass on the bad news */
		clip_vcc->old_push(vcc, NULL);	/* pass on the bad news */
@@ -247,7 +239,7 @@ static void clip_pop(struct atm_vcc *vcc, struct sk_buff *skb)
	int old;
	int old;
	unsigned long flags;
	unsigned long flags;


	DPRINTK("clip_pop(vcc %p)\n", vcc);
	pr_debug("clip_pop(vcc %p)\n", vcc);
	clip_vcc->old_pop(vcc, skb);
	clip_vcc->old_pop(vcc, skb);
	/* skb->dev == NULL in outbound ARP packets */
	/* skb->dev == NULL in outbound ARP packets */
	if (!dev)
	if (!dev)
@@ -263,7 +255,7 @@ static void clip_pop(struct atm_vcc *vcc, struct sk_buff *skb)


static void clip_neigh_solicit(struct neighbour *neigh, struct sk_buff *skb)
static void clip_neigh_solicit(struct neighbour *neigh, struct sk_buff *skb)
{
{
	DPRINTK("clip_neigh_solicit (neigh %p, skb %p)\n", neigh, skb);
	pr_debug("clip_neigh_solicit (neigh %p, skb %p)\n", neigh, skb);
	to_atmarpd(act_need, PRIV(neigh->dev)->number, NEIGH2ENTRY(neigh)->ip);
	to_atmarpd(act_need, PRIV(neigh->dev)->number, NEIGH2ENTRY(neigh)->ip);
}
}


@@ -292,7 +284,7 @@ static int clip_constructor(struct neighbour *neigh)
	struct in_device *in_dev;
	struct in_device *in_dev;
	struct neigh_parms *parms;
	struct neigh_parms *parms;


	DPRINTK("clip_constructor (neigh %p, entry %p)\n", neigh, entry);
	pr_debug("clip_constructor (neigh %p, entry %p)\n", neigh, entry);
	neigh->type = inet_addr_type(entry->ip);
	neigh->type = inet_addr_type(entry->ip);
	if (neigh->type != RTN_UNICAST)
	if (neigh->type != RTN_UNICAST)
		return -EINVAL;
		return -EINVAL;
@@ -376,7 +368,7 @@ static int clip_start_xmit(struct sk_buff *skb, struct net_device *dev)
	int old;
	int old;
	unsigned long flags;
	unsigned long flags;


	DPRINTK("clip_start_xmit (skb %p)\n", skb);
	pr_debug("clip_start_xmit (skb %p)\n", skb);
	if (!skb->dst) {
	if (!skb->dst) {
		printk(KERN_ERR "clip_start_xmit: skb->dst == NULL\n");
		printk(KERN_ERR "clip_start_xmit: skb->dst == NULL\n");
		dev_kfree_skb(skb);
		dev_kfree_skb(skb);
@@ -412,9 +404,9 @@ static int clip_start_xmit(struct sk_buff *skb, struct net_device *dev)
		}
		}
		return 0;
		return 0;
	}
	}
	DPRINTK("neigh %p, vccs %p\n", entry, entry->vccs);
	pr_debug("neigh %p, vccs %p\n", entry, entry->vccs);
	ATM_SKB(skb)->vcc = vcc = entry->vccs->vcc;
	ATM_SKB(skb)->vcc = vcc = entry->vccs->vcc;
	DPRINTK("using neighbour %p, vcc %p\n", skb->dst->neighbour, vcc);
	pr_debug("using neighbour %p, vcc %p\n", skb->dst->neighbour, vcc);
	if (entry->vccs->encap) {
	if (entry->vccs->encap) {
		void *here;
		void *here;


@@ -425,7 +417,7 @@ static int clip_start_xmit(struct sk_buff *skb, struct net_device *dev)
	atomic_add(skb->truesize, &sk_atm(vcc)->sk_wmem_alloc);
	atomic_add(skb->truesize, &sk_atm(vcc)->sk_wmem_alloc);
	ATM_SKB(skb)->atm_options = vcc->atm_options;
	ATM_SKB(skb)->atm_options = vcc->atm_options;
	entry->vccs->last_use = jiffies;
	entry->vccs->last_use = jiffies;
	DPRINTK("atm_skb(%p)->vcc(%p)->dev(%p)\n", skb, vcc, vcc->dev);
	pr_debug("atm_skb(%p)->vcc(%p)->dev(%p)\n", skb, vcc, vcc->dev);
	old = xchg(&entry->vccs->xoff, 1);	/* assume XOFF ... */
	old = xchg(&entry->vccs->xoff, 1);	/* assume XOFF ... */
	if (old) {
	if (old) {
		printk(KERN_WARNING "clip_start_xmit: XOFF->XOFF transition\n");
		printk(KERN_WARNING "clip_start_xmit: XOFF->XOFF transition\n");
@@ -468,7 +460,7 @@ static int clip_mkip(struct atm_vcc *vcc, int timeout)
	clip_vcc = kmalloc(sizeof(struct clip_vcc), GFP_KERNEL);
	clip_vcc = kmalloc(sizeof(struct clip_vcc), GFP_KERNEL);
	if (!clip_vcc)
	if (!clip_vcc)
		return -ENOMEM;
		return -ENOMEM;
	DPRINTK("mkip clip_vcc %p vcc %p\n", clip_vcc, vcc);
	pr_debug("mkip clip_vcc %p vcc %p\n", clip_vcc, vcc);
	clip_vcc->vcc = vcc;
	clip_vcc->vcc = vcc;
	vcc->user_back = clip_vcc;
	vcc->user_back = clip_vcc;
	set_bit(ATM_VF_IS_CLIP, &vcc->flags);
	set_bit(ATM_VF_IS_CLIP, &vcc->flags);
@@ -538,7 +530,7 @@ static int clip_setentry(struct atm_vcc *vcc, __be32 ip)
			printk(KERN_ERR "hiding hidden ATMARP entry\n");
			printk(KERN_ERR "hiding hidden ATMARP entry\n");
			return 0;
			return 0;
		}
		}
		DPRINTK("setentry: remove\n");
		pr_debug("setentry: remove\n");
		unlink_clip_vcc(clip_vcc);
		unlink_clip_vcc(clip_vcc);
		return 0;
		return 0;
	}
	}
@@ -552,9 +544,9 @@ static int clip_setentry(struct atm_vcc *vcc, __be32 ip)
	entry = NEIGH2ENTRY(neigh);
	entry = NEIGH2ENTRY(neigh);
	if (entry != clip_vcc->entry) {
	if (entry != clip_vcc->entry) {
		if (!clip_vcc->entry)
		if (!clip_vcc->entry)
			DPRINTK("setentry: add\n");
			pr_debug("setentry: add\n");
		else {
		else {
			DPRINTK("setentry: update\n");
			pr_debug("setentry: update\n");
			unlink_clip_vcc(clip_vcc);
			unlink_clip_vcc(clip_vcc);
		}
		}
		link_vcc(clip_vcc, entry);
		link_vcc(clip_vcc, entry);
@@ -611,7 +603,7 @@ static int clip_create(int number)
	}
	}
	clip_priv->next = clip_devs;
	clip_priv->next = clip_devs;
	clip_devs = dev;
	clip_devs = dev;
	DPRINTK("registered (net:%s)\n", dev->name);
	pr_debug("registered (net:%s)\n", dev->name);
	return number;
	return number;
}
}


@@ -631,16 +623,16 @@ static int clip_device_event(struct notifier_block *this, unsigned long event,


	switch (event) {
	switch (event) {
	case NETDEV_UP:
	case NETDEV_UP:
		DPRINTK("clip_device_event NETDEV_UP\n");
		pr_debug("clip_device_event NETDEV_UP\n");
		to_atmarpd(act_up, PRIV(dev)->number, 0);
		to_atmarpd(act_up, PRIV(dev)->number, 0);
		break;
		break;
	case NETDEV_GOING_DOWN:
	case NETDEV_GOING_DOWN:
		DPRINTK("clip_device_event NETDEV_DOWN\n");
		pr_debug("clip_device_event NETDEV_DOWN\n");
		to_atmarpd(act_down, PRIV(dev)->number, 0);
		to_atmarpd(act_down, PRIV(dev)->number, 0);
		break;
		break;
	case NETDEV_CHANGE:
	case NETDEV_CHANGE:
	case NETDEV_CHANGEMTU:
	case NETDEV_CHANGEMTU:
		DPRINTK("clip_device_event NETDEV_CHANGE*\n");
		pr_debug("clip_device_event NETDEV_CHANGE*\n");
		to_atmarpd(act_change, PRIV(dev)->number, 0);
		to_atmarpd(act_change, PRIV(dev)->number, 0);
		break;
		break;
	}
	}
@@ -681,14 +673,14 @@ static struct notifier_block clip_inet_notifier = {


static void atmarpd_close(struct atm_vcc *vcc)
static void atmarpd_close(struct atm_vcc *vcc)
{
{
	DPRINTK("atmarpd_close\n");
	pr_debug("atmarpd_close\n");


	rtnl_lock();
	rtnl_lock();
	atmarpd = NULL;
	atmarpd = NULL;
	skb_queue_purge(&sk_atm(vcc)->sk_receive_queue);
	skb_queue_purge(&sk_atm(vcc)->sk_receive_queue);
	rtnl_unlock();
	rtnl_unlock();


	DPRINTK("(done)\n");
	pr_debug("(done)\n");
	module_put(THIS_MODULE);
	module_put(THIS_MODULE);
}
}


+8 −15
Original line number Original line Diff line number Diff line
@@ -30,13 +30,6 @@
#include "addr.h"		/* address registry */
#include "addr.h"		/* address registry */
#include "signaling.h"		/* for WAITING and sigd_attach */
#include "signaling.h"		/* for WAITING and sigd_attach */



#if 0
#define DPRINTK(format,args...) printk(KERN_DEBUG format,##args)
#else
#define DPRINTK(format,args...)
#endif

struct hlist_head vcc_hash[VCC_HTABLE_SIZE];
struct hlist_head vcc_hash[VCC_HTABLE_SIZE];
DEFINE_RWLOCK(vcc_sklist_lock);
DEFINE_RWLOCK(vcc_sklist_lock);


@@ -70,13 +63,13 @@ static struct sk_buff *alloc_tx(struct atm_vcc *vcc,unsigned int size)
	struct sock *sk = sk_atm(vcc);
	struct sock *sk = sk_atm(vcc);


	if (atomic_read(&sk->sk_wmem_alloc) && !atm_may_send(vcc, size)) {
	if (atomic_read(&sk->sk_wmem_alloc) && !atm_may_send(vcc, size)) {
		DPRINTK("Sorry: wmem_alloc = %d, size = %d, sndbuf = %d\n",
		pr_debug("Sorry: wmem_alloc = %d, size = %d, sndbuf = %d\n",
			atomic_read(&sk->sk_wmem_alloc), size,
			atomic_read(&sk->sk_wmem_alloc), size,
			sk->sk_sndbuf);
			sk->sk_sndbuf);
		return NULL;
		return NULL;
	}
	}
	while (!(skb = alloc_skb(size,GFP_KERNEL))) schedule();
	while (!(skb = alloc_skb(size,GFP_KERNEL))) schedule();
	DPRINTK("AlTx %d += %d\n", atomic_read(&sk->sk_wmem_alloc),
	pr_debug("AlTx %d += %d\n", atomic_read(&sk->sk_wmem_alloc),
		skb->truesize);
		skb->truesize);
	atomic_add(skb->truesize, &sk->sk_wmem_alloc);
	atomic_add(skb->truesize, &sk->sk_wmem_alloc);
	return skb;
	return skb;
@@ -392,10 +385,10 @@ static int __vcc_connect(struct atm_vcc *vcc, struct atm_dev *dev, short vpi,
	if (!error) error = adjust_tp(&vcc->qos.rxtp,vcc->qos.aal);
	if (!error) error = adjust_tp(&vcc->qos.rxtp,vcc->qos.aal);
	if (error)
	if (error)
		goto fail;
		goto fail;
	DPRINTK("VCC %d.%d, AAL %d\n",vpi,vci,vcc->qos.aal);
	pr_debug("VCC %d.%d, AAL %d\n",vpi,vci,vcc->qos.aal);
	DPRINTK("  TX: %d, PCR %d..%d, SDU %d\n",vcc->qos.txtp.traffic_class,
	pr_debug("  TX: %d, PCR %d..%d, SDU %d\n",vcc->qos.txtp.traffic_class,
	    vcc->qos.txtp.min_pcr,vcc->qos.txtp.max_pcr,vcc->qos.txtp.max_sdu);
	    vcc->qos.txtp.min_pcr,vcc->qos.txtp.max_pcr,vcc->qos.txtp.max_sdu);
	DPRINTK("  RX: %d, PCR %d..%d, SDU %d\n",vcc->qos.rxtp.traffic_class,
	pr_debug("  RX: %d, PCR %d..%d, SDU %d\n",vcc->qos.rxtp.traffic_class,
	    vcc->qos.rxtp.min_pcr,vcc->qos.rxtp.max_pcr,vcc->qos.rxtp.max_sdu);
	    vcc->qos.rxtp.min_pcr,vcc->qos.rxtp.max_pcr,vcc->qos.rxtp.max_sdu);


	if (dev->ops->open) {
	if (dev->ops->open) {
@@ -420,7 +413,7 @@ int vcc_connect(struct socket *sock, int itf, short vpi, int vci)
	struct atm_vcc *vcc = ATM_SD(sock);
	struct atm_vcc *vcc = ATM_SD(sock);
	int error;
	int error;


	DPRINTK("vcc_connect (vpi %d, vci %d)\n",vpi,vci);
	pr_debug("vcc_connect (vpi %d, vci %d)\n",vpi,vci);
	if (sock->state == SS_CONNECTED)
	if (sock->state == SS_CONNECTED)
		return -EISCONN;
		return -EISCONN;
	if (sock->state != SS_UNCONNECTED)
	if (sock->state != SS_UNCONNECTED)
@@ -433,7 +426,7 @@ int vcc_connect(struct socket *sock, int itf, short vpi, int vci)
	else
	else
		if (test_bit(ATM_VF_PARTIAL,&vcc->flags))
		if (test_bit(ATM_VF_PARTIAL,&vcc->flags))
			return -EINVAL;
			return -EINVAL;
	DPRINTK("vcc_connect (TX: cl %d,bw %d-%d,sdu %d; "
	pr_debug("vcc_connect (TX: cl %d,bw %d-%d,sdu %d; "
	    "RX: cl %d,bw %d-%d,sdu %d,AAL %s%d)\n",
	    "RX: cl %d,bw %d-%d,sdu %d,AAL %s%d)\n",
	    vcc->qos.txtp.traffic_class,vcc->qos.txtp.min_pcr,
	    vcc->qos.txtp.traffic_class,vcc->qos.txtp.min_pcr,
	    vcc->qos.txtp.max_pcr,vcc->qos.txtp.max_sdu,
	    vcc->qos.txtp.max_pcr,vcc->qos.txtp.max_sdu,
@@ -504,7 +497,7 @@ int vcc_recvmsg(struct kiocb *iocb, struct socket *sock, struct msghdr *msg,
	if (error)
	if (error)
		return error;
		return error;
	sock_recv_timestamp(msg, sk, skb);
	sock_recv_timestamp(msg, sk, skb);
	DPRINTK("RcvM %d -= %d\n", atomic_read(&sk->rmem_alloc), skb->truesize);
	pr_debug("RcvM %d -= %d\n", atomic_read(&sk->sk_rmem_alloc), skb->truesize);
	atm_return(vcc, skb->truesize);
	atm_return(vcc, skb->truesize);
	skb_free_datagram(sk, skb);
	skb_free_datagram(sk, skb);
	return copied;
	return copied;
+49 −55
Original line number Original line Diff line number Diff line
@@ -48,12 +48,6 @@ static unsigned char bridge_ula_lec[] = { 0x01, 0x80, 0xc2, 0x00, 0x00 };
#include "lec_arpc.h"
#include "lec_arpc.h"
#include "resources.h"
#include "resources.h"


#if 0
#define DPRINTK printk
#else
#define DPRINTK(format,args...)
#endif

#define DUMP_PACKETS 0		/*
#define DUMP_PACKETS 0		/*
				 * 0 = None,
				 * 0 = None,
				 * 1 = 30 first bytes
				 * 1 = 30 first bytes
@@ -273,7 +267,7 @@ static int lec_start_xmit(struct sk_buff *skb, struct net_device *dev)
	int i = 0;
	int i = 0;
#endif /* DUMP_PACKETS >0 */
#endif /* DUMP_PACKETS >0 */


	DPRINTK("lec_start_xmit called\n");
	pr_debug("lec_start_xmit called\n");
	if (!priv->lecd) {
	if (!priv->lecd) {
		printk("%s:No lecd attached\n", dev->name);
		printk("%s:No lecd attached\n", dev->name);
		priv->stats.tx_errors++;
		priv->stats.tx_errors++;
@@ -281,7 +275,7 @@ static int lec_start_xmit(struct sk_buff *skb, struct net_device *dev)
		return -EUNATCH;
		return -EUNATCH;
	}
	}


	DPRINTK("skbuff head:%lx data:%lx tail:%lx end:%lx\n",
	pr_debug("skbuff head:%lx data:%lx tail:%lx end:%lx\n",
		(long)skb->head, (long)skb->data, (long)skb_tail_pointer(skb),
		(long)skb->head, (long)skb->data, (long)skb_tail_pointer(skb),
		(long)skb_end_pointer(skb));
		(long)skb_end_pointer(skb));
#if defined(CONFIG_BRIDGE) || defined(CONFIG_BRIDGE_MODULE)
#if defined(CONFIG_BRIDGE) || defined(CONFIG_BRIDGE_MODULE)
@@ -292,7 +286,7 @@ static int lec_start_xmit(struct sk_buff *skb, struct net_device *dev)
	/* Make sure we have room for lec_id */
	/* Make sure we have room for lec_id */
	if (skb_headroom(skb) < 2) {
	if (skb_headroom(skb) < 2) {


		DPRINTK("lec_start_xmit: reallocating skb\n");
		pr_debug("lec_start_xmit: reallocating skb\n");
		skb2 = skb_realloc_headroom(skb, LEC_HEADER_LEN);
		skb2 = skb_realloc_headroom(skb, LEC_HEADER_LEN);
		kfree_skb(skb);
		kfree_skb(skb);
		if (skb2 == NULL)
		if (skb2 == NULL)
@@ -373,22 +367,22 @@ static int lec_start_xmit(struct sk_buff *skb, struct net_device *dev)
#endif
#endif
	entry = NULL;
	entry = NULL;
	vcc = lec_arp_resolve(priv, dst, is_rdesc, &entry);
	vcc = lec_arp_resolve(priv, dst, is_rdesc, &entry);
	DPRINTK("%s:vcc:%p vcc_flags:%x, entry:%p\n", dev->name,
	pr_debug("%s:vcc:%p vcc_flags:%x, entry:%p\n", dev->name,
		vcc, vcc ? vcc->flags : 0, entry);
		vcc, vcc ? vcc->flags : 0, entry);
	if (!vcc || !test_bit(ATM_VF_READY, &vcc->flags)) {
	if (!vcc || !test_bit(ATM_VF_READY, &vcc->flags)) {
		if (entry && (entry->tx_wait.qlen < LEC_UNRES_QUE_LEN)) {
		if (entry && (entry->tx_wait.qlen < LEC_UNRES_QUE_LEN)) {
			DPRINTK("%s:lec_start_xmit: queuing packet, ",
			pr_debug("%s:lec_start_xmit: queuing packet, ",
				dev->name);
				dev->name);
			DPRINTK("MAC address 0x%02x:%02x:%02x:%02x:%02x:%02x\n",
			pr_debug("MAC address 0x%02x:%02x:%02x:%02x:%02x:%02x\n",
				lec_h->h_dest[0], lec_h->h_dest[1],
				lec_h->h_dest[0], lec_h->h_dest[1],
				lec_h->h_dest[2], lec_h->h_dest[3],
				lec_h->h_dest[2], lec_h->h_dest[3],
				lec_h->h_dest[4], lec_h->h_dest[5]);
				lec_h->h_dest[4], lec_h->h_dest[5]);
			skb_queue_tail(&entry->tx_wait, skb);
			skb_queue_tail(&entry->tx_wait, skb);
		} else {
		} else {
			DPRINTK
			pr_debug
			    ("%s:lec_start_xmit: tx queue full or no arp entry, dropping, ",
			    ("%s:lec_start_xmit: tx queue full or no arp entry, dropping, ",
			     dev->name);
			     dev->name);
			DPRINTK("MAC address 0x%02x:%02x:%02x:%02x:%02x:%02x\n",
			pr_debug("MAC address 0x%02x:%02x:%02x:%02x:%02x:%02x\n",
				lec_h->h_dest[0], lec_h->h_dest[1],
				lec_h->h_dest[0], lec_h->h_dest[1],
				lec_h->h_dest[2], lec_h->h_dest[3],
				lec_h->h_dest[2], lec_h->h_dest[3],
				lec_h->h_dest[4], lec_h->h_dest[5]);
				lec_h->h_dest[4], lec_h->h_dest[5]);
@@ -402,8 +396,8 @@ static int lec_start_xmit(struct sk_buff *skb, struct net_device *dev)
#endif /* DUMP_PACKETS > 0 */
#endif /* DUMP_PACKETS > 0 */


	while (entry && (skb2 = skb_dequeue(&entry->tx_wait))) {
	while (entry && (skb2 = skb_dequeue(&entry->tx_wait))) {
		DPRINTK("lec.c: emptying tx queue, ");
		pr_debug("lec.c: emptying tx queue, ");
		DPRINTK("MAC address 0x%02x:%02x:%02x:%02x:%02x:%02x\n",
		pr_debug("MAC address 0x%02x:%02x:%02x:%02x:%02x:%02x\n",
			lec_h->h_dest[0], lec_h->h_dest[1], lec_h->h_dest[2],
			lec_h->h_dest[0], lec_h->h_dest[1], lec_h->h_dest[2],
			lec_h->h_dest[3], lec_h->h_dest[4], lec_h->h_dest[5]);
			lec_h->h_dest[3], lec_h->h_dest[4], lec_h->h_dest[5]);
		lec_send(vcc, skb2, priv);
		lec_send(vcc, skb2, priv);
@@ -464,7 +458,7 @@ static int lec_atm_send(struct atm_vcc *vcc, struct sk_buff *skb)
	mesg = (struct atmlec_msg *)skb->data;
	mesg = (struct atmlec_msg *)skb->data;
	tmp = skb->data;
	tmp = skb->data;
	tmp += sizeof(struct atmlec_msg);
	tmp += sizeof(struct atmlec_msg);
	DPRINTK("%s: msg from zeppelin:%d\n", dev->name, mesg->type);
	pr_debug("%s: msg from zeppelin:%d\n", dev->name, mesg->type);
	switch (mesg->type) {
	switch (mesg->type) {
	case l_set_mac_addr:
	case l_set_mac_addr:
		for (i = 0; i < 6; i++) {
		for (i = 0; i < 6; i++) {
@@ -500,9 +494,9 @@ static int lec_atm_send(struct atm_vcc *vcc, struct sk_buff *skb)
			       mesg->content.normal.atm_addr,
			       mesg->content.normal.atm_addr,
			       mesg->content.normal.flag,
			       mesg->content.normal.flag,
			       mesg->content.normal.targetless_le_arp);
			       mesg->content.normal.targetless_le_arp);
		DPRINTK("lec: in l_arp_update\n");
		pr_debug("lec: in l_arp_update\n");
		if (mesg->sizeoftlvs != 0) {	/* LANE2 3.1.5 */
		if (mesg->sizeoftlvs != 0) {	/* LANE2 3.1.5 */
			DPRINTK("lec: LANE2 3.1.5, got tlvs, size %d\n",
			pr_debug("lec: LANE2 3.1.5, got tlvs, size %d\n",
				mesg->sizeoftlvs);
				mesg->sizeoftlvs);
			lane2_associate_ind(dev, mesg->content.normal.mac_addr,
			lane2_associate_ind(dev, mesg->content.normal.mac_addr,
					    tmp, mesg->sizeoftlvs);
					    tmp, mesg->sizeoftlvs);
@@ -544,7 +538,7 @@ static int lec_atm_send(struct atm_vcc *vcc, struct sk_buff *skb)
		{
		{
			struct net_bridge_fdb_entry *f;
			struct net_bridge_fdb_entry *f;


			DPRINTK
			pr_debug
			    ("%s: bridge zeppelin asks about 0x%02x:%02x:%02x:%02x:%02x:%02x\n",
			    ("%s: bridge zeppelin asks about 0x%02x:%02x:%02x:%02x:%02x:%02x\n",
			     dev->name, mesg->content.proxy.mac_addr[0],
			     dev->name, mesg->content.proxy.mac_addr[0],
			     mesg->content.proxy.mac_addr[1],
			     mesg->content.proxy.mac_addr[1],
@@ -564,7 +558,7 @@ static int lec_atm_send(struct atm_vcc *vcc, struct sk_buff *skb)
				struct sk_buff *skb2;
				struct sk_buff *skb2;
				struct sock *sk;
				struct sock *sk;


				DPRINTK
				pr_debug
				    ("%s: entry found, responding to zeppelin\n",
				    ("%s: entry found, responding to zeppelin\n",
				     dev->name);
				     dev->name);
				skb2 =
				skb2 =
@@ -670,7 +664,7 @@ send_to_lecd(struct lec_priv *priv, atmlec_msg_type type,
	sk->sk_data_ready(sk, skb->len);
	sk->sk_data_ready(sk, skb->len);


	if (data != NULL) {
	if (data != NULL) {
		DPRINTK("lec: about to send %d bytes of data\n", data->len);
		pr_debug("lec: about to send %d bytes of data\n", data->len);
		atm_force_charge(priv->lecd, data->truesize);
		atm_force_charge(priv->lecd, data->truesize);
		skb_queue_tail(&sk->sk_receive_queue, data);
		skb_queue_tail(&sk->sk_receive_queue, data);
		sk->sk_data_ready(sk, skb->len);
		sk->sk_data_ready(sk, skb->len);
@@ -742,7 +736,7 @@ static void lec_push(struct atm_vcc *vcc, struct sk_buff *skb)
	       vcc->vpi, vcc->vci);
	       vcc->vpi, vcc->vci);
#endif
#endif
	if (!skb) {
	if (!skb) {
		DPRINTK("%s: null skb\n", dev->name);
		pr_debug("%s: null skb\n", dev->name);
		lec_vcc_close(priv, vcc);
		lec_vcc_close(priv, vcc);
		return;
		return;
	}
	}
@@ -766,7 +760,7 @@ static void lec_push(struct atm_vcc *vcc, struct sk_buff *skb)
	if (memcmp(skb->data, lec_ctrl_magic, 4) == 0) {	/* Control frame, to daemon */
	if (memcmp(skb->data, lec_ctrl_magic, 4) == 0) {	/* Control frame, to daemon */
		struct sock *sk = sk_atm(vcc);
		struct sock *sk = sk_atm(vcc);


		DPRINTK("%s: To daemon\n", dev->name);
		pr_debug("%s: To daemon\n", dev->name);
		skb_queue_tail(&sk->sk_receive_queue, skb);
		skb_queue_tail(&sk->sk_receive_queue, skb);
		sk->sk_data_ready(sk, skb->len);
		sk->sk_data_ready(sk, skb->len);
	} else {		/* Data frame, queue to protocol handlers */
	} else {		/* Data frame, queue to protocol handlers */
@@ -780,7 +774,7 @@ static void lec_push(struct atm_vcc *vcc, struct sk_buff *skb)
			 * Probably looping back, or if lecd is missing,
			 * Probably looping back, or if lecd is missing,
			 * lecd has gone down
			 * lecd has gone down
			 */
			 */
			DPRINTK("Ignoring frame...\n");
			pr_debug("Ignoring frame...\n");
			dev_kfree_skb(skb);
			dev_kfree_skb(skb);
			return;
			return;
		}
		}
@@ -1442,9 +1436,9 @@ static void lane2_associate_ind(struct net_device *dev, u8 *mac_addr,
#include <net/route.h>
#include <net/route.h>


#if 0
#if 0
#define DPRINTK(format,args...)
#define pr_debug(format,args...)
/*
/*
#define DPRINTK printk
#define pr_debug printk
*/
*/
#endif
#endif
#define DEBUG_ARP_TABLE 0
#define DEBUG_ARP_TABLE 0
@@ -1513,7 +1507,7 @@ lec_arp_add(struct lec_priv *priv, struct lec_arp_table *entry)
	tmp = &priv->lec_arp_tables[HASH(entry->mac_addr[ETH_ALEN - 1])];
	tmp = &priv->lec_arp_tables[HASH(entry->mac_addr[ETH_ALEN - 1])];
	hlist_add_head(&entry->next, tmp);
	hlist_add_head(&entry->next, tmp);


	DPRINTK("LEC_ARP: Added entry:%2.2x %2.2x %2.2x %2.2x %2.2x %2.2x\n",
	pr_debug("LEC_ARP: Added entry:%2.2x %2.2x %2.2x %2.2x %2.2x %2.2x\n",
		0xff & entry->mac_addr[0], 0xff & entry->mac_addr[1],
		0xff & entry->mac_addr[0], 0xff & entry->mac_addr[1],
		0xff & entry->mac_addr[2], 0xff & entry->mac_addr[3],
		0xff & entry->mac_addr[2], 0xff & entry->mac_addr[3],
		0xff & entry->mac_addr[4], 0xff & entry->mac_addr[5]);
		0xff & entry->mac_addr[4], 0xff & entry->mac_addr[5]);
@@ -1555,7 +1549,7 @@ lec_arp_remove(struct lec_priv *priv, struct lec_arp_table *to_remove)
	}
	}
	skb_queue_purge(&to_remove->tx_wait);	/* FIXME: good place for this? */
	skb_queue_purge(&to_remove->tx_wait);	/* FIXME: good place for this? */


	DPRINTK("LEC_ARP: Removed entry:%2.2x %2.2x %2.2x %2.2x %2.2x %2.2x\n",
	pr_debug("LEC_ARP: Removed entry:%2.2x %2.2x %2.2x %2.2x %2.2x %2.2x\n",
		0xff & to_remove->mac_addr[0], 0xff & to_remove->mac_addr[1],
		0xff & to_remove->mac_addr[0], 0xff & to_remove->mac_addr[1],
		0xff & to_remove->mac_addr[2], 0xff & to_remove->mac_addr[3],
		0xff & to_remove->mac_addr[2], 0xff & to_remove->mac_addr[3],
		0xff & to_remove->mac_addr[4], 0xff & to_remove->mac_addr[5]);
		0xff & to_remove->mac_addr[4], 0xff & to_remove->mac_addr[5]);
@@ -1777,7 +1771,7 @@ static struct lec_arp_table *lec_arp_find(struct lec_priv *priv,
	struct hlist_head *head;
	struct hlist_head *head;
	struct lec_arp_table *entry;
	struct lec_arp_table *entry;


	DPRINTK("LEC_ARP: lec_arp_find :%2.2x %2.2x %2.2x %2.2x %2.2x %2.2x\n",
	pr_debug("LEC_ARP: lec_arp_find :%2.2x %2.2x %2.2x %2.2x %2.2x %2.2x\n",
		mac_addr[0] & 0xff, mac_addr[1] & 0xff, mac_addr[2] & 0xff,
		mac_addr[0] & 0xff, mac_addr[1] & 0xff, mac_addr[2] & 0xff,
		mac_addr[3] & 0xff, mac_addr[4] & 0xff, mac_addr[5] & 0xff);
		mac_addr[3] & 0xff, mac_addr[4] & 0xff, mac_addr[5] & 0xff);


@@ -1819,7 +1813,7 @@ static void lec_arp_expire_arp(unsigned long data)


	entry = (struct lec_arp_table *)data;
	entry = (struct lec_arp_table *)data;


	DPRINTK("lec_arp_expire_arp\n");
	pr_debug("lec_arp_expire_arp\n");
	if (entry->status == ESI_ARP_PENDING) {
	if (entry->status == ESI_ARP_PENDING) {
		if (entry->no_tries <= entry->priv->max_retry_count) {
		if (entry->no_tries <= entry->priv->max_retry_count) {
			if (entry->is_rdesc)
			if (entry->is_rdesc)
@@ -1843,7 +1837,7 @@ static void lec_arp_expire_vcc(unsigned long data)


	del_timer(&to_remove->timer);
	del_timer(&to_remove->timer);


	DPRINTK("LEC_ARP %p %p: lec_arp_expire_vcc vpi:%d vci:%d\n",
	pr_debug("LEC_ARP %p %p: lec_arp_expire_vcc vpi:%d vci:%d\n",
		to_remove, priv,
		to_remove, priv,
		to_remove->vcc ? to_remove->recv_vcc->vpi : 0,
		to_remove->vcc ? to_remove->recv_vcc->vpi : 0,
		to_remove->vcc ? to_remove->recv_vcc->vci : 0);
		to_remove->vcc ? to_remove->recv_vcc->vci : 0);
@@ -1883,7 +1877,7 @@ static void lec_arp_check_expire(struct work_struct *work)
	unsigned long time_to_check;
	unsigned long time_to_check;
	int i;
	int i;


	DPRINTK("lec_arp_check_expire %p\n", priv);
	pr_debug("lec_arp_check_expire %p\n", priv);
	now = jiffies;
	now = jiffies;
restart:
restart:
	spin_lock_irqsave(&priv->lec_arp_lock, flags);
	spin_lock_irqsave(&priv->lec_arp_lock, flags);
@@ -1895,13 +1889,13 @@ static void lec_arp_check_expire(struct work_struct *work)
			else
			else
				time_to_check = priv->aging_time;
				time_to_check = priv->aging_time;


			DPRINTK("About to expire: %lx - %lx > %lx\n",
			pr_debug("About to expire: %lx - %lx > %lx\n",
				now, entry->last_used, time_to_check);
				now, entry->last_used, time_to_check);
			if (time_after(now, entry->last_used + time_to_check)
			if (time_after(now, entry->last_used + time_to_check)
			    && !(entry->flags & LEC_PERMANENT_FLAG)
			    && !(entry->flags & LEC_PERMANENT_FLAG)
			    && !(entry->mac_addr[0] & 0x01)) {	/* LANE2: 7.1.20 */
			    && !(entry->mac_addr[0] & 0x01)) {	/* LANE2: 7.1.20 */
				/* Remove entry */
				/* Remove entry */
				DPRINTK("LEC:Entry timed out\n");
				pr_debug("LEC:Entry timed out\n");
				lec_arp_remove(priv, entry);
				lec_arp_remove(priv, entry);
				lec_arp_put(entry);
				lec_arp_put(entry);
			} else {
			} else {
@@ -1999,7 +1993,7 @@ static struct atm_vcc *lec_arp_resolve(struct lec_priv *priv,
		    entry->packets_flooded <
		    entry->packets_flooded <
		    priv->maximum_unknown_frame_count) {
		    priv->maximum_unknown_frame_count) {
			entry->packets_flooded++;
			entry->packets_flooded++;
			DPRINTK("LEC_ARP: Flooding..\n");
			pr_debug("LEC_ARP: Flooding..\n");
			found = priv->mcast_vcc;
			found = priv->mcast_vcc;
			goto out;
			goto out;
		}
		}
@@ -2010,13 +2004,13 @@ static struct atm_vcc *lec_arp_resolve(struct lec_priv *priv,
		 */
		 */
		lec_arp_hold(entry);
		lec_arp_hold(entry);
		*ret_entry = entry;
		*ret_entry = entry;
		DPRINTK("lec: entry->status %d entry->vcc %p\n", entry->status,
		pr_debug("lec: entry->status %d entry->vcc %p\n", entry->status,
			entry->vcc);
			entry->vcc);
		found = NULL;
		found = NULL;
	} else {
	} else {
		/* No matching entry was found */
		/* No matching entry was found */
		entry = make_entry(priv, mac_to_find);
		entry = make_entry(priv, mac_to_find);
		DPRINTK("LEC_ARP: Making entry\n");
		pr_debug("LEC_ARP: Making entry\n");
		if (!entry) {
		if (!entry) {
			found = priv->mcast_vcc;
			found = priv->mcast_vcc;
			goto out;
			goto out;
@@ -2053,7 +2047,7 @@ lec_addr_delete(struct lec_priv *priv, unsigned char *atm_addr,
	struct lec_arp_table *entry;
	struct lec_arp_table *entry;
	int i;
	int i;


	DPRINTK("lec_addr_delete\n");
	pr_debug("lec_addr_delete\n");
	spin_lock_irqsave(&priv->lec_arp_lock, flags);
	spin_lock_irqsave(&priv->lec_arp_lock, flags);
	for (i = 0; i < LEC_ARP_TABLE_SIZE; i++) {
	for (i = 0; i < LEC_ARP_TABLE_SIZE; i++) {
		hlist_for_each_entry_safe(entry, node, next, &priv->lec_arp_tables[i], next) {
		hlist_for_each_entry_safe(entry, node, next, &priv->lec_arp_tables[i], next) {
@@ -2084,8 +2078,8 @@ lec_arp_update(struct lec_priv *priv, unsigned char *mac_addr,
	struct lec_arp_table *entry, *tmp;
	struct lec_arp_table *entry, *tmp;
	int i;
	int i;


	DPRINTK("lec:%s", (targetless_le_arp) ? "targetless " : " ");
	pr_debug("lec:%s", (targetless_le_arp) ? "targetless " : " ");
	DPRINTK("lec_arp_update mac:%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x\n",
	pr_debug("lec_arp_update mac:%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x\n",
		mac_addr[0], mac_addr[1], mac_addr[2], mac_addr[3],
		mac_addr[0], mac_addr[1], mac_addr[2], mac_addr[3],
		mac_addr[4], mac_addr[5]);
		mac_addr[4], mac_addr[5]);


@@ -2122,7 +2116,7 @@ lec_arp_update(struct lec_priv *priv, unsigned char *mac_addr,
					entry->flags |= LEC_REMOTE_FLAG;
					entry->flags |= LEC_REMOTE_FLAG;
				else
				else
					entry->flags &= ~LEC_REMOTE_FLAG;
					entry->flags &= ~LEC_REMOTE_FLAG;
				DPRINTK("After update\n");
				pr_debug("After update\n");
				dump_arp_table(priv);
				dump_arp_table(priv);
				goto out;
				goto out;
			}
			}
@@ -2166,7 +2160,7 @@ lec_arp_update(struct lec_priv *priv, unsigned char *mac_addr,
		entry->status = ESI_VC_PENDING;
		entry->status = ESI_VC_PENDING;
		send_to_lecd(priv, l_svc_setup, entry->mac_addr, atm_addr, NULL);
		send_to_lecd(priv, l_svc_setup, entry->mac_addr, atm_addr, NULL);
	}
	}
	DPRINTK("After update2\n");
	pr_debug("After update2\n");
	dump_arp_table(priv);
	dump_arp_table(priv);
out:
out:
	spin_unlock_irqrestore(&priv->lec_arp_lock, flags);
	spin_unlock_irqrestore(&priv->lec_arp_lock, flags);
@@ -2189,7 +2183,7 @@ lec_vcc_added(struct lec_priv *priv, struct atmlec_ioc *ioc_data,
	if (ioc_data->receive == 2) {
	if (ioc_data->receive == 2) {
		/* Vcc for Multicast Forward. No timer, LANEv2 7.1.20 and 2.3.5.3 */
		/* Vcc for Multicast Forward. No timer, LANEv2 7.1.20 and 2.3.5.3 */


		DPRINTK("LEC_ARP: Attaching mcast forward\n");
		pr_debug("LEC_ARP: Attaching mcast forward\n");
#if 0
#if 0
		entry = lec_arp_find(priv, bus_mac);
		entry = lec_arp_find(priv, bus_mac);
		if (!entry) {
		if (!entry) {
@@ -2214,7 +2208,7 @@ lec_vcc_added(struct lec_priv *priv, struct atmlec_ioc *ioc_data,
		 * Vcc which we don't want to make default vcc,
		 * Vcc which we don't want to make default vcc,
		 * attach it anyway.
		 * attach it anyway.
		 */
		 */
		DPRINTK
		pr_debug
		    ("LEC_ARP:Attaching data direct, not default: "
		    ("LEC_ARP:Attaching data direct, not default: "
		     "%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x\n",
		     "%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x\n",
		     ioc_data->atm_addr[0], ioc_data->atm_addr[1],
		     ioc_data->atm_addr[0], ioc_data->atm_addr[1],
@@ -2242,7 +2236,7 @@ lec_vcc_added(struct lec_priv *priv, struct atmlec_ioc *ioc_data,
		dump_arp_table(priv);
		dump_arp_table(priv);
		goto out;
		goto out;
	}
	}
	DPRINTK
	pr_debug
	    ("LEC_ARP:Attaching data direct, default: "
	    ("LEC_ARP:Attaching data direct, default: "
	     "%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x\n",
	     "%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x%2.2x\n",
	     ioc_data->atm_addr[0], ioc_data->atm_addr[1],
	     ioc_data->atm_addr[0], ioc_data->atm_addr[1],
@@ -2260,8 +2254,8 @@ lec_vcc_added(struct lec_priv *priv, struct atmlec_ioc *ioc_data,
			if (memcmp
			if (memcmp
			    (ioc_data->atm_addr, entry->atm_addr,
			    (ioc_data->atm_addr, entry->atm_addr,
			     ATM_ESA_LEN) == 0) {
			     ATM_ESA_LEN) == 0) {
				DPRINTK("LEC_ARP: Attaching data direct\n");
				pr_debug("LEC_ARP: Attaching data direct\n");
				DPRINTK("Currently -> Vcc: %d, Rvcc:%d\n",
				pr_debug("Currently -> Vcc: %d, Rvcc:%d\n",
					entry->vcc ? entry->vcc->vci : 0,
					entry->vcc ? entry->vcc->vci : 0,
					entry->recv_vcc ? entry->recv_vcc->
					entry->recv_vcc ? entry->recv_vcc->
					vci : 0);
					vci : 0);
@@ -2303,7 +2297,7 @@ lec_vcc_added(struct lec_priv *priv, struct atmlec_ioc *ioc_data,
		}
		}
	}
	}
	if (found_entry) {
	if (found_entry) {
		DPRINTK("After vcc was added\n");
		pr_debug("After vcc was added\n");
		dump_arp_table(priv);
		dump_arp_table(priv);
		goto out;
		goto out;
	}
	}
@@ -2323,7 +2317,7 @@ lec_vcc_added(struct lec_priv *priv, struct atmlec_ioc *ioc_data,
	entry->timer.expires = jiffies + priv->vcc_timeout_period;
	entry->timer.expires = jiffies + priv->vcc_timeout_period;
	entry->timer.function = lec_arp_expire_vcc;
	entry->timer.function = lec_arp_expire_vcc;
	add_timer(&entry->timer);
	add_timer(&entry->timer);
	DPRINTK("After vcc was added\n");
	pr_debug("After vcc was added\n");
	dump_arp_table(priv);
	dump_arp_table(priv);
out:
out:
	spin_unlock_irqrestore(&priv->lec_arp_lock, flags);
	spin_unlock_irqrestore(&priv->lec_arp_lock, flags);
@@ -2336,7 +2330,7 @@ static void lec_flush_complete(struct lec_priv *priv, unsigned long tran_id)
	struct lec_arp_table *entry;
	struct lec_arp_table *entry;
	int i;
	int i;


	DPRINTK("LEC:lec_flush_complete %lx\n", tran_id);
	pr_debug("LEC:lec_flush_complete %lx\n", tran_id);
restart:
restart:
	spin_lock_irqsave(&priv->lec_arp_lock, flags);
	spin_lock_irqsave(&priv->lec_arp_lock, flags);
	for (i = 0; i < LEC_ARP_TABLE_SIZE; i++) {
	for (i = 0; i < LEC_ARP_TABLE_SIZE; i++) {
@@ -2353,7 +2347,7 @@ static void lec_flush_complete(struct lec_priv *priv, unsigned long tran_id)
				entry->last_used = jiffies;
				entry->last_used = jiffies;
				entry->status = ESI_FORWARD_DIRECT;
				entry->status = ESI_FORWARD_DIRECT;
				lec_arp_put(entry);
				lec_arp_put(entry);
				DPRINTK("LEC_ARP: Flushed\n");
				pr_debug("LEC_ARP: Flushed\n");
				goto restart;
				goto restart;
			}
			}
		}
		}
@@ -2376,7 +2370,7 @@ lec_set_flush_tran_id(struct lec_priv *priv,
		hlist_for_each_entry(entry, node, &priv->lec_arp_tables[i], next) {
		hlist_for_each_entry(entry, node, &priv->lec_arp_tables[i], next) {
			if (!memcmp(atm_addr, entry->atm_addr, ATM_ESA_LEN)) {
			if (!memcmp(atm_addr, entry->atm_addr, ATM_ESA_LEN)) {
				entry->flush_tran_id = tran_id;
				entry->flush_tran_id = tran_id;
				DPRINTK("Set flush transaction id to %lx for %p\n",
				pr_debug("Set flush transaction id to %lx for %p\n",
					tran_id, entry);
					tran_id, entry);
			}
			}
		}
		}
@@ -2427,7 +2421,7 @@ static void lec_vcc_close(struct lec_priv *priv, struct atm_vcc *vcc)
	struct lec_arp_table *entry;
	struct lec_arp_table *entry;
	int i;
	int i;


	DPRINTK("LEC_ARP: lec_vcc_close vpi:%d vci:%d\n", vcc->vpi, vcc->vci);
	pr_debug("LEC_ARP: lec_vcc_close vpi:%d vci:%d\n", vcc->vpi, vcc->vci);
	dump_arp_table(priv);
	dump_arp_table(priv);


	spin_lock_irqsave(&priv->lec_arp_lock, flags);
	spin_lock_irqsave(&priv->lec_arp_lock, flags);
@@ -2510,7 +2504,7 @@ lec_arp_check_empties(struct lec_priv *priv,
			goto out;
			goto out;
		}
		}
	}
	}
	DPRINTK("LEC_ARP: Arp_check_empties: entry not found!\n");
	pr_debug("LEC_ARP: Arp_check_empties: entry not found!\n");
out:
out:
	spin_unlock_irqrestore(&priv->lec_arp_lock, flags);
	spin_unlock_irqrestore(&priv->lec_arp_lock, flags);
}
}
+6 −17

File changed.

Preview size limit exceeded, changes collapsed.

Loading