Commit 542d4d68 authored by David S. Miller's avatar David S. Miller

neigh: Kill ndisc_ops->queue_xmit

It is always dev_queue_xmit().
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent b23b5455
...@@ -122,7 +122,6 @@ struct neigh_ops { ...@@ -122,7 +122,6 @@ struct neigh_ops {
void (*error_report)(struct neighbour *, struct sk_buff*); void (*error_report)(struct neighbour *, struct sk_buff*);
int (*output)(struct sk_buff*); int (*output)(struct sk_buff*);
int (*connected_output)(struct sk_buff*); int (*connected_output)(struct sk_buff*);
int (*queue_xmit)(struct sk_buff*);
}; };
struct pneigh_entry { struct pneigh_entry {
......
...@@ -273,7 +273,6 @@ static const struct neigh_ops clip_neigh_ops = { ...@@ -273,7 +273,6 @@ static const struct neigh_ops clip_neigh_ops = {
.error_report = clip_neigh_error, .error_report = clip_neigh_error,
.output = dev_queue_xmit, .output = dev_queue_xmit,
.connected_output = dev_queue_xmit, .connected_output = dev_queue_xmit,
.queue_xmit = dev_queue_xmit,
}; };
static int clip_constructor(struct neighbour *neigh) static int clip_constructor(struct neighbour *neigh)
......
...@@ -1257,7 +1257,7 @@ int neigh_resolve_output(struct sk_buff *skb) ...@@ -1257,7 +1257,7 @@ int neigh_resolve_output(struct sk_buff *skb)
} while (read_seqretry(&neigh->ha_lock, seq)); } while (read_seqretry(&neigh->ha_lock, seq));
if (err >= 0) if (err >= 0)
rc = neigh->ops->queue_xmit(skb); rc = dev_queue_xmit(skb);
else else
goto out_kfree_skb; goto out_kfree_skb;
} }
...@@ -1292,7 +1292,7 @@ int neigh_connected_output(struct sk_buff *skb) ...@@ -1292,7 +1292,7 @@ int neigh_connected_output(struct sk_buff *skb)
} while (read_seqretry(&neigh->ha_lock, seq)); } while (read_seqretry(&neigh->ha_lock, seq));
if (err >= 0) if (err >= 0)
err = neigh->ops->queue_xmit(skb); err = dev_queue_xmit(skb);
else { else {
err = -EINVAL; err = -EINVAL;
kfree_skb(skb); kfree_skb(skb);
......
...@@ -64,7 +64,6 @@ static const struct neigh_ops dn_long_ops = { ...@@ -64,7 +64,6 @@ static const struct neigh_ops dn_long_ops = {
.error_report = dn_long_error_report, .error_report = dn_long_error_report,
.output = dn_long_output, .output = dn_long_output,
.connected_output = dn_long_output, .connected_output = dn_long_output,
.queue_xmit = dev_queue_xmit,
}; };
/* /*
...@@ -75,7 +74,6 @@ static const struct neigh_ops dn_short_ops = { ...@@ -75,7 +74,6 @@ static const struct neigh_ops dn_short_ops = {
.error_report = dn_short_error_report, .error_report = dn_short_error_report,
.output = dn_short_output, .output = dn_short_output,
.connected_output = dn_short_output, .connected_output = dn_short_output,
.queue_xmit = dev_queue_xmit,
}; };
/* /*
...@@ -86,7 +84,6 @@ static const struct neigh_ops dn_phase3_ops = { ...@@ -86,7 +84,6 @@ static const struct neigh_ops dn_phase3_ops = {
.error_report = dn_short_error_report, /* Can use short version here */ .error_report = dn_short_error_report, /* Can use short version here */
.output = dn_phase3_output, .output = dn_phase3_output,
.connected_output = dn_phase3_output, .connected_output = dn_phase3_output,
.queue_xmit = dev_queue_xmit
}; };
static u32 dn_neigh_hash(const void *pkey, static u32 dn_neigh_hash(const void *pkey,
...@@ -212,7 +209,7 @@ static int dn_neigh_output_packet(struct sk_buff *skb) ...@@ -212,7 +209,7 @@ static int dn_neigh_output_packet(struct sk_buff *skb)
dn_dn2eth(mac_addr, rt->rt_local_src); dn_dn2eth(mac_addr, rt->rt_local_src);
if (dev_hard_header(skb, dev, ntohs(skb->protocol), neigh->ha, if (dev_hard_header(skb, dev, ntohs(skb->protocol), neigh->ha,
mac_addr, skb->len) >= 0) mac_addr, skb->len) >= 0)
return neigh->ops->queue_xmit(skb); return dev_queue_xmit(skb);
if (net_ratelimit()) if (net_ratelimit())
printk(KERN_DEBUG "dn_neigh_output_packet: oops, can't send packet\n"); printk(KERN_DEBUG "dn_neigh_output_packet: oops, can't send packet\n");
......
...@@ -138,7 +138,6 @@ static const struct neigh_ops arp_generic_ops = { ...@@ -138,7 +138,6 @@ static const struct neigh_ops arp_generic_ops = {
.error_report = arp_error_report, .error_report = arp_error_report,
.output = neigh_resolve_output, .output = neigh_resolve_output,
.connected_output = neigh_connected_output, .connected_output = neigh_connected_output,
.queue_xmit = dev_queue_xmit,
}; };
static const struct neigh_ops arp_hh_ops = { static const struct neigh_ops arp_hh_ops = {
...@@ -147,14 +146,12 @@ static const struct neigh_ops arp_hh_ops = { ...@@ -147,14 +146,12 @@ static const struct neigh_ops arp_hh_ops = {
.error_report = arp_error_report, .error_report = arp_error_report,
.output = neigh_resolve_output, .output = neigh_resolve_output,
.connected_output = neigh_resolve_output, .connected_output = neigh_resolve_output,
.queue_xmit = dev_queue_xmit,
}; };
static const struct neigh_ops arp_direct_ops = { static const struct neigh_ops arp_direct_ops = {
.family = AF_INET, .family = AF_INET,
.output = dev_queue_xmit, .output = dev_queue_xmit,
.connected_output = dev_queue_xmit, .connected_output = dev_queue_xmit,
.queue_xmit = dev_queue_xmit,
}; };
static const struct neigh_ops arp_broken_ops = { static const struct neigh_ops arp_broken_ops = {
...@@ -163,7 +160,6 @@ static const struct neigh_ops arp_broken_ops = { ...@@ -163,7 +160,6 @@ static const struct neigh_ops arp_broken_ops = {
.error_report = arp_error_report, .error_report = arp_error_report,
.output = neigh_compat_output, .output = neigh_compat_output,
.connected_output = neigh_compat_output, .connected_output = neigh_compat_output,
.queue_xmit = dev_queue_xmit,
}; };
struct neigh_table arp_tbl = { struct neigh_table arp_tbl = {
...@@ -254,7 +250,7 @@ static int arp_constructor(struct neighbour *neigh) ...@@ -254,7 +250,7 @@ static int arp_constructor(struct neighbour *neigh)
if (!dev->header_ops) { if (!dev->header_ops) {
neigh->nud_state = NUD_NOARP; neigh->nud_state = NUD_NOARP;
neigh->ops = &arp_direct_ops; neigh->ops = &arp_direct_ops;
neigh->output = neigh->ops->queue_xmit; neigh->output = dev_queue_xmit;
} else { } else {
/* Good devices (checked by reading texts, but only Ethernet is /* Good devices (checked by reading texts, but only Ethernet is
tested) tested)
......
...@@ -107,7 +107,6 @@ static const struct neigh_ops ndisc_generic_ops = { ...@@ -107,7 +107,6 @@ static const struct neigh_ops ndisc_generic_ops = {
.error_report = ndisc_error_report, .error_report = ndisc_error_report,
.output = neigh_resolve_output, .output = neigh_resolve_output,
.connected_output = neigh_connected_output, .connected_output = neigh_connected_output,
.queue_xmit = dev_queue_xmit,
}; };
static const struct neigh_ops ndisc_hh_ops = { static const struct neigh_ops ndisc_hh_ops = {
...@@ -116,7 +115,6 @@ static const struct neigh_ops ndisc_hh_ops = { ...@@ -116,7 +115,6 @@ static const struct neigh_ops ndisc_hh_ops = {
.error_report = ndisc_error_report, .error_report = ndisc_error_report,
.output = neigh_resolve_output, .output = neigh_resolve_output,
.connected_output = neigh_resolve_output, .connected_output = neigh_resolve_output,
.queue_xmit = dev_queue_xmit,
}; };
...@@ -124,7 +122,6 @@ static const struct neigh_ops ndisc_direct_ops = { ...@@ -124,7 +122,6 @@ static const struct neigh_ops ndisc_direct_ops = {
.family = AF_INET6, .family = AF_INET6,
.output = dev_queue_xmit, .output = dev_queue_xmit,
.connected_output = dev_queue_xmit, .connected_output = dev_queue_xmit,
.queue_xmit = dev_queue_xmit,
}; };
struct neigh_table nd_tbl = { struct neigh_table nd_tbl = {
...@@ -389,7 +386,7 @@ static int ndisc_constructor(struct neighbour *neigh) ...@@ -389,7 +386,7 @@ static int ndisc_constructor(struct neighbour *neigh)
if (!dev->header_ops) { if (!dev->header_ops) {
neigh->nud_state = NUD_NOARP; neigh->nud_state = NUD_NOARP;
neigh->ops = &ndisc_direct_ops; neigh->ops = &ndisc_direct_ops;
neigh->output = neigh->ops->queue_xmit; neigh->output = dev_queue_xmit;
} else { } else {
if (is_multicast) { if (is_multicast) {
neigh->nud_state = NUD_NOARP; neigh->nud_state = NUD_NOARP;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment