Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

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

* git://git.kernel.org/pub/scm/linux/kernel/git/davem/net:
netfilter: ctnetlink: fix timeout calculation
ipvs: try also real server with port 0 in backup server
skge: restore rx multicast filter on resume and after config changes
mlx4_en: nullify cq->vector field when closing completion queue

+17 -7
+3
drivers/net/ethernet/marvell/skge.c
··· 2606 2606 spin_unlock_irq(&hw->hw_lock); 2607 2607 2608 2608 napi_enable(&skge->napi); 2609 + 2610 + skge_set_multicast(dev); 2611 + 2609 2612 return 0; 2610 2613 2611 2614 free_tx_ring:
+1
drivers/net/ethernet/mellanox/mlx4/en_cq.c
··· 147 147 mlx4_free_hwq_res(mdev->dev, &cq->wqres, cq->buf_size); 148 148 if (priv->mdev->dev->caps.comp_pool && cq->vector) 149 149 mlx4_release_eq(priv->mdev->dev, cq->vector); 150 + cq->vector = 0; 150 151 cq->buf_size = 0; 151 152 cq->buf = NULL; 152 153 }
+1 -1
include/net/ip_vs.h
··· 1207 1207 extern struct ip_vs_dest * 1208 1208 ip_vs_find_dest(struct net *net, int af, const union nf_inet_addr *daddr, 1209 1209 __be16 dport, const union nf_inet_addr *vaddr, __be16 vport, 1210 - __u16 protocol, __u32 fwmark); 1210 + __u16 protocol, __u32 fwmark, __u32 flags); 1211 1211 extern struct ip_vs_dest *ip_vs_try_bind_dest(struct ip_vs_conn *cp); 1212 1212 1213 1213
+1 -1
net/netfilter/ipvs/ip_vs_conn.c
··· 616 616 if ((cp) && (!cp->dest)) { 617 617 dest = ip_vs_find_dest(ip_vs_conn_net(cp), cp->af, &cp->daddr, 618 618 cp->dport, &cp->vaddr, cp->vport, 619 - cp->protocol, cp->fwmark); 619 + cp->protocol, cp->fwmark, cp->flags); 620 620 ip_vs_bind_dest(cp, dest); 621 621 return dest; 622 622 } else
+8 -2
net/netfilter/ipvs/ip_vs_ctl.c
··· 619 619 const union nf_inet_addr *daddr, 620 620 __be16 dport, 621 621 const union nf_inet_addr *vaddr, 622 - __be16 vport, __u16 protocol, __u32 fwmark) 622 + __be16 vport, __u16 protocol, __u32 fwmark, 623 + __u32 flags) 623 624 { 624 625 struct ip_vs_dest *dest; 625 626 struct ip_vs_service *svc; 627 + __be16 port = dport; 626 628 627 629 svc = ip_vs_service_get(net, af, fwmark, protocol, vaddr, vport); 628 630 if (!svc) 629 631 return NULL; 630 - dest = ip_vs_lookup_dest(svc, daddr, dport); 632 + if (fwmark && (flags & IP_VS_CONN_F_FWD_MASK) != IP_VS_CONN_F_MASQ) 633 + port = 0; 634 + dest = ip_vs_lookup_dest(svc, daddr, port); 635 + if (!dest) 636 + dest = ip_vs_lookup_dest(svc, daddr, port ^ dport); 631 637 if (dest) 632 638 atomic_inc(&dest->refcnt); 633 639 ip_vs_service_put(svc);
+1 -1
net/netfilter/ipvs/ip_vs_sync.c
··· 740 740 * but still handled. 741 741 */ 742 742 dest = ip_vs_find_dest(net, type, daddr, dport, param->vaddr, 743 - param->vport, protocol, fwmark); 743 + param->vport, protocol, fwmark, flags); 744 744 745 745 /* Set the approprite ativity flag */ 746 746 if (protocol == IPPROTO_TCP) {
+2 -2
net/netfilter/nf_conntrack_netlink.c
··· 135 135 static inline int 136 136 ctnetlink_dump_timeout(struct sk_buff *skb, const struct nf_conn *ct) 137 137 { 138 - long timeout = (ct->timeout.expires - jiffies) / HZ; 138 + long timeout = ((long)ct->timeout.expires - (long)jiffies) / HZ; 139 139 140 140 if (timeout < 0) 141 141 timeout = 0; ··· 1641 1641 const struct nf_conntrack_expect *exp) 1642 1642 { 1643 1643 struct nf_conn *master = exp->master; 1644 - long timeout = (exp->timeout.expires - jiffies) / HZ; 1644 + long timeout = ((long)exp->timeout.expires - (long)jiffies) / HZ; 1645 1645 struct nf_conn_help *help; 1646 1646 1647 1647 if (timeout < 0)