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
This commit is contained in:
commit
733bbb7e1c
@ -2606,6 +2606,9 @@ static int skge_up(struct net_device *dev)
|
||||
spin_unlock_irq(&hw->hw_lock);
|
||||
|
||||
napi_enable(&skge->napi);
|
||||
|
||||
skge_set_multicast(dev);
|
||||
|
||||
return 0;
|
||||
|
||||
free_tx_ring:
|
||||
|
@ -147,6 +147,7 @@ void mlx4_en_destroy_cq(struct mlx4_en_priv *priv, struct mlx4_en_cq *cq)
|
||||
mlx4_free_hwq_res(mdev->dev, &cq->wqres, cq->buf_size);
|
||||
if (priv->mdev->dev->caps.comp_pool && cq->vector)
|
||||
mlx4_release_eq(priv->mdev->dev, cq->vector);
|
||||
cq->vector = 0;
|
||||
cq->buf_size = 0;
|
||||
cq->buf = NULL;
|
||||
}
|
||||
|
@ -1207,7 +1207,7 @@ extern void ip_vs_control_cleanup(void);
|
||||
extern struct ip_vs_dest *
|
||||
ip_vs_find_dest(struct net *net, int af, const union nf_inet_addr *daddr,
|
||||
__be16 dport, const union nf_inet_addr *vaddr, __be16 vport,
|
||||
__u16 protocol, __u32 fwmark);
|
||||
__u16 protocol, __u32 fwmark, __u32 flags);
|
||||
extern struct ip_vs_dest *ip_vs_try_bind_dest(struct ip_vs_conn *cp);
|
||||
|
||||
|
||||
|
@ -616,7 +616,7 @@ struct ip_vs_dest *ip_vs_try_bind_dest(struct ip_vs_conn *cp)
|
||||
if ((cp) && (!cp->dest)) {
|
||||
dest = ip_vs_find_dest(ip_vs_conn_net(cp), cp->af, &cp->daddr,
|
||||
cp->dport, &cp->vaddr, cp->vport,
|
||||
cp->protocol, cp->fwmark);
|
||||
cp->protocol, cp->fwmark, cp->flags);
|
||||
ip_vs_bind_dest(cp, dest);
|
||||
return dest;
|
||||
} else
|
||||
|
@ -619,15 +619,21 @@ struct ip_vs_dest *ip_vs_find_dest(struct net *net, int af,
|
||||
const union nf_inet_addr *daddr,
|
||||
__be16 dport,
|
||||
const union nf_inet_addr *vaddr,
|
||||
__be16 vport, __u16 protocol, __u32 fwmark)
|
||||
__be16 vport, __u16 protocol, __u32 fwmark,
|
||||
__u32 flags)
|
||||
{
|
||||
struct ip_vs_dest *dest;
|
||||
struct ip_vs_service *svc;
|
||||
__be16 port = dport;
|
||||
|
||||
svc = ip_vs_service_get(net, af, fwmark, protocol, vaddr, vport);
|
||||
if (!svc)
|
||||
return NULL;
|
||||
dest = ip_vs_lookup_dest(svc, daddr, dport);
|
||||
if (fwmark && (flags & IP_VS_CONN_F_FWD_MASK) != IP_VS_CONN_F_MASQ)
|
||||
port = 0;
|
||||
dest = ip_vs_lookup_dest(svc, daddr, port);
|
||||
if (!dest)
|
||||
dest = ip_vs_lookup_dest(svc, daddr, port ^ dport);
|
||||
if (dest)
|
||||
atomic_inc(&dest->refcnt);
|
||||
ip_vs_service_put(svc);
|
||||
|
@ -740,7 +740,7 @@ static void ip_vs_proc_conn(struct net *net, struct ip_vs_conn_param *param,
|
||||
* but still handled.
|
||||
*/
|
||||
dest = ip_vs_find_dest(net, type, daddr, dport, param->vaddr,
|
||||
param->vport, protocol, fwmark);
|
||||
param->vport, protocol, fwmark, flags);
|
||||
|
||||
/* Set the approprite ativity flag */
|
||||
if (protocol == IPPROTO_TCP) {
|
||||
|
@ -135,7 +135,7 @@ nla_put_failure:
|
||||
static inline int
|
||||
ctnetlink_dump_timeout(struct sk_buff *skb, const struct nf_conn *ct)
|
||||
{
|
||||
long timeout = (ct->timeout.expires - jiffies) / HZ;
|
||||
long timeout = ((long)ct->timeout.expires - (long)jiffies) / HZ;
|
||||
|
||||
if (timeout < 0)
|
||||
timeout = 0;
|
||||
@ -1641,7 +1641,7 @@ ctnetlink_exp_dump_expect(struct sk_buff *skb,
|
||||
const struct nf_conntrack_expect *exp)
|
||||
{
|
||||
struct nf_conn *master = exp->master;
|
||||
long timeout = (exp->timeout.expires - jiffies) / HZ;
|
||||
long timeout = ((long)exp->timeout.expires - (long)jiffies) / HZ;
|
||||
struct nf_conn_help *help;
|
||||
|
||||
if (timeout < 0)
|
||||
|
Loading…
Reference in New Issue
Block a user