History

Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net

Pull networking fixes from David Miller: 1) If the user gives us a msg_namelen of 0, don't try to interpret anything pointed to by msg_name. From Ani Sinha. 2) Fix some bnx2i/bnx2fc randconfig compilation errors. The gist of the issue is that we firstly have drivers that span both SCSI and networking. And at the top of that chain of dependencies we have things like SCSI_FC_ATTRS and SCSI_NETLINK which are selected. But since select is a sledgehammer and ignores dependencies, everything to select's SCSI_FC_ATTRS and/or SCSI_NETLINK has to also explicitly select their dependencies and so on and so forth. Generally speaking 'select' is supposed to only be used for child nodes, those which have no dependencies of their own. And this whole chain of dependencies in the scsi layer violates that rather strongly. So just make SCSI_NETLINK depend upon it's dependencies, and so on and so forth for the things selecting it (either directly or indirectly). From Anish Bhatt and Randy Dunlap. 3) Fix generation of blackhole routes in IPSEC, from Steffen Klassert. 4) Actually notice netdev feature changes in rtl_open() code, from Hayes Wang. 5) Fix divide by zero in bond enslaving, from Nikolay Aleksandrov. 6) Missing memory barrier in sunvnet driver, from David Stevens. 7) Don't leave anycast addresses around when ipv6 interface is destroyed, from Sabrina Dubroca. 8) Don't call efx_{arch}_filter_sync_rx_mode before addr_list_lock is initialized in SFC driver, from Edward Cree. 9) Fix missing DMA error checking in 3c59x, from Neal Horman. 10) Openvswitch doesn't emit OVS_FLOW_CMD_NEW notifications accidently, fix from Samuel Gauthier. 11) pch_gbe needs to select NET_PTP_CLASSIFY otherwise we can get a build error. 12) Fix macvlan regression wherein we stopped emitting broadcast/multicast frames over software devices. From Nicolas Dichtel. 13) Fix infiniband bug due to unintended overflow of skb->cb[], from Eric Dumazet. And add an assertion so this doesn't happen again. 14) dm9000_parse_dt() should return error pointers, not NULL. From Tobias Klauser. 15) IP tunneling code uses this_cpu_ptr() in preemptible contexts, fix from Eric Dumazet. * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net: (87 commits) net: bcmgenet: call bcmgenet_dma_teardown in bcmgenet_fini_dma net: bcmgenet: fix TX reclaim accounting for fragments ipv4: do not use this_cpu_ptr() in preemptible context dm9000: Return an ERR_PTR() in all error conditions of dm9000_parse_dt() r8169: fix an if condition r8152: disable ALDPS ipoib: validate struct ipoib_cb size net: sched: shrink struct qdisc_skb_cb to 28 bytes tg3: Work around HW/FW limitations with vlan encapsulated frames macvlan: allow to enqueue broadcast pkt on virtual device pch_gbe: 'select' NET_PTP_CLASSIFY. scsi: Use 'depends' with LIBFC instead of 'select'. openvswitch: restore OVS_FLOW_CMD_NEW notifications genetlink: add function genl_has_listeners() lib: rhashtable: remove second linux/log2.h inclusion net: allow macvlans to move to net namespace 3c59x: Fix bad offset spec in skb_frag_dma_map 3c59x: Add dma error checking and recovery sparc: bpf_jit: fix support for ldx/stx mem and SKF_AD_VLAN_TAG can: at91_can: add missing prepare and unprepare of the clock ...

Linus Torvalds committed 12 years ago

Commit 98f75b82 parents 9478303 e18b7fa85 files · +828 −355Browse files

Showing the changes to include (6 of 85 files). Show all

Unified · Split

6 files
  1. include/linux/mlx4/device.h +1 −0
  2. include/linux/mlx4/qp.h +10 −2
  3. include/net/addrconf.h +1 −0
  4. include/net/dst.h +15 −1
  5. include/net/genetlink.h +8 −0
  6. include/net/sch_generic.h +2 −1
