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

All three conflicts were cases of simple overlapping
changes.

Signed-off-by: David S. Miller <[email protected]>
This commit is contained in:
David S. Miller 2016-08-30 00:54:02 -04:00
commit 6abdd5f593
468 changed files with 5386 additions and 2127 deletions

View file

@ -53,7 +53,7 @@ int ife_tlv_meta_encode(void *skbdata, u16 attrtype, u16 dlen, const void *dval)
u32 *tlv = (u32 *)(skbdata);
u16 totlen = nla_total_size(dlen); /*alignment + hdr */
char *dptr = (char *)tlv + NLA_HDRLEN;
u32 htlv = attrtype << 16 | totlen;
u32 htlv = attrtype << 16 | dlen;
*tlv = htonl(htlv);
memset(dptr, 0, totlen - NLA_HDRLEN);
@ -135,7 +135,7 @@ EXPORT_SYMBOL_GPL(ife_release_meta_gen);
int ife_validate_meta_u32(void *val, int len)
{
if (len == 4)
if (len == sizeof(u32))
return 0;
return -EINVAL;
@ -144,8 +144,8 @@ EXPORT_SYMBOL_GPL(ife_validate_meta_u32);
int ife_validate_meta_u16(void *val, int len)
{
/* length will include padding */
if (len == NLA_ALIGN(2))
/* length will not include padding */
if (len == sizeof(u16))
return 0;
return -EINVAL;
@ -652,12 +652,14 @@ static int tcf_ife_decode(struct sk_buff *skb, const struct tc_action *a,
u8 *tlvdata = (u8 *)tlv;
u16 mtype = tlv->type;
u16 mlen = tlv->len;
u16 alen;
mtype = ntohs(mtype);
mlen = ntohs(mlen);
alen = NLA_ALIGN(mlen);
if (find_decode_metaid(skb, ife, mtype, (mlen - 4),
(void *)(tlvdata + 4))) {
if (find_decode_metaid(skb, ife, mtype, (mlen - NLA_HDRLEN),
(void *)(tlvdata + NLA_HDRLEN))) {
/* abuse overlimits to count when we receive metadata
* but dont have an ops for it
*/
@ -666,8 +668,8 @@ static int tcf_ife_decode(struct sk_buff *skb, const struct tc_action *a,
ife->tcf_qstats.overlimits++;
}
tlvdata += mlen;
ifehdrln -= mlen;
tlvdata += alen;
ifehdrln -= alen;
tlv = (struct meta_tlvhdr *)tlvdata;
}

View file

@ -641,18 +641,19 @@ struct Qdisc *qdisc_create_dflt(struct netdev_queue *dev_queue,
struct Qdisc *sch;
if (!try_module_get(ops->owner))
goto errout;
return NULL;
sch = qdisc_alloc(dev_queue, ops);
if (IS_ERR(sch))
goto errout;
if (IS_ERR(sch)) {
module_put(ops->owner);
return NULL;
}
sch->parent = parentid;
if (!ops->init || ops->init(sch, NULL) == 0)
return sch;
qdisc_destroy(sch);
errout:
return NULL;
}
EXPORT_SYMBOL(qdisc_create_dflt);