Merge master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
* master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6: [NEIGH]: Fix IP-over-ATM and ARP interaction. [TG3]: ethtool always report port is TP.
This commit is contained in:
commit
18552b8f22
|
@ -7653,21 +7653,23 @@ static int tg3_get_settings(struct net_device *dev, struct ethtool_cmd *cmd)
|
|||
cmd->supported |= (SUPPORTED_1000baseT_Half |
|
||||
SUPPORTED_1000baseT_Full);
|
||||
|
||||
if (!(tp->tg3_flags2 & TG3_FLG2_ANY_SERDES))
|
||||
if (!(tp->tg3_flags2 & TG3_FLG2_ANY_SERDES)) {
|
||||
cmd->supported |= (SUPPORTED_100baseT_Half |
|
||||
SUPPORTED_100baseT_Full |
|
||||
SUPPORTED_10baseT_Half |
|
||||
SUPPORTED_10baseT_Full |
|
||||
SUPPORTED_MII);
|
||||
else
|
||||
cmd->port = PORT_TP;
|
||||
} else {
|
||||
cmd->supported |= SUPPORTED_FIBRE;
|
||||
cmd->port = PORT_FIBRE;
|
||||
}
|
||||
|
||||
cmd->advertising = tp->link_config.advertising;
|
||||
if (netif_running(dev)) {
|
||||
cmd->speed = tp->link_config.active_speed;
|
||||
cmd->duplex = tp->link_config.active_duplex;
|
||||
}
|
||||
cmd->port = 0;
|
||||
cmd->phy_address = PHY_ADDR;
|
||||
cmd->transceiver = 0;
|
||||
cmd->autoneg = tp->link_config.autoneg;
|
||||
|
|
|
@ -211,6 +211,7 @@ struct neigh_table
|
|||
#define NEIGH_UPDATE_F_ADMIN 0x80000000
|
||||
|
||||
extern void neigh_table_init(struct neigh_table *tbl);
|
||||
extern void neigh_table_init_no_netlink(struct neigh_table *tbl);
|
||||
extern int neigh_table_clear(struct neigh_table *tbl);
|
||||
extern struct neighbour * neigh_lookup(struct neigh_table *tbl,
|
||||
const void *pkey,
|
||||
|
|
|
@ -963,7 +963,7 @@ static struct file_operations arp_seq_fops = {
|
|||
static int __init atm_clip_init(void)
|
||||
{
|
||||
struct proc_dir_entry *p;
|
||||
neigh_table_init(&clip_tbl);
|
||||
neigh_table_init_no_netlink(&clip_tbl);
|
||||
|
||||
clip_tbl_hook = &clip_tbl;
|
||||
register_atm_ioctl(&clip_ioctl_ops);
|
||||
|
|
|
@ -1326,8 +1326,7 @@ void neigh_parms_destroy(struct neigh_parms *parms)
|
|||
kfree(parms);
|
||||
}
|
||||
|
||||
|
||||
void neigh_table_init(struct neigh_table *tbl)
|
||||
void neigh_table_init_no_netlink(struct neigh_table *tbl)
|
||||
{
|
||||
unsigned long now = jiffies;
|
||||
unsigned long phsize;
|
||||
|
@ -1383,10 +1382,27 @@ void neigh_table_init(struct neigh_table *tbl)
|
|||
|
||||
tbl->last_flush = now;
|
||||
tbl->last_rand = now + tbl->parms.reachable_time * 20;
|
||||
}
|
||||
|
||||
void neigh_table_init(struct neigh_table *tbl)
|
||||
{
|
||||
struct neigh_table *tmp;
|
||||
|
||||
neigh_table_init_no_netlink(tbl);
|
||||
write_lock(&neigh_tbl_lock);
|
||||
for (tmp = neigh_tables; tmp; tmp = tmp->next) {
|
||||
if (tmp->family == tbl->family)
|
||||
break;
|
||||
}
|
||||
tbl->next = neigh_tables;
|
||||
neigh_tables = tbl;
|
||||
write_unlock(&neigh_tbl_lock);
|
||||
|
||||
if (unlikely(tmp)) {
|
||||
printk(KERN_ERR "NEIGH: Registering multiple tables for "
|
||||
"family %d\n", tbl->family);
|
||||
dump_stack();
|
||||
}
|
||||
}
|
||||
|
||||
int neigh_table_clear(struct neigh_table *tbl)
|
||||
|
@ -2657,6 +2673,7 @@ EXPORT_SYMBOL(neigh_rand_reach_time);
|
|||
EXPORT_SYMBOL(neigh_resolve_output);
|
||||
EXPORT_SYMBOL(neigh_table_clear);
|
||||
EXPORT_SYMBOL(neigh_table_init);
|
||||
EXPORT_SYMBOL(neigh_table_init_no_netlink);
|
||||
EXPORT_SYMBOL(neigh_update);
|
||||
EXPORT_SYMBOL(neigh_update_hhs);
|
||||
EXPORT_SYMBOL(pneigh_enqueue);
|
||||
|
|
Loading…
Reference in New Issue