include/linux/mlx4/device.h+1−0
@@ -209,6 +209,7 @@ enum { · 208 unmodified lines
209209 MLX4_BMME_FLAG_TYPE_2_WIN = 1 << 9,
210210 MLX4_BMME_FLAG_RESERVED_LKEY = 1 << 10,
211211 MLX4_BMME_FLAG_FAST_REG_WR = 1 << 11,
212+ MLX4_BMME_FLAG_VSD_INIT2RTR = 1 << 28,
212213 };
213214
214215 enum mlx4_event {
include/linux/mlx4/qp.h+10−2
@@ -56,7 +56,8 @@ enum mlx4_qp_optpar { · 55 unmodified lines
5656 MLX4_QP_OPTPAR_RNR_RETRY = 1 << 13,
5757 MLX4_QP_OPTPAR_ACK_TIMEOUT = 1 << 14,
5858 MLX4_QP_OPTPAR_SCHED_QUEUE = 1 << 16,
59− MLX4_QP_OPTPAR_COUNTER_INDEX = 1 << 20
59+ MLX4_QP_OPTPAR_COUNTER_INDEX = 1 << 20,
60+ MLX4_QP_OPTPAR_VLAN_STRIPPING = 1 << 21,
6061 };
6162
6263 enum mlx4_qp_state {
@@ -423,13 +424,20 @@ struct mlx4_wqe_inline_seg { · 360 unmodified lines
423424
424425 enum mlx4_update_qp_attr {
425426 MLX4_UPDATE_QP_SMAC = 1 << 0,
427+ MLX4_UPDATE_QP_VSD = 1 << 2,
428+ MLX4_UPDATE_QP_SUPPORTED_ATTRS = (1 << 2) - 1
429+};
430+
431+enum mlx4_update_qp_params_flags {
432+ MLX4_UPDATE_QP_PARAMS_FLAGS_VSD_ENABLE = 1 << 0,
426433 };
427434
428435 struct mlx4_update_qp_params {
429436 u8 smac_index;
437+ u32 flags;
430438 };
431439
432−int mlx4_update_qp(struct mlx4_dev *dev, struct mlx4_qp *qp,
440+int mlx4_update_qp(struct mlx4_dev *dev, u32 qpn,
433441 enum mlx4_update_qp_attr attr,
434442 struct mlx4_update_qp_params *params);
435443 int mlx4_qp_modify(struct mlx4_dev *dev, struct mlx4_mtt *mtt,
include/net/addrconf.h+1−0
@@ -204,6 +204,7 @@ void ipv6_sock_ac_close(struct sock *sk); · 203 unmodified lines
204204
205205 int ipv6_dev_ac_inc(struct net_device *dev, const struct in6_addr *addr);
206206 int __ipv6_dev_ac_dec(struct inet6_dev *idev, const struct in6_addr *addr);
207+void ipv6_ac_destroy_dev(struct inet6_dev *idev);
207208 bool ipv6_chk_acast_addr(struct net *net, struct net_device *dev,
208209 const struct in6_addr *addr);
209210 bool ipv6_chk_acast_addr_src(struct net *net, struct net_device *dev,
include/net/dst.h+15−1
@@ -480,6 +480,7 @@ void dst_init(void); · 479 unmodified lines
480480 /* Flags for xfrm_lookup flags argument. */
481481 enum {
482482 XFRM_LOOKUP_ICMP = 1 << 0,
483+ XFRM_LOOKUP_QUEUE = 1 << 1,
483484 };
484485
485486 struct flowi;
@@ -490,7 +491,16 @@ static inline struct dst_entry *xfrm_lookup(struct net *net, · 4 unmodified lines
490491 int flags)
491492 {
492493 return dst_orig;
493−}
494+}
495+
496+static inline struct dst_entry *xfrm_lookup_route(struct net *net,
497+ struct dst_entry *dst_orig,
498+ const struct flowi *fl,
499+ struct sock *sk,
500+ int flags)
501+{
502+ return dst_orig;
503+}
494504
495505 static inline struct xfrm_state *dst_xfrm(const struct dst_entry *dst)
496506 {
@@ -502,6 +512,10 @@ struct dst_entry *xfrm_lookup(struct net *net, struct dst_entry *dst_orig, · 5 unmodified lines
502512 const struct flowi *fl, struct sock *sk,
503513 int flags);
504514
515+struct dst_entry *xfrm_lookup_route(struct net *net, struct dst_entry *dst_orig,
516+ const struct flowi *fl, struct sock *sk,
517+ int flags);
518+
505519 /* skb attached with this dst needs transformation if dst->xfrm is valid */
506520 static inline struct xfrm_state *dst_xfrm(const struct dst_entry *dst)
507521 {
include/net/genetlink.h+8−0
@@ -394,4 +394,12 @@ static inline int genl_set_err(struct genl_family *family, struct net *net, · 393 unmodified lines
394394 return netlink_set_err(net->genl_sock, portid, group, code);
395395 }
396396
397+static inline int genl_has_listeners(struct genl_family *family,
398+ struct sock *sk, unsigned int group)
399+{
400+ if (WARN_ON_ONCE(group >= family->n_mcgrps))
401+ return -EINVAL;
402+ group = family->mcgrp_offset + group;
403+ return netlink_has_listeners(sk, group);
404+}
397405 #endif /* __NET_GENERIC_NETLINK_H */
include/net/sch_generic.h+2−1
@@ -231,7 +231,8 @@ struct qdisc_skb_cb { · 230 unmodified lines
231231 unsigned int pkt_len;
232232 u16 slave_dev_queue_mapping;
233233 u16 _pad;
234− unsigned char data[24];
234+#define QDISC_CB_PRIV_LEN 20
235+ unsigned char data[QDISC_CB_PRIV_LEN];
235236 };
236237
237238 static inline void qdisc_cb_private_validate(const struct sk_buff *skb, int sz)