aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2008-05-26 13:14:02 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2008-05-26 13:14:02 -0400
commitc5e6fd28e5776200a737e9df337a529d36fa9a54 (patch)
treedf9f926123dd9cbaa9e57f13cc44200c50ee5cbc /include
parentb3733034f113a4119f734b84e94180a42c8bc1a1 (diff)
parent289c79a4bd350e8a25065102563ad1a183d1b402 (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-2.6: (52 commits) vlan: Use bitmask of feature flags instead of seperate feature bits fmvj18x_cs: add NextCom NC5310 rev B support xirc2ps_cs: re-initialize the multicast address in do_reset 3C509: rx_bytes should not be increased when alloc_skb failed NETFRONT: Use __skb_queue_purge() VIRTIO: Use __skb_queue_purge() phylib: do EXPORT_SYMBOL on get_phy_id netlink: Fix nla_parse_nested_compat() to call nla_parse() directly WAN: protect HDLC proto list while insmod/rmmod drivers/net/fs_enet: remove null pointer dereference S2io: Version update for napi and MSI-X patches S2io: Added napi support when MSIX is enabled. S2io: Move all the transmit completions to a single msi-x (alarm) vector drivers/net/ehea - remove unnecessary memset after kzalloc au1000_eth: remove useless check Blackfin EMAC Driver: Removed duplicated include <linux/ethtool.h> cpmac bugfixes and enhancements e1000e: use resource_size_t, not unsigned long, for phys addrs net/usb: add support for Apple USB Ethernet Adapter uli526x: add support for netpoll ...
Diffstat (limited to 'include')
-rw-r--r--include/linux/netdevice.h9
-rw-r--r--include/net/netlink.h11
2 files changed, 11 insertions, 9 deletions
diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
index 2b0266484c84..f27fd2009334 100644
--- a/include/linux/netdevice.h
+++ b/include/linux/netdevice.h
@@ -514,12 +514,10 @@ struct net_device
514#define NETIF_F_NETNS_LOCAL 8192 /* Does not change network namespaces */ 514#define NETIF_F_NETNS_LOCAL 8192 /* Does not change network namespaces */
515#define NETIF_F_MULTI_QUEUE 16384 /* Has multiple TX/RX queues */ 515#define NETIF_F_MULTI_QUEUE 16384 /* Has multiple TX/RX queues */
516#define NETIF_F_LRO 32768 /* large receive offload */ 516#define NETIF_F_LRO 32768 /* large receive offload */
517#define NETIF_F_VLAN_TSO 65536 /* Supports TSO for VLANs */
518#define NETIF_F_VLAN_CSUM 131072 /* Supports TX checksumming for VLANs */
519 517
520 /* Segmentation offload features */ 518 /* Segmentation offload features */
521#define NETIF_F_GSO_SHIFT 20 519#define NETIF_F_GSO_SHIFT 16
522#define NETIF_F_GSO_MASK 0xfff00000 520#define NETIF_F_GSO_MASK 0xffff0000
523#define NETIF_F_TSO (SKB_GSO_TCPV4 << NETIF_F_GSO_SHIFT) 521#define NETIF_F_TSO (SKB_GSO_TCPV4 << NETIF_F_GSO_SHIFT)
524#define NETIF_F_UFO (SKB_GSO_UDP << NETIF_F_GSO_SHIFT) 522#define NETIF_F_UFO (SKB_GSO_UDP << NETIF_F_GSO_SHIFT)
525#define NETIF_F_GSO_ROBUST (SKB_GSO_DODGY << NETIF_F_GSO_SHIFT) 523#define NETIF_F_GSO_ROBUST (SKB_GSO_DODGY << NETIF_F_GSO_SHIFT)
@@ -747,6 +745,9 @@ struct net_device
747 /* rtnetlink link ops */ 745 /* rtnetlink link ops */
748 const struct rtnl_link_ops *rtnl_link_ops; 746 const struct rtnl_link_ops *rtnl_link_ops;
749 747
748 /* VLAN feature mask */
749 unsigned long vlan_features;
750
750 /* for setting kernel sock attribute on TCP connection setup */ 751 /* for setting kernel sock attribute on TCP connection setup */
751#define GSO_MAX_SIZE 65536 752#define GSO_MAX_SIZE 65536
752 unsigned int gso_max_size; 753 unsigned int gso_max_size;
diff --git a/include/net/netlink.h b/include/net/netlink.h
index a5506c42f03c..112dcdf7e34e 100644
--- a/include/net/netlink.h
+++ b/include/net/netlink.h
@@ -772,12 +772,13 @@ static inline int __nla_parse_nested_compat(struct nlattr *tb[], int maxtype,
772 const struct nla_policy *policy, 772 const struct nla_policy *policy,
773 int len) 773 int len)
774{ 774{
775 if (nla_len(nla) < len) 775 int nested_len = nla_len(nla) - NLA_ALIGN(len);
776
777 if (nested_len < 0)
776 return -1; 778 return -1;
777 if (nla_len(nla) >= NLA_ALIGN(len) + sizeof(struct nlattr)) 779 if (nested_len >= nla_attr_size(0))
778 return nla_parse_nested(tb, maxtype, 780 return nla_parse(tb, maxtype, nla_data(nla) + NLA_ALIGN(len),
779 nla_data(nla) + NLA_ALIGN(len), 781 nested_len, policy);
780 policy);
781 memset(tb, 0, sizeof(struct nlattr *) * (maxtype + 1)); 782 memset(tb, 0, sizeof(struct nlattr *) * (maxtype + 1));
782 return 0; 783 return 0;
783} 784}