* [PATCHv2 net-next 13/15] net: sch: sch_cbq: add extack support
From: Alexander Aring @ 2017-12-14 18:39 UTC (permalink / raw)
To: jhs
Cc: xiyou.wangcong, jiri, davem, netdev, kernel, Alexander Aring,
David Ahern
In-Reply-To: <20171214183905.23066-1-aring@mojatatu.com>
This patch adds extack support for the cbq qdisc implementation by
adding NL_SET_ERR_MSG in validation of user input.
Also it serves to illustrate a use case of how the infrastructure ops
api changes are to be used by individual qdiscs.
Cc: David Ahern <dsahern@gmail.com>
Signed-off-by: Alexander Aring <aring@mojatatu.com>
---
net/sched/sch_cbq.c | 46 ++++++++++++++++++++++++++++++++++------------
1 file changed, 34 insertions(+), 12 deletions(-)
diff --git a/net/sched/sch_cbq.c b/net/sched/sch_cbq.c
index efe5bf15b031..f42025d53cfe 100644
--- a/net/sched/sch_cbq.c
+++ b/net/sched/sch_cbq.c
@@ -1144,15 +1144,19 @@ static int cbq_init(struct Qdisc *sch, struct nlattr *opt,
hrtimer_init(&q->delay_timer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS_PINNED);
q->delay_timer.function = cbq_undelay;
- if (!opt)
+ if (!opt) {
+ NL_SET_ERR_MSG(extack, "CBQ options are required for this operation");
return -EINVAL;
+ }
- err = nla_parse_nested(tb, TCA_CBQ_MAX, opt, cbq_policy, NULL);
+ err = nla_parse_nested(tb, TCA_CBQ_MAX, opt, cbq_policy, extack);
if (err < 0)
return err;
- if (!tb[TCA_CBQ_RTAB] || !tb[TCA_CBQ_RATE])
+ if (!tb[TCA_CBQ_RTAB] || !tb[TCA_CBQ_RATE]) {
+ NL_SET_ERR_MSG(extack, "Rate specification missing or incomplete");
return -EINVAL;
+ }
r = nla_data(tb[TCA_CBQ_RATE]);
@@ -1462,24 +1466,32 @@ cbq_change_class(struct Qdisc *sch, u32 classid, u32 parentid, struct nlattr **t
struct cbq_class *parent;
struct qdisc_rate_table *rtab = NULL;
- if (!opt)
+ if (!opt) {
+ NL_SET_ERR_MSG(extack, "Mandatory qdisc options missing");
return -EINVAL;
+ }
- err = nla_parse_nested(tb, TCA_CBQ_MAX, opt, cbq_policy, NULL);
+ err = nla_parse_nested(tb, TCA_CBQ_MAX, opt, cbq_policy, extack);
if (err < 0)
return err;
- if (tb[TCA_CBQ_OVL_STRATEGY] || tb[TCA_CBQ_POLICE])
+ if (tb[TCA_CBQ_OVL_STRATEGY] || tb[TCA_CBQ_POLICE]) {
+ NL_SET_ERR_MSG(extack, "Neither overlimit strategy nor policing attributes can be used for changing class params");
return -EOPNOTSUPP;
+ }
if (cl) {
/* Check parent */
if (parentid) {
if (cl->tparent &&
- cl->tparent->common.classid != parentid)
+ cl->tparent->common.classid != parentid) {
+ NL_SET_ERR_MSG(extack, "Invalid parent id");
return -EINVAL;
- if (!cl->tparent && parentid != TC_H_ROOT)
+ }
+ if (!cl->tparent && parentid != TC_H_ROOT) {
+ NL_SET_ERR_MSG(extack, "Parent must be root");
return -EINVAL;
+ }
}
if (tb[TCA_CBQ_RATE]) {
@@ -1496,6 +1508,7 @@ cbq_change_class(struct Qdisc *sch, u32 classid, u32 parentid, struct nlattr **t
qdisc_root_sleeping_running(sch),
tca[TCA_RATE]);
if (err) {
+ NL_SET_ERR_MSG(extack, "Failed to replace specified rate estimator");
qdisc_put_rtab(rtab);
return err;
}
@@ -1534,8 +1547,10 @@ cbq_change_class(struct Qdisc *sch, u32 classid, u32 parentid, struct nlattr **t
if (parentid == TC_H_ROOT)
return -EINVAL;
- if (!tb[TCA_CBQ_WRROPT] || !tb[TCA_CBQ_RATE] || !tb[TCA_CBQ_LSSOPT])
+ if (!tb[TCA_CBQ_WRROPT] || !tb[TCA_CBQ_RATE] || !tb[TCA_CBQ_LSSOPT]) {
+ NL_SET_ERR_MSG(extack, "One of the following attributes MUST be specified: WRR, rate or link sharing");
return -EINVAL;
+ }
rtab = qdisc_get_rtab(nla_data(tb[TCA_CBQ_RATE]), tb[TCA_CBQ_RTAB],
extack);
@@ -1545,8 +1560,10 @@ cbq_change_class(struct Qdisc *sch, u32 classid, u32 parentid, struct nlattr **t
if (classid) {
err = -EINVAL;
if (TC_H_MAJ(classid ^ sch->handle) ||
- cbq_class_lookup(q, classid))
+ cbq_class_lookup(q, classid)) {
+ NL_SET_ERR_MSG(extack, "Specified class not found");
goto failure;
+ }
} else {
int i;
classid = TC_H_MAKE(sch->handle, 0x8000);
@@ -1558,8 +1575,10 @@ cbq_change_class(struct Qdisc *sch, u32 classid, u32 parentid, struct nlattr **t
break;
}
err = -ENOSR;
- if (i >= 0x8000)
+ if (i >= 0x8000) {
+ NL_SET_ERR_MSG(extack, "Unable to generate classid");
goto failure;
+ }
classid = classid|q->hgenerator;
}
@@ -1567,8 +1586,10 @@ cbq_change_class(struct Qdisc *sch, u32 classid, u32 parentid, struct nlattr **t
if (parentid) {
parent = cbq_class_lookup(q, parentid);
err = -EINVAL;
- if (!parent)
+ if (!parent) {
+ NL_SET_ERR_MSG(extack, "Failed to find parentid");
goto failure;
+ }
}
err = -ENOBUFS;
@@ -1588,6 +1609,7 @@ cbq_change_class(struct Qdisc *sch, u32 classid, u32 parentid, struct nlattr **t
qdisc_root_sleeping_running(sch),
tca[TCA_RATE]);
if (err) {
+ NL_SET_ERR_MSG(extack, "Couldn't create new estimator");
tcf_block_put(cl->block);
kfree(cl);
goto failure;
--
2.11.0
^ permalink raw reply related
* [PATCHv2 net-next 14/15] net: sch: sch_cbs: add extack support
From: Alexander Aring @ 2017-12-14 18:39 UTC (permalink / raw)
To: jhs
Cc: xiyou.wangcong, jiri, davem, netdev, kernel, Alexander Aring,
David Ahern
In-Reply-To: <20171214183905.23066-1-aring@mojatatu.com>
This patch adds extack support for the cbs qdisc implementation by
adding NL_SET_ERR_MSG in validation of user input.
Also it serves to illustrate a use case of how the infrastructure ops
api changes are to be used by individual qdiscs.
Cc: David Ahern <dsahern@gmail.com>
Signed-off-by: Alexander Aring <aring@mojatatu.com>
---
net/sched/sch_cbs.c | 23 ++++++++++++++++-------
1 file changed, 16 insertions(+), 7 deletions(-)
diff --git a/net/sched/sch_cbs.c b/net/sched/sch_cbs.c
index 8bf6e163d29c..6d09ffd2371e 100644
--- a/net/sched/sch_cbs.c
+++ b/net/sched/sch_cbs.c
@@ -219,14 +219,17 @@ static void cbs_disable_offload(struct net_device *dev,
}
static int cbs_enable_offload(struct net_device *dev, struct cbs_sched_data *q,
- const struct tc_cbs_qopt *opt)
+ const struct tc_cbs_qopt *opt,
+ struct netlink_ext_ack *extack)
{
const struct net_device_ops *ops = dev->netdev_ops;
struct tc_cbs_qopt_offload cbs = { };
int err;
- if (!ops->ndo_setup_tc)
+ if (!ops->ndo_setup_tc) {
+ NL_SET_ERR_MSG(extack, "Specified device does support cbs offload");
return -EOPNOTSUPP;
+ }
cbs.queue = q->queue;
@@ -237,8 +240,10 @@ static int cbs_enable_offload(struct net_device *dev, struct cbs_sched_data *q,
cbs.sendslope = opt->sendslope;
err = ops->ndo_setup_tc(dev, TC_SETUP_QDISC_CBS, &cbs);
- if (err < 0)
+ if (err < 0) {
+ NL_SET_ERR_MSG(extack, "Specified device failed to setup cbs hardware offload");
return err;
+ }
q->enqueue = cbs_enqueue_offload;
q->dequeue = cbs_dequeue_offload;
@@ -255,12 +260,14 @@ static int cbs_change(struct Qdisc *sch, struct nlattr *opt,
struct tc_cbs_qopt *qopt;
int err;
- err = nla_parse_nested(tb, TCA_CBS_MAX, opt, cbs_policy, NULL);
+ err = nla_parse_nested(tb, TCA_CBS_MAX, opt, cbs_policy, extack);
if (err < 0)
return err;
- if (!tb[TCA_CBS_PARMS])
+ if (!tb[TCA_CBS_PARMS]) {
+ NL_SET_ERR_MSG(extack, "Missing CBS parameter which are mandatory");
return -EINVAL;
+ }
qopt = nla_data(tb[TCA_CBS_PARMS]);
@@ -277,7 +284,7 @@ static int cbs_change(struct Qdisc *sch, struct nlattr *opt,
cbs_disable_offload(dev, q);
} else {
- err = cbs_enable_offload(dev, q, qopt);
+ err = cbs_enable_offload(dev, q, qopt, extack);
if (err < 0)
return err;
}
@@ -298,8 +305,10 @@ static int cbs_init(struct Qdisc *sch, struct nlattr *opt,
struct cbs_sched_data *q = qdisc_priv(sch);
struct net_device *dev = qdisc_dev(sch);
- if (!opt)
+ if (!opt) {
+ NL_SET_ERR_MSG(extack, "Missing CBS qdisc options which are mandatory");
return -EINVAL;
+ }
q->queue = sch->dev_queue - netdev_get_tx_queue(dev, 0);
--
2.11.0
^ permalink raw reply related
* [PATCHv2 net-next 15/15] net: sch: sch_drr: add extack support
From: Alexander Aring @ 2017-12-14 18:39 UTC (permalink / raw)
To: jhs
Cc: xiyou.wangcong, jiri, davem, netdev, kernel, Alexander Aring,
David Ahern
In-Reply-To: <20171214183905.23066-1-aring@mojatatu.com>
This patch adds extack support for the drr qdisc implementation by
adding NL_SET_ERR_MSG in validation of user input.
Also it serves to illustrate a use case of how the infrastructure ops
api changes are to be used by individual qdiscs.
Cc: David Ahern <dsahern@gmail.com>
Signed-off-by: Alexander Aring <aring@mojatatu.com>
---
net/sched/sch_drr.c | 19 ++++++++++++++-----
1 file changed, 14 insertions(+), 5 deletions(-)
diff --git a/net/sched/sch_drr.c b/net/sched/sch_drr.c
index bf638ce57c50..e0b0cf8a9939 100644
--- a/net/sched/sch_drr.c
+++ b/net/sched/sch_drr.c
@@ -74,17 +74,21 @@ static int drr_change_class(struct Qdisc *sch, u32 classid, u32 parentid,
u32 quantum;
int err;
- if (!opt)
+ if (!opt) {
+ NL_SET_ERR_MSG(extack, "DRR options are required for this operation");
return -EINVAL;
+ }
- err = nla_parse_nested(tb, TCA_DRR_MAX, opt, drr_policy, NULL);
+ err = nla_parse_nested(tb, TCA_DRR_MAX, opt, drr_policy, extack);
if (err < 0)
return err;
if (tb[TCA_DRR_QUANTUM]) {
quantum = nla_get_u32(tb[TCA_DRR_QUANTUM]);
- if (quantum == 0)
+ if (quantum == 0) {
+ NL_SET_ERR_MSG(extack, "Specified DRR quantum cannot be zero");
return -EINVAL;
+ }
} else
quantum = psched_mtu(qdisc_dev(sch));
@@ -95,8 +99,10 @@ static int drr_change_class(struct Qdisc *sch, u32 classid, u32 parentid,
NULL,
qdisc_root_sleeping_running(sch),
tca[TCA_RATE]);
- if (err)
+ if (err) {
+ NL_SET_ERR_MSG(extack, "Failed to replace estimator");
return err;
+ }
}
sch_tree_lock(sch);
@@ -127,6 +133,7 @@ static int drr_change_class(struct Qdisc *sch, u32 classid, u32 parentid,
qdisc_root_sleeping_running(sch),
tca[TCA_RATE]);
if (err) {
+ NL_SET_ERR_MSG(extack, "Failed to replace estimator");
qdisc_destroy(cl->qdisc);
kfree(cl);
return err;
@@ -179,8 +186,10 @@ static struct tcf_block *drr_tcf_block(struct Qdisc *sch, unsigned long cl,
{
struct drr_sched *q = qdisc_priv(sch);
- if (cl)
+ if (cl) {
+ NL_SET_ERR_MSG(extack, "DRR classid must be zero");
return NULL;
+ }
return q->block;
}
--
2.11.0
^ permalink raw reply related
* Re: [PATCH 1/2] ip_gre: fix potential memory leak in erspan_rcv
From: William Tu @ 2017-12-14 18:47 UTC (permalink / raw)
To: Haishuang Yan
Cc: David S. Miller, Alexey Kuznetsov, Hideaki YOSHIFUJI,
linux-kernel, Linux Kernel Network Developers
In-Reply-To: <1513264507-26199-1-git-send-email-yanhaishuang@cmss.chinamobile.com>
On Thu, Dec 14, 2017 at 7:15 AM, Haishuang Yan
<yanhaishuang@cmss.chinamobile.com> wrote:
> If md is NULL, tun_dst must be freed, otherwise it will cause memory
> leak.
>
> Fixes: 84e54fe0a5ea ("gre: introduce native tunnel support for ERSPAN")
> Cc: William Tu <u9012063@gmail.com>
> Signed-off-by: Haishuang Yan <yanhaishuang@cmss.chinamobile.com>
> ---
> net/ipv4/ip_gre.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/net/ipv4/ip_gre.c b/net/ipv4/ip_gre.c
> index d828821..9253d6f 100644
> --- a/net/ipv4/ip_gre.c
> +++ b/net/ipv4/ip_gre.c
> @@ -304,8 +304,10 @@ static int erspan_rcv(struct sk_buff *skb, struct tnl_ptk_info *tpi,
> return PACKET_REJECT;
>
> md = ip_tunnel_info_opts(&tun_dst->u.tun_info);
> - if (!md)
> + if (!md) {
> + dst_release((struct dst_entry *)tun_dst);
> return PACKET_REJECT;
> + }
I'm not sure about this. Maybe we don't even need to check "if (!md)"
since ip_tun_rx_dst does the memory allocation.
William
^ permalink raw reply
* Re: [patch net-next v3 05/10] net: sched: keep track of offloaded filters and check tc offload feature
From: Jakub Kicinski @ 2017-12-14 18:49 UTC (permalink / raw)
To: Jiri Pirko
Cc: netdev, davem, jhs, xiyou.wangcong, mlxsw, andrew, vivien.didelot,
f.fainelli, michael.chan, ganeshgr, saeedm, matanb, leonro,
idosch, simon.horman, pieter.jansenvanvuuren, john.hurley,
alexander.h.duyck, ogerlitz, john.fastabend, daniel
In-Reply-To: <20171214131045.GD1926@nanopsycho>
On Thu, 14 Dec 2017 14:10:45 +0100, Jiri Pirko wrote:
> >Why? Just a namechange?
> >
> >
> >>IIUC the problem is we don't know whether the driver/callee of the new
> >>port is aware of previous callbacks/filters and we can't replay them.
>
> Well, the problem is a bit different.
> There are 2 scenarios when we need to fail here:
> 1) tc offload feature is turned off, there are some filters offloaded in
> the block. That is what I commented above.
> 2) tc offload feature is turned on, there are some filters offloaded in
> the block but the block is not accounted by the driver. This is
> because of the lack or replay. This is taken care of in the beginning
> of __tcf_block_cb_register function - see below, there is a comment
> there.
Restating in code terms, shouldn't this:
+ tcf_block_offload_cmd(block, dev, ei, TC_BLOCK_BIND);
+ return 0;
return the error like this:
return tcf_block_offload_cmd(block, dev, ei, TC_BLOCK_BIND);
We expect simple drivers to do this:
case TC_BLOCK_BIND:
return tcf_block_cb_register(f->block, mycb,
priv, priv);
Which will return an error for shared offloaded block, just need to
propagate it.
^ permalink raw reply
* Re: [PATCHv2 net-next 03/15] net: sched: sch_api: handle generic qdisc errors
From: Alexander Aring @ 2017-12-14 18:52 UTC (permalink / raw)
To: Jamal Hadi Salim
Cc: Cong Wang, Jiří Pírko, David Miller, netdev,
kernel, Alexander Aring, David Ahern
In-Reply-To: <20171214183905.23066-4-aring@mojatatu.com>
Hi,
On Thu, Dec 14, 2017 at 1:38 PM, Alexander Aring <aring@mojatatu.com> wrote:
> This patch adds extack support for generic qdisc handling. The extack
> will be set deeper to each called function which is not part of netdev
> core api.
>
> Cc: David Ahern <dsahern@gmail.com>
> Signed-off-by: Alexander Aring <aring@mojatatu.com>
> ---
> net/sched/sch_api.c | 159 ++++++++++++++++++++++++++++++++++++----------------
> 1 file changed, 112 insertions(+), 47 deletions(-)
>
> diff --git a/net/sched/sch_api.c b/net/sched/sch_api.c
> index b54917f4ad87..3ff59433781b 100644
> --- a/net/sched/sch_api.c
> +++ b/net/sched/sch_api.c
> @@ -449,7 +449,8 @@ static const struct nla_policy stab_policy[TCA_STAB_MAX + 1] = {
> [TCA_STAB_DATA] = { .type = NLA_BINARY },
> };
>
> -static struct qdisc_size_table *qdisc_get_stab(struct nlattr *opt)
> +static struct qdisc_size_table *qdisc_get_stab(struct nlattr *opt,
> + struct netlink_ext_ack *extack)
> {
...
> sch = qdisc_alloc(dev_queue, ops);
> - if (IS_ERR(sch)) {
> + if (IS_ERR(sch))
> err = PTR_ERR(sch);
> goto err_out2;
> - }
>
sorry, I detect this now. brackets should still be there. Happens in
some rebase foo stuff v1, didn't contained handling of extack in this
function...
I will send v3.
- Alex
^ permalink raw reply
* [PATCH] net/tls: Fix inverted error codes to avoid endless loop
From: r.hering @ 2017-12-14 18:55 UTC (permalink / raw)
To: David S. Miller; +Cc: netdev
sendfile() calls can hang endless with using Kernel TLS if a socket error
occurs.
Socket error codes must be inverted by Kernel TLS before returning because
they are stored with positive sign. If returned non-inverted they are
interpreted as number of bytes sent, causing endless looping of the
splice mechanic behind sendfile().
Signed-off-by: Robert Hering <r.hering@avm.de>
---
diff --git a/include/net/tls.h b/include/net/tls.h
index 936cfc5..9185e53 100644
--- a/include/net/tls.h
+++ b/include/net/tls.h
@@ -170,7 +170,7 @@ static inline bool tls_is_pending_open_record(struct
tls_context *tls_ctx)
static inline void tls_err_abort(struct sock *sk)
{
- sk->sk_err = -EBADMSG;
+ sk->sk_err = EBADMSG;
sk->sk_error_report(sk);
}
diff --git a/net/tls/tls_sw.c b/net/tls/tls_sw.c
index 73d1921..9773571 100644
--- a/net/tls/tls_sw.c
+++ b/net/tls/tls_sw.c
@@ -391,7 +391,7 @@ int tls_sw_sendmsg(struct sock *sk, struct msghdr
*msg, size_t size)
while (msg_data_left(msg)) {
if (sk->sk_err) {
- ret = sk->sk_err;
+ ret = -sk->sk_err;
goto send_end;
}
@@ -544,7 +544,7 @@ int tls_sw_sendpage(struct sock *sk, struct page
*page,
size_t copy, required_size;
if (sk->sk_err) {
- ret = sk->sk_err;
+ ret = -sk->sk_err;
goto sendpage_end;
}
^ permalink raw reply related
* [PATCH net-next] qmi_wwan: set FLAG_SEND_ZLP to avoid network initiated disconnect
From: Bjørn Mork @ 2017-12-14 18:55 UTC (permalink / raw)
To: netdev; +Cc: linux-usb, Bjørn Mork
It has been reported that the dummy byte we add to avoid
ZLPs can be forwarded by the modem to the PGW/GGSN, and that
some operators will drop the connection if this happens.
In theory, QMI devices are based on CDC ECM and should as such
both support ZLPs and silently ignore the dummy byte. The latter
assumption failed. Let's test out the first.
Signed-off-by: Bjørn Mork <bjorn@mork.no>
---
I am a bit worried about the effect of this change on all the
devices I can't test myself. But trying it is the only way we
can ever find out....
drivers/net/usb/qmi_wwan.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/usb/qmi_wwan.c b/drivers/net/usb/qmi_wwan.c
index 304ec6555cd8..1ed00519f29e 100644
--- a/drivers/net/usb/qmi_wwan.c
+++ b/drivers/net/usb/qmi_wwan.c
@@ -826,7 +826,7 @@ static int qmi_wwan_resume(struct usb_interface *intf)
static const struct driver_info qmi_wwan_info = {
.description = "WWAN/QMI device",
- .flags = FLAG_WWAN,
+ .flags = FLAG_WWAN | FLAG_SEND_ZLP,
.bind = qmi_wwan_bind,
.unbind = qmi_wwan_unbind,
.manage_power = qmi_wwan_manage_power,
@@ -835,7 +835,7 @@ static const struct driver_info qmi_wwan_info = {
static const struct driver_info qmi_wwan_info_quirk_dtr = {
.description = "WWAN/QMI device",
- .flags = FLAG_WWAN,
+ .flags = FLAG_WWAN | FLAG_SEND_ZLP,
.bind = qmi_wwan_bind,
.unbind = qmi_wwan_unbind,
.manage_power = qmi_wwan_manage_power,
--
2.11.0
^ permalink raw reply related
* Re: [PATCH] ethtool: fix MFLCN register dump for 82599 and newer
From: John W. Linville @ 2017-12-14 18:45 UTC (permalink / raw)
To: tjbroadroad; +Cc: netdev, Gao Wayne, Wei Net
In-Reply-To: <20171213044350.23576-1-tjbroadroad@163.com>
On Wed, Dec 13, 2017 at 12:43:50PM +0800, tjbroadroad@163.com wrote:
> From: Broadroad <tjbroadroad@163.com>
>
> Use MFLCN for 82599 and X540 HW instead of FCTRL.
>
> Signed-off-by: Zhang Kang <tjbroadroad@163.com>
Might I ask you to use a consistent name<->email mapping? Preferrably
your legal name, but definitely something consistent and identifiable.
John
--
John W. Linville Someday the world will need a hero, and you
linville@tuxdriver.com might be all we have. Be ready.
^ permalink raw reply
* Re: [PATCH 1/2] dt-bindings: add sff,sff binding for SFP support
From: Rob Herring @ 2017-12-14 19:07 UTC (permalink / raw)
To: Russell King
Cc: Andrew Lunn, Florian Fainelli,
devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Mark Rutland,
netdev
In-Reply-To: <E1ePQju-0003ps-QW-eh5Bv4kxaXIk46pC+1QYvQNdhmdF6hFW@public.gmane.org>
On Thu, Dec 14, 2017 at 4:27 AM, Russell King
<rmk+kernel-I+IVW8TIWO2tmTQ+vhA3Yw@public.gmane.org> wrote:
> Add "sff,sff" for SFF module support with SFP. These have a different
> phys_id value, and also have the present and rate select signals omitted
> compared with their socketed counter-parts.
>
> Signed-off-by: Russell King <rmk+kernel-I+IVW8TIWO2tmTQ+vhA3Yw@public.gmane.org>
> ---
> Documentation/devicetree/bindings/net/sff,sfp.txt | 10 +++++++---
> 1 file changed, 7 insertions(+), 3 deletions(-)
Reviewed-by: Rob Herring <robh-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply
* Re: KASAN: use-after-free Read in refcount_inc_not_zero
From: Cong Wang @ 2017-12-14 19:07 UTC (permalink / raw)
To: syzbot
Cc: Andrew Morton, alexander.deucher, broonie, chris, David Miller,
deepa.kernel, Greg KH, gscrivan, LKML, linux-sctp,
luc.vanoostenryck, lucien xin, Ingo Molnar,
Linux Kernel Network Developers, Neil Horman, syzkaller-bugs,
Al Viro, Vladislav Yasevich
In-Reply-To: <089e082bdf1062d5ed056050f926@google.com>
On Thu, Dec 14, 2017 at 10:23 AM, syzbot
<bot+9e3011b5e961675e736b38d6fd82ad12723a3fa3@syzkaller.appspotmail.com>
wrote:
> syzkaller has found reproducer for the following crash on
> 82bcf1def3b5f1251177ad47c44f7e17af039b4b
> git://git.cmpxchg.org/linux-mmots.git/master
> compiler: gcc (GCC) 7.1.1 20170620
> .config is attached
> Raw console output is attached.
> C reproducer is attached
> syzkaller reproducer is attached. See https://goo.gl/kgGztJ
> for information about syzkaller reproducers
>
>
> ==================================================================
> BUG: KASAN: use-after-free in __read_once_size include/linux/compiler.h:183
> [inline]
> BUG: KASAN: use-after-free in atomic_read arch/x86/include/asm/atomic.h:27
> [inline]
> BUG: KASAN: use-after-free in refcount_inc_not_zero+0x16e/0x180
> lib/refcount.c:120
> Read of size 4 at addr ffff8801c51bb200 by task syzkaller711981/3156
>
> CPU: 1 PID: 3156 Comm: syzkaller711981 Not tainted 4.15.0-rc2-mm1+ #39
> Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
> Google 01/01/2011
> Call Trace:
> __dump_stack lib/dump_stack.c:17 [inline]
> dump_stack+0x194/0x257 lib/dump_stack.c:53
> print_address_description+0x73/0x250 mm/kasan/report.c:252
> kasan_report_error mm/kasan/report.c:351 [inline]
> kasan_report+0x25b/0x340 mm/kasan/report.c:409
> __asan_report_load4_noabort+0x14/0x20 mm/kasan/report.c:429
> __read_once_size include/linux/compiler.h:183 [inline]
> atomic_read arch/x86/include/asm/atomic.h:27 [inline]
> refcount_inc_not_zero+0x16e/0x180 lib/refcount.c:120
> refcount_inc+0x15/0x50 lib/refcount.c:153
> get_ipc_ns include/linux/ipc_namespace.h:129 [inline]
> __get_ns_from_inode ipc/mqueue.c:110 [inline]
> get_ns_from_inode ipc/mqueue.c:118 [inline]
> mqueue_evict_inode+0x137/0x9c0 ipc/mqueue.c:402
> evict+0x481/0x920 fs/inode.c:552
> iput_final fs/inode.c:1514 [inline]
> iput+0x7b9/0xaf0 fs/inode.c:1541
> dentry_unlink_inode+0x4b0/0x5e0 fs/dcache.c:376
> __dentry_kill+0x3b7/0x6d0 fs/dcache.c:573
> shrink_dentry_list+0x3c5/0xcf0 fs/dcache.c:1020
> shrink_dcache_parent+0xba/0x230 fs/dcache.c:1454
> do_one_tree+0x15/0x50 fs/dcache.c:1485
> shrink_dcache_for_umount+0xbb/0x290 fs/dcache.c:1502
> generic_shutdown_super+0xcd/0x540 fs/super.c:424
> kill_anon_super fs/super.c:987 [inline]
> kill_litter_super+0x72/0x90 fs/super.c:997
> deactivate_locked_super+0x88/0xd0 fs/super.c:312
> deactivate_super+0x141/0x1b0 fs/super.c:343
> cleanup_mnt+0xb2/0x150 fs/namespace.c:1173
> __cleanup_mnt+0x16/0x20 fs/namespace.c:1180
> task_work_run+0x199/0x270 kernel/task_work.c:113
> exit_task_work include/linux/task_work.h:22 [inline]
Seems we can simply fix it by swapping exit_task_work()
with exit_task_namespaces() in do_exit()...
> do_exit+0x9bb/0x1ae0 kernel/exit.c:869
> do_group_exit+0x149/0x400 kernel/exit.c:972
> SYSC_exit_group kernel/exit.c:983 [inline]
> SyS_exit_group+0x1d/0x20 kernel/exit.c:981
> entry_SYSCALL_64_fastpath+0x1f/0x96
> RIP: 0033:0x440729
> RSP: 002b:00007ffd090ef228 EFLAGS: 00000206 ORIG_RAX: 00000000000000e7
> RAX: ffffffffffffffda RBX: 0030656c69662f2e RCX: 0000000000440729
> RDX: 0000000000440729 RSI: 0000000000000000 RDI: 0000000000000001
> RBP: 00000000006cb018 R08: 0000000000000000 R09: 00000000004002c8
> R10: 0000000000000000 R11: 0000000000000206 R12: 0000000000401bf0
> R13: 0000000000401c80 R14: 0000000000000000 R15: 0000000000000000
>
> Allocated by task 3156:
> save_stack+0x43/0xd0 mm/kasan/kasan.c:447
> set_track mm/kasan/kasan.c:459 [inline]
> kasan_kmalloc+0xad/0xe0 mm/kasan/kasan.c:551
> kmem_cache_alloc_trace+0x136/0x750 mm/slab.c:3614
> kmalloc include/linux/slab.h:516 [inline]
> create_ipc_ns ipc/namespace.c:45 [inline]
> copy_ipcs+0x1b3/0x520 ipc/namespace.c:96
> create_new_namespaces+0x278/0x880 kernel/nsproxy.c:87
> unshare_nsproxy_namespaces+0xae/0x1e0 kernel/nsproxy.c:206
> SYSC_unshare kernel/fork.c:2421 [inline]
> SyS_unshare+0x653/0xfa0 kernel/fork.c:2371
> entry_SYSCALL_64_fastpath+0x1f/0x96
>
> Freed by task 3156:
> save_stack+0x43/0xd0 mm/kasan/kasan.c:447
> set_track mm/kasan/kasan.c:459 [inline]
> kasan_slab_free+0x71/0xc0 mm/kasan/kasan.c:524
> __cache_free mm/slab.c:3492 [inline]
> kfree+0xca/0x250 mm/slab.c:3807
> free_ipc_ns ipc/namespace.c:139 [inline]
> put_ipc_ns+0x112/0x150 ipc/namespace.c:164
> free_nsproxy+0xc0/0x1f0 kernel/nsproxy.c:180
> switch_task_namespaces+0x9d/0xc0 kernel/nsproxy.c:229
> exit_task_namespaces+0x17/0x20 kernel/nsproxy.c:234
> do_exit+0x9b6/0x1ae0 kernel/exit.c:868
> do_group_exit+0x149/0x400 kernel/exit.c:972
> SYSC_exit_group kernel/exit.c:983 [inline]
> SyS_exit_group+0x1d/0x20 kernel/exit.c:981
> entry_SYSCALL_64_fastpath+0x1f/0x96
>
> The buggy address belongs to the object at ffff8801c51bb200
> which belongs to the cache kmalloc-2048 of size 2048
> The buggy address is located 0 bytes inside of
> 2048-byte region [ffff8801c51bb200, ffff8801c51bba00)
> The buggy address belongs to the page:
> page:000000007764ba6d count:1 mapcount:0 mapping:000000002c36623f index:0x0
> compound_mapcount: 0
> flags: 0x2fffc0000008100(slab|head)
> raw: 02fffc0000008100 ffff8801c51ba100 0000000000000000 0000000100000003
> raw: ffffea000715d320 ffff8801dac01950 ffff8801dac00c40 0000000000000000
> page dumped because: kasan: bad access detected
>
> Memory state around the buggy address:
> ffff8801c51bb100: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
> ffff8801c51bb180: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
>>
>> ffff8801c51bb200: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
>
> ^
> ffff8801c51bb280: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
> ffff8801c51bb300: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
> ==================================================================
>
^ permalink raw reply
* Re: [PATCH 1/2] dt-bindings: add sff,sff binding for SFP support
From: Florian Fainelli @ 2017-12-14 19:11 UTC (permalink / raw)
To: Russell King, Andrew Lunn, Rob Herring
Cc: devicetree-u79uwXL29TY76Z2rM5mHXA, Mark Rutland,
netdev-u79uwXL29TY76Z2rM5mHXA
In-Reply-To: <E1ePQju-0003ps-QW-eh5Bv4kxaXIk46pC+1QYvQNdhmdF6hFW@public.gmane.org>
On 12/14/2017 02:27 AM, Russell King wrote:
> Add "sff,sff" for SFF module support with SFP. These have a different
> phys_id value, and also have the present and rate select signals omitted
> compared with their socketed counter-parts.
>
> Signed-off-by: Russell King <rmk+kernel-I+IVW8TIWO2tmTQ+vhA3Yw@public.gmane.org>
Reviewed-by: Florian Fainelli <f.fainelli-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
--
Florian
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply
* Re: [PATCH v3 1/3] Revert "ethtool: Add DMA Coalescing support"
From: John W. Linville @ 2017-12-14 19:03 UTC (permalink / raw)
To: Scott Branden
Cc: BCM Kernel Feedback, Steve Lin, Michael Chan, netdev,
Paul Greenwalt, Stephen Hemminger
In-Reply-To: <1513110003-10543-2-git-send-email-scott.branden@broadcom.com>
Applied.
On Tue, Dec 12, 2017 at 12:20:01PM -0800, Scott Branden wrote:
> This reverts commit 5dd7bfbc5079cb375876e4e76191263fc28ae1a6.
>
> As Stephen Hemminger mentioned
> there is an ABI compatibility issue with this patch:
>
> https://patchwork.ozlabs.org/patch/806049/#1757846
> Signed-off-by: Scott Branden <scott.branden@broadcom.com>
--
John W. Linville Someday the world will need a hero, and you
linville@tuxdriver.com might be all we have. Be ready.
^ permalink raw reply
* Re: [PATCH 2/2] sfp: add sff module support
From: Florian Fainelli @ 2017-12-14 19:16 UTC (permalink / raw)
To: Russell King, Andrew Lunn, Rob Herring; +Cc: devicetree, Mark Rutland, netdev
In-Reply-To: <E1ePQjz-0003q6-Tf@rmk-PC.armlinux.org.uk>
On 12/14/2017 02:27 AM, Russell King wrote:
> Add support for SFF modules, which are soldered down SFP modules.
> These have a different phys_id value, and also have the present and
> rate select signals omitted compared with their socketed counter-parts.
>
> Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk>
Reviewed-by: Florian Fainelli <f.fainelli@gmail.com>
Thanks!
--
Florian
^ permalink raw reply
* Re: [patch net-next v3 05/10] net: sched: keep track of offloaded filters and check tc offload feature
From: Jakub Kicinski @ 2017-12-14 19:22 UTC (permalink / raw)
To: Jiri Pirko
Cc: netdev, davem, jhs, xiyou.wangcong, mlxsw, andrew, vivien.didelot,
f.fainelli, michael.chan, ganeshgr, saeedm, matanb, leonro,
idosch, simon.horman, pieter.jansenvanvuuren, john.hurley,
alexander.h.duyck, ogerlitz, john.fastabend, daniel
In-Reply-To: <20171213151038.29665-6-jiri@resnulli.us>
On Wed, 13 Dec 2017 16:10:33 +0100, Jiri Pirko wrote:
> diff --git a/net/sched/cls_bpf.c b/net/sched/cls_bpf.c
> index 69d7e9a..9cf61e7 100644
> --- a/net/sched/cls_bpf.c
> +++ b/net/sched/cls_bpf.c
> @@ -170,8 +170,10 @@ static int cls_bpf_offload_cmd(struct tcf_proto *tp, struct cls_bpf_prog *prog,
> cls_bpf_offload_cmd(tp, prog, TC_CLSBPF_DESTROY);
> return err;
> } else if (err > 0) {
> - prog->gen_flags |= TCA_CLS_FLAGS_IN_HW;
> + tcf_block_offload_inc(block, &prog->gen_flags);
> }
> + } else {
> + tcf_block_offload_dec(block, &prog->gen_flags);
> }
>
> if (addorrep && skip_sw && !(prog->gen_flags & TCA_CLS_FLAGS_IN_HW))
The in_hw reporting also seems broken.
tools/testing/selftests/bpf/test_offload.py catches this.
^ permalink raw reply
* [PATCH iproute2 1/1] ss: add missing path MTU parameter
From: Roman Mashak @ 2017-12-14 19:23 UTC (permalink / raw)
To: stephen; +Cc: netdev, jhs, Roman Mashak
Signed-off-by: Roman Mashak <mrv@mojatatu.com>
---
man/man8/ss.8 | 4 ++++
misc/ss.c | 4 ++++
2 files changed, 8 insertions(+)
diff --git a/man/man8/ss.8 b/man/man8/ss.8
index 6d06383..0d52673 100644
--- a/man/man8/ss.8
+++ b/man/man8/ss.8
@@ -184,6 +184,10 @@ max segment size
congestion window size
.P
.TP
+.B pmtu:<pmtu>
+path MTU value
+.P
+.TP
.B ssthresh:<ssthresh>
tcp congestion window slow start threshold
.P
diff --git a/misc/ss.c b/misc/ss.c
index da52d5e..b93f6cc 100644
--- a/misc/ss.c
+++ b/misc/ss.c
@@ -727,6 +727,7 @@ struct tcpstat {
int mss;
int rcv_mss;
int advmss;
+ unsigned int pmtu;
unsigned int cwnd;
unsigned int lastsnd;
unsigned int lastrcv;
@@ -1967,6 +1968,8 @@ static void tcp_stats_print(struct tcpstat *s)
printf(" cwnd:%u", s->cwnd);
if (s->ssthresh)
printf(" ssthresh:%d", s->ssthresh);
+ if (s->pmtu)
+ printf(" pmtu:%u", s->pmtu);
if (s->bytes_acked)
printf(" bytes_acked:%llu", s->bytes_acked);
@@ -2308,6 +2311,7 @@ static void tcp_show_info(const struct nlmsghdr *nlh, struct inet_diag_msg *r,
s.reordering = info->tcpi_reordering;
s.rcv_ssthresh = info->tcpi_rcv_ssthresh;
s.cwnd = info->tcpi_snd_cwnd;
+ s.pmtu = info->tcpi_pmtu;
if (info->tcpi_snd_ssthresh < 0xFFFF)
s.ssthresh = info->tcpi_snd_ssthresh;
--
2.7.4
^ permalink raw reply related
* Re: [PATCH v3 2/3] ethtool-copy.h: sync with net-next
From: John W. Linville @ 2017-12-14 19:23 UTC (permalink / raw)
To: Scott Branden
Cc: BCM Kernel Feedback, Steve Lin, Michael Chan, netdev,
Paul Greenwalt, Stephen Hemminger
In-Reply-To: <1513110003-10543-3-git-send-email-scott.branden@broadcom.com>
Applied.
On Tue, Dec 12, 2017 at 12:20:02PM -0800, Scott Branden wrote:
> This covers kernel changes up to:
>
> commit 40e44a1e669d078946f46853808a60d29e6f0885
> Author: Scott Branden <scott.branden@broadcom.com>
> Date: Thu Nov 30 11:35:59 2017 -0800
>
> net: ethtool: add support for reset of AP inside NIC interface.
>
> Add ETH_RESET_AP to reset the application processor(s) inside the NIC
> interface.
>
> Current ETH_RESET_MGMT supports a management processor inside this NIC.
> This is typically used for remote NIC management purposes.
>
> Application processors exist inside some SmartNICs to run various
> applications inside the NIC processor - be it a simple algorithm without
> an OS to as complex as hosting multiple VMs.
>
> Signed-off-by: Scott Branden <scott.branden@broadcom.com>
> Reviewed-by: Andrew Lunn <andrew@lunn.ch>
> Signed-off-by: David S. Miller <davem@davemloft.net>
>
> Signed-off-by: Scott Branden <scott.branden@broadcom.com>
--
John W. Linville Someday the world will need a hero, and you
linville@tuxdriver.com might be all we have. Be ready.
^ permalink raw reply
* Re: [PATCH v3 3/3] ethtool: Add ETHTOOL_RESET support via --reset command
From: John W. Linville @ 2017-12-14 19:23 UTC (permalink / raw)
To: Scott Branden
Cc: BCM Kernel Feedback, Steve Lin, Michael Chan, netdev,
Paul Greenwalt, Stephen Hemminger
In-Reply-To: <1513110003-10543-4-git-send-email-scott.branden@broadcom.com>
Applied.
On Tue, Dec 12, 2017 at 12:20:03PM -0800, Scott Branden wrote:
> Add ETHTOOL_RESET support via --reset command.
>
> ie. ethtool --reset DEVNAME <flagname(s)>
>
> flagnames currently match the ETH_RESET_xxx names:
> mgmt,irq,dma,filter,offload,mac,phy,ram,ap,dedicated,all
>
> Add -shared onto end of components to specified shared version.
>
> Alternatively, you can specific component bitfield directly using
> ethtool --reset DEVNAME flags %x
>
> Signed-off-by: Scott Branden <scott.branden@broadcom.com>
--
John W. Linville Someday the world will need a hero, and you
linville@tuxdriver.com might be all we have. Be ready.
^ permalink raw reply
* Re: [PATCH iproute2 1/1] ss: add missing path MTU parameter
From: Neal Cardwell @ 2017-12-14 19:32 UTC (permalink / raw)
To: Roman Mashak; +Cc: Stephen Hemminger, Netdev, Jamal Hadi Salim
In-Reply-To: <1513279438-15045-1-git-send-email-mrv@mojatatu.com>
On Thu, Dec 14, 2017 at 2:23 PM, Roman Mashak <mrv@mojatatu.com> wrote:
>
> Signed-off-by: Roman Mashak <mrv@mojatatu.com>
> ---
...
> @@ -1967,6 +1968,8 @@ static void tcp_stats_print(struct tcpstat *s)
> printf(" cwnd:%u", s->cwnd);
> if (s->ssthresh)
> printf(" ssthresh:%d", s->ssthresh);
> + if (s->pmtu)
> + printf(" pmtu:%u", s->pmtu);
Would it be possible to print the pmtu immediately after the mss? IMHO
having related parameters next to each other this way would make this
easier to parse for humans.
Thanks for adding this!
cheers,
neal
^ permalink raw reply
* Re: [PATCHv2 net-next 02/15] lib: nlattr: set extack msg if validate_nla fails
From: David Ahern @ 2017-12-14 19:45 UTC (permalink / raw)
To: Alexander Aring, jhs; +Cc: xiyou.wangcong, jiri, davem, netdev, kernel
In-Reply-To: <20171214183905.23066-3-aring@mojatatu.com>
On 12/14/17 11:38 AM, Alexander Aring wrote:
> This patch sets a generic netlink error message if the validation of the
> netlink attribute failed. It avoids several different settings of
> netlink messages by handle nla_parse_nested on error case.
>
> Suggested-by: David Ahern <dsahern@gmail.com>
> Signed-off-by: Alexander Aring <aring@mojatatu.com>
> ---
> lib/nlattr.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/lib/nlattr.c b/lib/nlattr.c
> index dfa55c873c13..a2a9506b2fb7 100644
> --- a/lib/nlattr.c
> +++ b/lib/nlattr.c
> @@ -253,8 +253,10 @@ int nla_parse(struct nlattr **tb, int maxtype, const struct nlattr *head,
> if (policy) {
> err = validate_nla(nla, maxtype, policy);
> if (err < 0) {
> - if (extack)
> + if (extack) {
> + NL_SET_ERR_MSG(extack, "Failed to validate netlink attribute");
> extack->bad_attr = nla;
> + }
> goto errout;
> }
> }
>
I have a similar patch:
if (policy) {
err = validate_nla(nla, maxtype, policy);
if (err < 0) {
- if (extack)
- extack->bad_attr = nla;
+ NL_SET_ERR_MSG_ATTR(extack, nla,
+ "Attribute
failed policy validation");
goto errout;
}
}
Wording wise it notes policy validation failed but more importantly it
combines setting the error message and bad_attr into 1 macro.
^ permalink raw reply
* Re: [PATCH iproute2 1/1] ss: add missing path MTU parameter
From: Roman Mashak @ 2017-12-14 19:51 UTC (permalink / raw)
To: Neal Cardwell; +Cc: Stephen Hemminger, Netdev, Jamal Hadi Salim
In-Reply-To: <CADVnQynM6HX-q-ZA=XiGEcOjU6U5LyVxTqkcE87Vbfoo2mrf-g@mail.gmail.com>
Neal Cardwell <ncardwell@google.com> writes:
> On Thu, Dec 14, 2017 at 2:23 PM, Roman Mashak <mrv@mojatatu.com> wrote:
>>
>> Signed-off-by: Roman Mashak <mrv@mojatatu.com>
>> ---
> ...
>> @@ -1967,6 +1968,8 @@ static void tcp_stats_print(struct tcpstat *s)
>> printf(" cwnd:%u", s->cwnd);
>> if (s->ssthresh)
>> printf(" ssthresh:%d", s->ssthresh);
>> + if (s->pmtu)
>> + printf(" pmtu:%u", s->pmtu);
>
> Would it be possible to print the pmtu immediately after the mss? IMHO
> having related parameters next to each other this way would make this
> easier to parse for humans.
>
> Thanks for adding this!
Sure, I will send v2 with change.
^ permalink raw reply
* Re: [PATCHv2 net-next 03/15] net: sched: sch_api: handle generic qdisc errors
From: David Ahern @ 2017-12-14 19:56 UTC (permalink / raw)
To: Alexander Aring, jhs
Cc: xiyou.wangcong, jiri, davem, netdev, kernel, David Ahern
In-Reply-To: <20171214183905.23066-4-aring@mojatatu.com>
On 12/14/17 11:38 AM, Alexander Aring wrote:
> @@ -912,8 +920,10 @@ static int qdisc_graft(struct net_device *dev, struct Qdisc *parent,
> (new && new->flags & TCQ_F_INGRESS)) {
> num_q = 1;
> ingress = 1;
> - if (!dev_ingress_queue(dev))
> + if (!dev_ingress_queue(dev)) {
> + NL_SET_ERR_MSG(extack, "Cannot find ingress queue for specified device");
"Device does not have an ingress queue" ?
> @@ -1241,8 +1262,10 @@ static int tc_get_qdisc(struct sk_buff *skb, struct nlmsghdr *n,
> int err;
>
> if ((n->nlmsg_type != RTM_GETQDISC) &&
> - !netlink_ns_capable(skb, net->user_ns, CAP_NET_ADMIN))
> + !netlink_ns_capable(skb, net->user_ns, CAP_NET_ADMIN)) {
> + NL_SET_ERR_MSG(extack, "Net admin permission required for this operation");
EPERM does not need a string.
> @@ -1309,8 +1346,10 @@ static int tc_modify_qdisc(struct sk_buff *skb, struct nlmsghdr *n,
> struct Qdisc *q, *p;
> int err;
>
> - if (!netlink_ns_capable(skb, net->user_ns, CAP_NET_ADMIN))
> + if (!netlink_ns_capable(skb, net->user_ns, CAP_NET_ADMIN)) {
> + NL_SET_ERR_MSG(extack, "Net admin permission required for this operation");
Ditto here. Please check other patches as well.
> return -EPERM;
> + }
>
> replay:
> /* Reinit, just in case something touches this. */
^ permalink raw reply
* Re: [PATCHv2 net-next 0/8] sctp: Implement Stream Interleave: Interaction with Other SCTP Extensions
From: Neil Horman @ 2017-12-14 19:58 UTC (permalink / raw)
To: Xin Long; +Cc: network dev, linux-sctp, Marcelo Ricardo Leitner, davem
In-Reply-To: <cover.1513269224.git.lucien.xin@gmail.com>
On Fri, Dec 15, 2017 at 12:41:24AM +0800, Xin Long wrote:
> Stream Interleave would be implemented in two Parts:
>
> 1. The I-DATA Chunk Supporting User Message Interleaving
> 2. Interaction with Other SCTP Extensions
>
> Overview in section 2.3 of RFC8260 for Part 2:
>
> The usage of the I-DATA chunk might interfere with other SCTP
> extensions. Future SCTP extensions MUST describe if and how they
> interfere with the usage of I-DATA chunks. For the SCTP extensions
> already defined when this document was published, the details are
> given in the following subsections.
>
> As the 2nd part of Stream Interleave Implementation, this patchset mostly
> adds the support for SCTP Partial Reliability Extension with I-FORWARD-TSN
> chunk. Then adjusts stream scheduler and stream reconfig to make them work
> properly with I-DATA chunks.
>
> In the last patch, all stream interleave codes will be enabled by adding
> sysctl to allow users to use this feature.
>
> v1 -> v2:
> - removed the intl_enable check from sctp_chunk_event_lookup, as Marcelo's
> suggestion.
> - fixed a typo in changelog.
>
> Xin Long (8):
> sctp: add basic structures and make chunk function for ifwdtsn
> sctp: implement generate_ftsn for sctp_stream_interleave
> sctp: implement validate_ftsn for sctp_stream_interleave
> sctp: implement report_ftsn for sctp_stream_interleave
> sctp: implement handle_ftsn for sctp_stream_interleave
> sctp: add stream interleave support in stream scheduler
> sctp: update mid instead of ssn when doing stream and asoc reset
> sctp: support sysctl to allow users to use stream interleave
>
> include/linux/sctp.h | 17 +++
> include/net/sctp/sm.h | 3 +
> include/net/sctp/stream_interleave.h | 7 ++
> include/net/sctp/structs.h | 12 ++
> net/sctp/outqueue.c | 12 +-
> net/sctp/sm_make_chunk.c | 24 ++++
> net/sctp/sm_sideeffect.c | 24 +---
> net/sctp/sm_statefuns.c | 24 ++--
> net/sctp/sm_statetable.c | 4 +-
> net/sctp/stream.c | 46 +++++---
> net/sctp/stream_interleave.c | 216 +++++++++++++++++++++++++++++++++++
> net/sctp/stream_sched.c | 3 +-
> net/sctp/sysctl.c | 7 ++
> 13 files changed, 334 insertions(+), 65 deletions(-)
>
> --
> 2.1.0
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-sctp" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
>
For the series
Acked-by: Neil Horman <nhorman@tuxdriver.com>
^ permalink raw reply
* [PATCH v2 iproute2 1/1] ss: add missing path MTU parameter
From: Roman Mashak @ 2017-12-14 19:59 UTC (permalink / raw)
To: stephen; +Cc: netdev, jhs, Roman Mashak
v2:
Print the path MTU immediately after the MSS, as it is easier to parse
for humans (suggested by Neal Cardwell).
Signed-off-by: Roman Mashak <mrv@mojatatu.com>
---
man/man8/ss.8 | 4 ++++
misc/ss.c | 4 ++++
2 files changed, 8 insertions(+)
diff --git a/man/man8/ss.8 b/man/man8/ss.8
index 6d06383..0d52673 100644
--- a/man/man8/ss.8
+++ b/man/man8/ss.8
@@ -184,6 +184,10 @@ max segment size
congestion window size
.P
.TP
+.B pmtu:<pmtu>
+path MTU value
+.P
+.TP
.B ssthresh:<ssthresh>
tcp congestion window slow start threshold
.P
diff --git a/misc/ss.c b/misc/ss.c
index da52d5e..b43bd0b 100644
--- a/misc/ss.c
+++ b/misc/ss.c
@@ -727,6 +727,7 @@ struct tcpstat {
int mss;
int rcv_mss;
int advmss;
+ unsigned int pmtu;
unsigned int cwnd;
unsigned int lastsnd;
unsigned int lastrcv;
@@ -1959,6 +1960,8 @@ static void tcp_stats_print(struct tcpstat *s)
if (s->mss)
printf(" mss:%d", s->mss);
+ if (s->pmtu)
+ printf(" pmtu:%u", s->pmtu);
if (s->rcv_mss)
printf(" rcvmss:%d", s->rcv_mss);
if (s->advmss)
@@ -2308,6 +2311,7 @@ static void tcp_show_info(const struct nlmsghdr *nlh, struct inet_diag_msg *r,
s.reordering = info->tcpi_reordering;
s.rcv_ssthresh = info->tcpi_rcv_ssthresh;
s.cwnd = info->tcpi_snd_cwnd;
+ s.pmtu = info->tcpi_pmtu;
if (info->tcpi_snd_ssthresh < 0xFFFF)
s.ssthresh = info->tcpi_snd_ssthresh;
--
2.7.4
^ permalink raw reply related
* Re: [PATCH net-next v4 0/5] Introduce NETIF_F_GRO_HW
From: Or Gerlitz @ 2017-12-14 20:01 UTC (permalink / raw)
To: Michael Chan
Cc: David Miller, Linux Netdev List, Andy Gospodarek, Gal Pressman
In-Reply-To: <CACKFLi=JhTRD8jK+HqDcTxJHcYzKoGXNfUXs9DKiFQULDUkKYg@mail.gmail.com>
On Thu, Dec 14, 2017 at 8:36 PM, Michael Chan <michael.chan@broadcom.com> wrote:
> On Thu, Dec 14, 2017 at 8:34 AM, Or Gerlitz <gerlitz.or@gmail.com> wrote:
>> On Mon, Dec 11, 2017 at 1:41 PM, Michael Chan <michael.chan@broadcom.com> wrote:
>>> Introduce NETIF_F_GRO_HW feature flag and convert drivers that support
>>> hardware GRO to use the new flag.
>>
>> Hi Michael,
>>
>> Could you add more performance motivations/results? looking on your
>> netconf slides [1]
>> I see (much) better CPU utilization (slide 5) -- do you have more
>> numbers to share?
>
> The motivations are the same as LRO: to achieve higher RX throughput
> and lower CPU utilization.
makes sense, what is the +/- %% improvement in RX throughput you see?
> You can think of it as an improved version of LRO that is stricter and
> provides more information to construct the GRO frame so that it is
> reversible.
sounds good to me
^ permalink raw reply
page: next (older) | prev (newer) | latest
- recent:[subjects (threaded)|topics (new)|topics (active)]
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox