Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 97181
b: refs/heads/master
c: d8ac48d
h: refs/heads/master
i:
  97179: ad1b5f4
v: v3
  • Loading branch information
David S. Miller committed May 21, 2008
1 parent 33d354b commit af39fba
Show file tree
Hide file tree
Showing 16 changed files with 52 additions and 27 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 5d283e8cdb8097b6a3e9304c9c8942ad9dc1a4eb
refs/heads/master: d8ac48d4cbae0cc59b7784399292fbda3e231be3
1 change: 0 additions & 1 deletion trunk/drivers/atm/fore200e.h
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
/* $Id: fore200e.h,v 1.4 2000/04/14 10:10:34 davem Exp $ */
#ifndef _FORE200E_H
#define _FORE200E_H

Expand Down
2 changes: 0 additions & 2 deletions trunk/drivers/atm/fore200e_mkfirm.c
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
/*
$Id: fore200e_mkfirm.c,v 1.1 2000/02/21 16:04:32 davem Exp $
mkfirm.c: generates a C readable file from a binary firmware image
Christophe Lizzi (lizzi@{csti.fr, cnam.fr}), June 1999.
Expand Down
2 changes: 0 additions & 2 deletions trunk/drivers/atm/he.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
/* $Id: he.h,v 1.4 2003/05/06 22:48:00 chas Exp $ */

/*
he.h
Expand Down
7 changes: 0 additions & 7 deletions trunk/drivers/atm/idt77252.c
Original file line number Diff line number Diff line change
@@ -1,8 +1,4 @@
/*******************************************************************
* ident "$Id: idt77252.c,v 1.2 2001/11/11 08:13:54 ecd Exp $"
*
* $Author: ecd $
* $Date: 2001/11/11 08:13:54 $
*
* Copyright (c) 2000 ATecoM GmbH
*
Expand All @@ -29,9 +25,6 @@
* 675 Mass Ave, Cambridge, MA 02139, USA.
*
*******************************************************************/
static char const rcsid[] =
"$Id: idt77252.c,v 1.2 2001/11/11 08:13:54 ecd Exp $";


#include <linux/module.h>
#include <linux/pci.h>
Expand Down
4 changes: 0 additions & 4 deletions trunk/drivers/atm/idt77252.h
Original file line number Diff line number Diff line change
@@ -1,8 +1,4 @@
/*******************************************************************
* ident "$Id: idt77252.h,v 1.2 2001/11/11 08:13:54 ecd Exp $"
*
* $Author: ecd $
* $Date: 2001/11/11 08:13:54 $
*
* Copyright (c) 2000 ATecoM GmbH
*
Expand Down
2 changes: 1 addition & 1 deletion trunk/drivers/atm/nicstarmac.copyright
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
*
* Modified to work with the IDT7721 nicstar -- AAL5 (tested) only.
*
* R. D. Rechenmacher <ron@fnal.gov>, Aug. 6, 1997 $Revision: 1.1 $ $Date: 1999/08/20 11:00:11 $
* R. D. Rechenmacher <ron@fnal.gov>, Aug. 6, 1997
*
* Linux driver for the IDT77201 NICStAR PCI ATM controller.
* PHY component is expected to be 155 Mbps S/UNI-Lite or IDT 77155;
Expand Down
6 changes: 4 additions & 2 deletions trunk/include/linux/netdevice.h
Original file line number Diff line number Diff line change
Expand Up @@ -514,10 +514,12 @@ struct net_device
#define NETIF_F_NETNS_LOCAL 8192 /* Does not change network namespaces */
#define NETIF_F_MULTI_QUEUE 16384 /* Has multiple TX/RX queues */
#define NETIF_F_LRO 32768 /* large receive offload */
#define NETIF_F_VLAN_TSO 65536 /* Supports TSO for VLANs */
#define NETIF_F_VLAN_CSUM 131072 /* Supports TX checksumming for VLANs */

/* Segmentation offload features */
#define NETIF_F_GSO_SHIFT 16
#define NETIF_F_GSO_MASK 0xffff0000
#define NETIF_F_GSO_SHIFT 20
#define NETIF_F_GSO_MASK 0xfff00000
#define NETIF_F_TSO (SKB_GSO_TCPV4 << NETIF_F_GSO_SHIFT)
#define NETIF_F_UFO (SKB_GSO_UDP << NETIF_F_GSO_SHIFT)
#define NETIF_F_GSO_ROBUST (SKB_GSO_DODGY << NETIF_F_GSO_SHIFT)
Expand Down
34 changes: 31 additions & 3 deletions trunk/net/8021q/vlan.c
Original file line number Diff line number Diff line change
Expand Up @@ -382,6 +382,24 @@ static void vlan_sync_address(struct net_device *dev,
memcpy(vlan->real_dev_addr, dev->dev_addr, ETH_ALEN);
}

static void vlan_transfer_features(struct net_device *dev,
struct net_device *vlandev)
{
unsigned long old_features = vlandev->features;

if (dev->features & NETIF_F_VLAN_TSO) {
vlandev->features &= ~VLAN_TSO_FEATURES;
vlandev->features |= dev->features & VLAN_TSO_FEATURES;
}
if (dev->features & NETIF_F_VLAN_CSUM) {
vlandev->features &= ~NETIF_F_ALL_CSUM;
vlandev->features |= dev->features & NETIF_F_ALL_CSUM;
}

if (old_features != vlandev->features)
netdev_features_change(vlandev);
}

static void __vlan_device_event(struct net_device *dev, unsigned long event)
{
switch (event) {
Expand Down Expand Up @@ -410,10 +428,8 @@ static int vlan_device_event(struct notifier_block *unused, unsigned long event,
int i, flgs;
struct net_device *vlandev;

if (is_vlan_dev(dev)) {
if (is_vlan_dev(dev))
__vlan_device_event(dev, event);
goto out;
}

grp = __vlan_find_group(dev);
if (!grp)
Expand Down Expand Up @@ -450,6 +466,18 @@ static int vlan_device_event(struct notifier_block *unused, unsigned long event,
}
break;

case NETDEV_FEAT_CHANGE:
/* Propagate device features to underlying device */
for (i = 0; i < VLAN_GROUP_ARRAY_LEN; i++) {
vlandev = vlan_group_get_device(grp, i);
if (!vlandev)
continue;

vlan_transfer_features(dev, vlandev);
}

break;

case NETDEV_DOWN:
/* Put all VLANs for this dev in the down state too. */
for (i = 0; i < VLAN_GROUP_ARRAY_LEN; i++) {
Expand Down
2 changes: 2 additions & 0 deletions trunk/net/8021q/vlan.h
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
#define VLAN_GRP_HASH_SIZE (1 << VLAN_GRP_HASH_SHIFT)
#define VLAN_GRP_HASH_MASK (VLAN_GRP_HASH_SIZE - 1)

#define VLAN_TSO_FEATURES (NETIF_F_TSO | NETIF_F_TSO6 | NETIF_F_SG)

/* Find a VLAN device by the MAC address of its Ethernet device, and
* it's VLAN ID. The default configuration is to have VLAN's scope
* to be box-wide, so the MAC will be ignored. The mac will only be
Expand Down
5 changes: 5 additions & 0 deletions trunk/net/8021q/vlan_dev.c
Original file line number Diff line number Diff line change
Expand Up @@ -663,6 +663,11 @@ static int vlan_dev_init(struct net_device *dev)
(1<<__LINK_STATE_DORMANT))) |
(1<<__LINK_STATE_PRESENT);

if (real_dev->features & NETIF_F_VLAN_TSO)
dev->features |= real_dev->features & VLAN_TSO_FEATURES;
if (real_dev->features & NETIF_F_VLAN_CSUM)
dev->features |= real_dev->features & NETIF_F_ALL_CSUM;

/* ipv6 shared card related stuff */
dev->dev_id = real_dev->dev_id;

Expand Down
2 changes: 1 addition & 1 deletion trunk/net/core/dev.c
Original file line number Diff line number Diff line change
Expand Up @@ -3141,7 +3141,7 @@ int dev_change_flags(struct net_device *dev, unsigned flags)
* Load in the correct multicast list now the flags have changed.
*/

if (dev->change_rx_flags && (dev->flags ^ flags) & IFF_MULTICAST)
if (dev->change_rx_flags && (old_flags ^ flags) & IFF_MULTICAST)
dev->change_rx_flags(dev, IFF_MULTICAST);

dev_set_rx_mode(dev);
Expand Down
4 changes: 4 additions & 0 deletions trunk/net/core/pktgen.c
Original file line number Diff line number Diff line change
Expand Up @@ -390,6 +390,7 @@ struct pktgen_thread {
int cpu;

wait_queue_head_t queue;
struct completion start_done;
};

#define REMOVE 1
Expand Down Expand Up @@ -3414,6 +3415,7 @@ static int pktgen_thread_worker(void *arg)
BUG_ON(smp_processor_id() != cpu);

init_waitqueue_head(&t->queue);
complete(&t->start_done);

pr_debug("pktgen: starting pktgen/%d: pid=%d\n", cpu, task_pid_nr(current));

Expand Down Expand Up @@ -3615,6 +3617,7 @@ static int __init pktgen_create_thread(int cpu)
INIT_LIST_HEAD(&t->if_list);

list_add_tail(&t->th_list, &pktgen_threads);
init_completion(&t->start_done);

p = kthread_create(pktgen_thread_worker, t, "kpktgend_%d", cpu);
if (IS_ERR(p)) {
Expand All @@ -3639,6 +3642,7 @@ static int __init pktgen_create_thread(int cpu)
}

wake_up_process(p);
wait_for_completion(&t->start_done);

return 0;
}
Expand Down
2 changes: 1 addition & 1 deletion trunk/net/ipv4/route.c
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,7 @@ static struct dst_ops ipv4_dst_ops = {
.negative_advice = ipv4_negative_advice,
.link_failure = ipv4_link_failure,
.update_pmtu = ip_rt_update_pmtu,
.local_out = ip_local_out,
.local_out = __ip_local_out,
.entry_size = sizeof(struct rtable),
.entries = ATOMIC_INIT(0),
};
Expand Down
2 changes: 1 addition & 1 deletion trunk/net/ipv6/route.c
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ static struct dst_ops ip6_dst_ops_template = {
.negative_advice = ip6_negative_advice,
.link_failure = ip6_link_failure,
.update_pmtu = ip6_rt_update_pmtu,
.local_out = ip6_local_out,
.local_out = __ip6_local_out,
.entry_size = sizeof(struct rt6_info),
.entries = ATOMIC_INIT(0),
};
Expand Down
2 changes: 1 addition & 1 deletion trunk/net/sched/cls_api.c
Original file line number Diff line number Diff line change
Expand Up @@ -220,7 +220,7 @@ static int tc_ctl_tfilter(struct sk_buff *skb, struct nlmsghdr *n, void *arg)
tp = kzalloc(sizeof(*tp), GFP_KERNEL);
if (tp == NULL)
goto errout;
err = -EINVAL;
err = -ENOENT;
tp_ops = tcf_proto_lookup_ops(tca[TCA_KIND]);
if (tp_ops == NULL) {
#ifdef CONFIG_KMOD
Expand Down

0 comments on commit af39fba

Please sign in to comment.