* Re: [PATCH v4 1/2] net: 3com: typhoon: typhoon_init_one: fix incorrect return values
From: David Miller @ 2016-12-30 20:27 UTC (permalink / raw)
To: thomas.preisner+linux
Cc: dave, netdev, linux-kernel, linux-kernel, milan.stephan+linux,
sergei.shtylyov
In-Reply-To: <1483065474-11512-2-git-send-email-thomas.preisner+linux@fau.de>
From: Thomas Preisner <thomas.preisner+linux@fau.de>
Date: Fri, 30 Dec 2016 03:37:53 +0100
> In a few cases the err-variable is not set to a negative error code if a
> function call in typhoon_init_one() fails and thus 0 is returned
> instead.
> It may be better to set err to the appropriate negative error
> code before returning.
>
> Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=188841
>
> Reported-by: Pan Bian <bianpan2016@163.com>
> Signed-off-by: Thomas Preisner <thomas.preisner+linux@fau.de>
> Signed-off-by: Milan Stephan <milan.stephan+linux@fau.de>
Applied to net-next.
^ permalink raw reply
* Re: [PATCH net-next] net: Allow IP_MULTICAST_IF to set index to L3 slave
From: David Miller @ 2016-12-30 20:25 UTC (permalink / raw)
To: dsa; +Cc: netdev, darwin.dingel, Mark.Tomlinson
In-Reply-To: <1483054777-11306-1-git-send-email-dsa@cumulusnetworks.com>
From: David Ahern <dsa@cumulusnetworks.com>
Date: Thu, 29 Dec 2016 15:39:37 -0800
> IP_MULTICAST_IF fails if sk_bound_dev_if is already set and the new index
> does not match it. e.g.,
>
> ntpd[15381]: setsockopt IP_MULTICAST_IF 192.168.1.23 fails: Invalid argument
>
> Relax the check in setsockopt to allow setting mc_index to an L3 slave if
> sk_bound_dev_if points to an L3 master.
>
> Make a similar change for IPv6. In this case change the device lookup to
> take the rcu_read_lock avoiding a refcnt. The rcu lock is also needed for
> the lookup of a potential L3 master device.
>
> This really only silences a setsockopt failure since uses of mc_index are
> secondary to sk_bound_dev_if if it is set. In both cases, if either index
> is an L3 slave or master, lookups are directed to the same FIB table so
> relaxing the check at setsockopt time causes no harm.
>
> Patch is based on a suggested change by Darwin for a problem noted in
> their code base.
>
> Suggested-by: Darwin Dingel <darwin.dingel@alliedtelesis.co.nz>
> Signed-off-by: David Ahern <dsa@cumulusnetworks.com>
This seems ok, applied, thanks.
^ permalink raw reply
* Re: [PATCH v1 0/2] bpf: add longest prefix match map
From: David Miller @ 2016-12-30 20:25 UTC (permalink / raw)
To: daniel; +Cc: ast, dh.herrmann, daniel, netdev
In-Reply-To: <20161229172855.14910-1-daniel@zonque.org>
From: Daniel Mack <daniel@zonque.org>
Date: Thu, 29 Dec 2016 18:28:53 +0100
> This patch set adds a longest prefix match algorithm that can be used
> to match IP addresses to a stored set of ranges. It is exposed as a
> bpf map type.
>
> Internally, data is stored in an unbalanced tree of nodes that has a
> maximum height of n, where n is the prefixlen the trie was created
> with.
>
> Not that this has nothing to do with fib or fib6 and is in no way meant
> to replace or share code with it. It's rather a much simpler
> implementation that is specifically written with bpf maps in mind.
>
> Patch 1/2 adds the implementation, and 2/2 an extensive test suite.
>
> Feedback is much appreciated.
I'll give Alexei and Daniel time to provide feedback on this series.
^ permalink raw reply
* Re: [PATCH] ipv4: make tcp_notsent_lowat sysctl knob behave as true unsigned int
From: David Miller @ 2016-12-30 20:23 UTC (permalink / raw)
To: ptikhomirov
Cc: edumazet, kuznet, jmorris, yoshfuji, kaber, netdev, linux-kernel,
khorenko
In-Reply-To: <20161229143507.4934-1-ptikhomirov@virtuozzo.com>
From: Pavel Tikhomirov <ptikhomirov@virtuozzo.com>
Date: Thu, 29 Dec 2016 17:35:07 +0300
> @@ -958,7 +959,9 @@ static struct ctl_table ipv4_net_table[] = {
> .data = &init_net.ipv4.sysctl_tcp_notsent_lowat,
> .maxlen = sizeof(unsigned int),
> .mode = 0644,
> - .proc_handler = proc_dointvec,
> + .proc_handler = proc_doulongvec_minmax,
> + .extra1 = &zero,
> + .extra2 = &uint_max,
It seems much simpler to use "proc_douintvec()" to fix this bug.
Doesn't it?
^ permalink raw reply
* Re: [PATCH v2] scm: fix possible control message header alignment issue
From: David Miller @ 2016-12-30 20:20 UTC (permalink / raw)
To: cugyly; +Cc: netdev, Linyu.Yuan
In-Reply-To: <1483015172-5017-1-git-send-email-cugyly@163.com>
From: yuan linyu <cugyly@163.com>
Date: Thu, 29 Dec 2016 20:39:32 +0800
> From: yuan linyu <Linyu.Yuan@alcatel-sbell.com.cn>
>
> 1. put_cmsg{_compat}() may copy data to user when buffer free space less than
> control message header alignment size.
> 2. scm_detach_fds{_compat}() may calc wrong fdmax if control message header
> have greater alignment size.
>
> Signed-off-by: yuan linyu <Linyu.Yuan@alcatel-sbell.com.cn>
But can this actually happen, in practice?
Take, for example, COMPAT_CMSG_DATA().
It aligns "struct compat_cmsghdr" to a multiple of a u32.
I cannot think of any possibly way that, on any architecture
whatsoever:
CMSG_COMPAT_ALIGN(sizeof(struct compat_cmsghdr))
evaludates to any value other than, exactly:
sizeof(struct compat_cmsghdr)
If you can come up with a case where this does happen in
practice, I will continue to consider this patch.
Otherwise, we should make the assumptions that exist explicit
and get rid of all of the code that does that funny alignment
upon the cmsghdr structure.
Thanks.
^ permalink raw reply
* [PATCH net 2/2] l2tp: take remote address into account in l2tp_ip and l2tp_ip6 socket lookups
From: Guillaume Nault @ 2016-12-30 18:48 UTC (permalink / raw)
To: netdev; +Cc: James Chapman, Chris Elston
In-Reply-To: <cover.1483123297.git.g.nault@alphalink.fr>
For connected sockets, __l2tp_ip{,6}_bind_lookup() needs to check the
remote IP when looking for a matching socket. Otherwise a connected
socket can receive traffic not originating from its peer.
Drop l2tp_ip_bind_lookup() and l2tp_ip6_bind_lookup() instead of
updating their prototype, as these functions aren't used.
Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
---
net/l2tp/l2tp_ip.c | 19 ++++++-------------
net/l2tp/l2tp_ip6.c | 20 ++++++--------------
2 files changed, 12 insertions(+), 27 deletions(-)
diff --git a/net/l2tp/l2tp_ip.c b/net/l2tp/l2tp_ip.c
index 8938b6ba57a0..3d73278b86ca 100644
--- a/net/l2tp/l2tp_ip.c
+++ b/net/l2tp/l2tp_ip.c
@@ -47,7 +47,8 @@ static inline struct l2tp_ip_sock *l2tp_ip_sk(const struct sock *sk)
return (struct l2tp_ip_sock *)sk;
}
-static struct sock *__l2tp_ip_bind_lookup(struct net *net, __be32 laddr, int dif, u32 tunnel_id)
+static struct sock *__l2tp_ip_bind_lookup(const struct net *net, __be32 laddr,
+ __be32 raddr, int dif, u32 tunnel_id)
{
struct sock *sk;
@@ -61,6 +62,7 @@ static struct sock *__l2tp_ip_bind_lookup(struct net *net, __be32 laddr, int dif
if ((l2tp->conn_id == tunnel_id) &&
net_eq(sock_net(sk), net) &&
!(inet->inet_rcv_saddr && inet->inet_rcv_saddr != laddr) &&
+ (!inet->inet_daddr || !raddr || inet->inet_daddr == raddr) &&
(!sk->sk_bound_dev_if || !dif ||
sk->sk_bound_dev_if == dif))
goto found;
@@ -71,15 +73,6 @@ static struct sock *__l2tp_ip_bind_lookup(struct net *net, __be32 laddr, int dif
return sk;
}
-static inline struct sock *l2tp_ip_bind_lookup(struct net *net, __be32 laddr, int dif, u32 tunnel_id)
-{
- struct sock *sk = __l2tp_ip_bind_lookup(net, laddr, dif, tunnel_id);
- if (sk)
- sock_hold(sk);
-
- return sk;
-}
-
/* When processing receive frames, there are two cases to
* consider. Data frames consist of a non-zero session-id and an
* optional cookie. Control frames consist of a regular L2TP header
@@ -183,8 +176,8 @@ static int l2tp_ip_recv(struct sk_buff *skb)
struct iphdr *iph = (struct iphdr *) skb_network_header(skb);
read_lock_bh(&l2tp_ip_lock);
- sk = __l2tp_ip_bind_lookup(net, iph->daddr, inet_iif(skb),
- tunnel_id);
+ sk = __l2tp_ip_bind_lookup(net, iph->daddr, iph->saddr,
+ inet_iif(skb), tunnel_id);
if (!sk) {
read_unlock_bh(&l2tp_ip_lock);
goto discard;
@@ -280,7 +273,7 @@ static int l2tp_ip_bind(struct sock *sk, struct sockaddr *uaddr, int addr_len)
inet->inet_saddr = 0; /* Use device */
write_lock_bh(&l2tp_ip_lock);
- if (__l2tp_ip_bind_lookup(net, addr->l2tp_addr.s_addr,
+ if (__l2tp_ip_bind_lookup(net, addr->l2tp_addr.s_addr, 0,
sk->sk_bound_dev_if, addr->l2tp_conn_id)) {
write_unlock_bh(&l2tp_ip_lock);
ret = -EADDRINUSE;
diff --git a/net/l2tp/l2tp_ip6.c b/net/l2tp/l2tp_ip6.c
index 3135b9d55df5..331ccf5a7bad 100644
--- a/net/l2tp/l2tp_ip6.c
+++ b/net/l2tp/l2tp_ip6.c
@@ -59,12 +59,14 @@ static inline struct l2tp_ip6_sock *l2tp_ip6_sk(const struct sock *sk)
static struct sock *__l2tp_ip6_bind_lookup(struct net *net,
struct in6_addr *laddr,
+ const struct in6_addr *raddr,
int dif, u32 tunnel_id)
{
struct sock *sk;
sk_for_each_bound(sk, &l2tp_ip6_bind_table) {
const struct in6_addr *sk_laddr = inet6_rcv_saddr(sk);
+ const struct in6_addr *sk_raddr = &sk->sk_v6_daddr;
struct l2tp_ip6_sock *l2tp = l2tp_ip6_sk(sk);
if (l2tp == NULL)
@@ -73,6 +75,7 @@ static struct sock *__l2tp_ip6_bind_lookup(struct net *net,
if ((l2tp->conn_id == tunnel_id) &&
net_eq(sock_net(sk), net) &&
(!sk_laddr || ipv6_addr_any(sk_laddr) || ipv6_addr_equal(sk_laddr, laddr)) &&
+ (!raddr || ipv6_addr_any(sk_raddr) || ipv6_addr_equal(sk_raddr, raddr)) &&
(!sk->sk_bound_dev_if || !dif ||
sk->sk_bound_dev_if == dif))
goto found;
@@ -83,17 +86,6 @@ static struct sock *__l2tp_ip6_bind_lookup(struct net *net,
return sk;
}
-static inline struct sock *l2tp_ip6_bind_lookup(struct net *net,
- struct in6_addr *laddr,
- int dif, u32 tunnel_id)
-{
- struct sock *sk = __l2tp_ip6_bind_lookup(net, laddr, dif, tunnel_id);
- if (sk)
- sock_hold(sk);
-
- return sk;
-}
-
/* When processing receive frames, there are two cases to
* consider. Data frames consist of a non-zero session-id and an
* optional cookie. Control frames consist of a regular L2TP header
@@ -197,8 +189,8 @@ static int l2tp_ip6_recv(struct sk_buff *skb)
struct ipv6hdr *iph = ipv6_hdr(skb);
read_lock_bh(&l2tp_ip6_lock);
- sk = __l2tp_ip6_bind_lookup(net, &iph->daddr, inet6_iif(skb),
- tunnel_id);
+ sk = __l2tp_ip6_bind_lookup(net, &iph->daddr, &iph->saddr,
+ inet6_iif(skb), tunnel_id);
if (!sk) {
read_unlock_bh(&l2tp_ip6_lock);
goto discard;
@@ -330,7 +322,7 @@ static int l2tp_ip6_bind(struct sock *sk, struct sockaddr *uaddr, int addr_len)
rcu_read_unlock();
write_lock_bh(&l2tp_ip6_lock);
- if (__l2tp_ip6_bind_lookup(net, &addr->l2tp_addr, bound_dev_if,
+ if (__l2tp_ip6_bind_lookup(net, &addr->l2tp_addr, NULL, bound_dev_if,
addr->l2tp_conn_id)) {
write_unlock_bh(&l2tp_ip6_lock);
err = -EADDRINUSE;
--
2.11.0
^ permalink raw reply related
* [PATCH net 1/2] l2tp: consider '::' as wildcard address in l2tp_ip6 socket lookup
From: Guillaume Nault @ 2016-12-30 18:48 UTC (permalink / raw)
To: netdev; +Cc: James Chapman, Chris Elston
In-Reply-To: <cover.1483123297.git.g.nault@alphalink.fr>
An L2TP socket bound to the unspecified address should match with any
address. If not, it can't receive any packet and __l2tp_ip6_bind_lookup()
can't prevent another socket from binding on the same device/tunnel ID.
While there, rename the 'addr' variable to 'sk_laddr' (local addr), to
make following patch clearer.
Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
---
net/l2tp/l2tp_ip6.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/net/l2tp/l2tp_ip6.c b/net/l2tp/l2tp_ip6.c
index f092ac441fdd..3135b9d55df5 100644
--- a/net/l2tp/l2tp_ip6.c
+++ b/net/l2tp/l2tp_ip6.c
@@ -64,7 +64,7 @@ static struct sock *__l2tp_ip6_bind_lookup(struct net *net,
struct sock *sk;
sk_for_each_bound(sk, &l2tp_ip6_bind_table) {
- const struct in6_addr *addr = inet6_rcv_saddr(sk);
+ const struct in6_addr *sk_laddr = inet6_rcv_saddr(sk);
struct l2tp_ip6_sock *l2tp = l2tp_ip6_sk(sk);
if (l2tp == NULL)
@@ -72,7 +72,7 @@ static struct sock *__l2tp_ip6_bind_lookup(struct net *net,
if ((l2tp->conn_id == tunnel_id) &&
net_eq(sock_net(sk), net) &&
- (!addr || ipv6_addr_equal(addr, laddr)) &&
+ (!sk_laddr || ipv6_addr_any(sk_laddr) || ipv6_addr_equal(sk_laddr, laddr)) &&
(!sk->sk_bound_dev_if || !dif ||
sk->sk_bound_dev_if == dif))
goto found;
--
2.11.0
^ permalink raw reply related
* [PATCH net 0/2] l2tp: socket lookup fixes for l2tp_ip and l2tp_ip6
From: Guillaume Nault @ 2016-12-30 18:48 UTC (permalink / raw)
To: netdev; +Cc: James Chapman, Chris Elston
There are still some cases that aren't correctly handled in the socket
lookup functions of l2tp_ip and l2tp_ip6. This series fixes lookups for
connected sockets and for sockets bound to the IPv6 unspecified
address.
bind() and connect() should now work as expected on IPPROTO_L2TP
sockets. Extra features, like SO_REUSEADDR, remain unsupported.
The matching conditions in __l2tp_ip6_bind_lookup() and
__l2tp_ip_bind_lookup() are getting hard to read. I've kept the single
test approach to make the intend of the patches clear. I'll split the
conditionals once these fixes reach net-next.
Guillaume Nault (2):
l2tp: consider '::' as wildcard address in l2tp_ip6 socket lookup
l2tp: take remote address into account in l2tp_ip and l2tp_ip6 socket
lookups
net/l2tp/l2tp_ip.c | 19 ++++++-------------
net/l2tp/l2tp_ip6.c | 24 ++++++++----------------
2 files changed, 14 insertions(+), 29 deletions(-)
--
2.11.0
^ permalink raw reply
* Re: [net-next PATCH 3/6] i40e: Sync link state between VFs and VFPRs
From: Samudrala, Sridhar @ 2016-12-30 17:10 UTC (permalink / raw)
To: Or Gerlitz
Cc: Alexander Duyck, John Fastabend, Anjali Singhai Jain,
jakub.kicinski, intel-wired-lan, Linux Netdev List
In-Reply-To: <CAJ3xEMiQaVc=aJMFJdWEDHEeYL5NnxAcqbM_cTa+X5CkNrLtZg@mail.gmail.com>
On 12/30/2016 7:43 AM, Or Gerlitz wrote:
> On Fri, Dec 30, 2016 at 8:21 AM, Sridhar Samudrala
> <sridhar.samudrala@intel.com> wrote:
>
> [..]
>> - enable/disable VF link state via ndo_set_vf_link_state will update the
>> admin state of associated VFPR.
> why you want to do that? anything missing here w.o using the legacy mode?
Nothing missing. legacy way of controlling the VF link state is
supported even in switchdev mode
until it is deprecated.
^ permalink raw reply
* Re: [net-next PATCH 5/6] i40e: Add TX and RX support in switchdev mode.
From: Samudrala, Sridhar @ 2016-12-30 17:04 UTC (permalink / raw)
To: Or Gerlitz
Cc: Alexander Duyck, John Fastabend, Anjali Singhai Jain,
jakub.kicinski, intel-wired-lan, Linux Netdev List
In-Reply-To: <CAJ3xEMgDAUSE2gVD3dU4UuXFb7k_W-9QgHpg-0c7b5kxRC2=FQ@mail.gmail.com>
On 12/30/2016 7:31 AM, Or Gerlitz wrote:
> On Fri, Dec 30, 2016 at 8:21 AM, Sridhar Samudrala
> <sridhar.samudrala@intel.com> wrote:
>> In switchdev mode, broadcast filter is not enabled on VFs, The broadcasts and
> nit ", The broadcast" --> ", the broadcasts" or ". The broadcasts"
>
>> unknown frames from VFs are received by the PF and passed to corresponding VF
>> port representator netdev.
>> A host based switching entity like a linux bridge or OVS redirects these frames
>> to the right VFs via VFPR netdevs. Any frames sent via VFPR netdevs are sent as
>> directed transmits to the corresponding VFs. To enable directed transmit, skb
>> metadata dst is used to pass the VF id and the frame is requeued to call the PFs
>> transmit routine.
> So the representator netdevs do or don't have TX/RX rings of their
> own? if the latter, was there any special locking you had to do for
> that?
Atleast in the inital implementation, we are not creating any TX/RX
rings for VFPR netdevs.
skb->dev is set to the PF device and skb is requeued via dev_queue_xmit().
>
> Are you exposing switchdev ops for the representators? didn't see that
> or maybe it's in the 4th patch which didn't make it to the list?
Not at this time. In the future patches when we offload fdb/vlan
functionality, we could use
switchdev ops.
^ permalink raw reply
* [PATCH net-next] af_packet: Provide a TPACKET_V2 compatible Tx path for TPACKET_V3
From: Sowmini Varadhan @ 2016-12-30 16:54 UTC (permalink / raw)
To: netdev, sowmini.varadhan, sowmini.varadhan; +Cc: daniel, willemb, davem
Although TPACKET_V3 Rx has some benefits over TPACKET_V2 Rx,
*_v3 does not currently have Tx support. As a result an application
that wants the best perf for Tx and Rx (e.g. to handle
request/response transacations) ends up needing 2 sockets,
one with *_v2 for Tx and another with *_v3 for Rx.
This patch enables TPACKET_V2 compatible Tx features in TPACKET_V3
so that _v3 supports at least as many features as _v2.
Signed-off-by: Sowmini Varadhan <sowmini.varadhan@oracle.com>
---
Documentation/networking/packet_mmap.txt | 6 ++++--
net/packet/af_packet.c | 23 +++++++++++++++--------
2 files changed, 19 insertions(+), 10 deletions(-)
diff --git a/Documentation/networking/packet_mmap.txt b/Documentation/networking/packet_mmap.txt
index daa015a..6425062 100644
--- a/Documentation/networking/packet_mmap.txt
+++ b/Documentation/networking/packet_mmap.txt
@@ -565,7 +565,7 @@ where 'tpacket_version' can be TPACKET_V1 (default), TPACKET_V2, TPACKET_V3.
(void *)hdr + TPACKET_ALIGN(sizeof(struct tpacket_hdr))
TPACKET_V2 --> TPACKET_V3:
- - Flexible buffer implementation:
+ - Flexible buffer implementation for RX_RING:
1. Blocks can be configured with non-static frame-size
2. Read/poll is at a block-level (as opposed to packet-level)
3. Added poll timeout to avoid indefinite user-space wait
@@ -574,7 +574,9 @@ where 'tpacket_version' can be TPACKET_V1 (default), TPACKET_V2, TPACKET_V3.
4.1 block::timeout
4.2 tpkt_hdr::sk_rxhash
- RX Hash data available in user space
- - Currently only RX_RING available
+ - TX_RING semantics are conceptually similar to TPACKET_V2;
+ use tpacket3_hdr instead of tpacket2_hdr, and TPACKET3_HDRLEN
+ instead of TPACKET2_HDRLEN.
-------------------------------------------------------------------------------
+ AF_PACKET fanout mode
diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c
index 89f2e8c..57692af 100644
--- a/net/packet/af_packet.c
+++ b/net/packet/af_packet.c
@@ -409,6 +409,9 @@ static void __packet_set_status(struct packet_sock *po, void *frame, int status)
flush_dcache_page(pgv_to_page(&h.h2->tp_status));
break;
case TPACKET_V3:
+ h.h3->tp_status = status;
+ flush_dcache_page(pgv_to_page(&h.h3->tp_status));
+ break;
default:
WARN(1, "TPACKET version not supported.\n");
BUG();
@@ -432,6 +435,8 @@ static int __packet_get_status(struct packet_sock *po, void *frame)
flush_dcache_page(pgv_to_page(&h.h2->tp_status));
return h.h2->tp_status;
case TPACKET_V3:
+ flush_dcache_page(pgv_to_page(&h.h3->tp_status));
+ return h.h3->tp_status;
default:
WARN(1, "TPACKET version not supported.\n");
BUG();
@@ -2500,6 +2505,9 @@ static int tpacket_parse_header(struct packet_sock *po, void *frame,
ph.raw = frame;
switch (po->tp_version) {
+ case TPACKET_V3:
+ tp_len = ph.h3->tp_len;
+ break;
case TPACKET_V2:
tp_len = ph.h2->tp_len;
break;
@@ -2519,6 +2527,9 @@ static int tpacket_parse_header(struct packet_sock *po, void *frame,
off_max = po->tx_ring.frame_size - tp_len;
if (po->sk.sk_type == SOCK_DGRAM) {
switch (po->tp_version) {
+ case TPACKET_V3:
+ off = ph.h3->tp_net;
+ break;
case TPACKET_V2:
off = ph.h2->tp_net;
break;
@@ -2528,6 +2539,9 @@ static int tpacket_parse_header(struct packet_sock *po, void *frame,
}
} else {
switch (po->tp_version) {
+ case TPACKET_V3:
+ off = ph.h3->tp_mac;
+ break;
case TPACKET_V2:
off = ph.h2->tp_mac;
break;
@@ -4116,11 +4130,6 @@ static int packet_set_ring(struct sock *sk, union tpacket_req_u *req_u,
struct tpacket_req *req = &req_u->req;
lock_sock(sk);
- /* Opening a Tx-ring is NOT supported in TPACKET_V3 */
- if (!closing && tx_ring && (po->tp_version > TPACKET_V2)) {
- net_warn_ratelimited("Tx-ring is not supported.\n");
- goto out;
- }
rb = tx_ring ? &po->tx_ring : &po->rx_ring;
rb_queue = tx_ring ? &sk->sk_write_queue : &sk->sk_receive_queue;
@@ -4180,9 +4189,7 @@ static int packet_set_ring(struct sock *sk, union tpacket_req_u *req_u,
goto out;
switch (po->tp_version) {
case TPACKET_V3:
- /* Transmit path is not supported. We checked
- * it above but just being paranoid
- */
+ /* Block transmit is not supported yet */
if (!tx_ring)
init_prb_bdqc(po, rb, pg_vec, req_u);
break;
--
1.7.1
^ permalink raw reply related
* Re: [net-next PATCH 0/6] i40e: Add VF port representator support or SR-IOV VFs
From: Samudrala, Sridhar @ 2016-12-30 16:55 UTC (permalink / raw)
To: David Miller
Cc: alexander.h.duyck, john.r.fastabend, anjali.singhai,
jakub.kicinski, intel-wired-lan, netdev
In-Reply-To: <20161229.215356.2143143534347167491.davem@davemloft.net>
On 12/29/2016 6:53 PM, David Miller wrote:
> From: Sridhar Samudrala <sridhar.samudrala@intel.com>
> Date: Thu, 29 Dec 2016 22:20:57 -0800
>
>> - Patch 1 introduces devlink interface to get/set the mode of SRIOV switch.
>> - Patch 2 adds support to create VF port representor(VFPR) netdevs associated
>> with SR-IOV VFs that can be used to control/configure VFs from PF name space.
>> - Patch 3 enables syncing link state between VFs and VFPRs.
>> - Patch 4 adds a new type to metadata_dst to allow passing VF id to lower device.
>> - Patch 5 adds TX and RX support to VFPR netdevs.
>> - Patch 6 enables HW and SW VFPR statistics to be exposed via netlink on VFPR
>> netdevs.
> Patch 4 did not show up on the lists.
I see it on intel-wired-lan list. not sure why it didn't make it to netdev.
>
> The computer you did this work on is configured with a time in the future.
Will fix and send a v2 that will address other comments and include patch 4.
^ permalink raw reply
* Re: [net-next PATCH 3/6] i40e: Sync link state between VFs and VFPRs
From: Or Gerlitz @ 2016-12-30 15:43 UTC (permalink / raw)
To: Sridhar Samudrala
Cc: Alexander Duyck, John Fastabend, Anjali Singhai Jain,
jakub.kicinski, intel-wired-lan, Linux Netdev List
In-Reply-To: <1483078863-22026-4-git-send-email-sridhar.samudrala@intel.com>
On Fri, Dec 30, 2016 at 8:21 AM, Sridhar Samudrala
<sridhar.samudrala@intel.com> wrote:
[..]
> - enable/disable VF link state via ndo_set_vf_link_state will update the
> admin state of associated VFPR.
why you want to do that? anything missing here w.o using the legacy mode?
^ permalink raw reply
* Re: [net-next PATCH 5/6] i40e: Add TX and RX support in switchdev mode.
From: Or Gerlitz @ 2016-12-30 15:31 UTC (permalink / raw)
To: Sridhar Samudrala
Cc: Alexander Duyck, John Fastabend, Anjali Singhai Jain,
jakub.kicinski, intel-wired-lan, Linux Netdev List
In-Reply-To: <1483078863-22026-6-git-send-email-sridhar.samudrala@intel.com>
On Fri, Dec 30, 2016 at 8:21 AM, Sridhar Samudrala
<sridhar.samudrala@intel.com> wrote:
> In switchdev mode, broadcast filter is not enabled on VFs, The broadcasts and
nit ", The broadcast" --> ", the broadcasts" or ". The broadcasts"
> unknown frames from VFs are received by the PF and passed to corresponding VF
> port representator netdev.
> A host based switching entity like a linux bridge or OVS redirects these frames
> to the right VFs via VFPR netdevs. Any frames sent via VFPR netdevs are sent as
> directed transmits to the corresponding VFs. To enable directed transmit, skb
> metadata dst is used to pass the VF id and the frame is requeued to call the PFs
> transmit routine.
So the representator netdevs do or don't have TX/RX rings of their
own? if the latter, was there any special locking you had to do for
that?
Are you exposing switchdev ops for the representators? didn't see that
or maybe it's in the 4th patch which didn't make it to the list?
^ permalink raw reply
* [PATCH][V3] rtlwifi: fix spelling mistake: "encrypiton" -> "encryption"
From: Colin King @ 2016-12-30 14:50 UTC (permalink / raw)
To: Larry Finger, Chaoming Li, Kalle Valo, linux-wireless, netdev
Cc: linux-kernel
From: Colin Ian King <colin.king@canonical.com>
trivial fix to spelling mistake in RT_TRACE message
Signed-off-by: Colin Ian King <colin.king@canonical.com>
---
drivers/net/wireless/realtek/rtlwifi/core.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/wireless/realtek/rtlwifi/core.c b/drivers/net/wireless/realtek/rtlwifi/core.c
index ded1493..732de0a 100644
--- a/drivers/net/wireless/realtek/rtlwifi/core.c
+++ b/drivers/net/wireless/realtek/rtlwifi/core.c
@@ -1532,7 +1532,7 @@ static int rtl_op_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd,
key_type = AESCMAC_ENCRYPTION;
RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG, "alg:CMAC\n");
RT_TRACE(rtlpriv, COMP_SEC, DBG_DMESG,
- "HW don't support CMAC encrypiton, use software CMAC encrypiton\n");
+ "HW don't support CMAC encryption, use software CMAC encryption\n");
err = -EOPNOTSUPP;
goto out_unlock;
default:
--
2.10.2
^ permalink raw reply related
* Re: [PATCH][V2] [media] gp8psk: fix spelling mistake: "firmare" -> "firmware"
From: Kalle Valo @ 2016-12-30 14:35 UTC (permalink / raw)
To: Colin King
Cc: Mauro Carvalho Chehab, Larry Finger, Chaoming Li, linux-media,
linux-wireless, netdev, linux-kernel
In-Reply-To: <20161229213815.27890-1-colin.king@canonical.com>
Colin King <colin.king@canonical.com> writes:
> From: Colin Ian King <colin.king@canonical.com>
>
> Trivial fix to spelling mistake in err message. Also change "don't" to
> "does not".
>
> Signed-off-by: Colin Ian King <colin.king@canonical.com>
> ---
> drivers/media/usb/dvb-usb/gp8psk.c | 2 +-
> drivers/net/wireless/realtek/rtlwifi/core.c | 2 +-
> 2 files changed, 2 insertions(+), 2 deletions(-)
Could you split the rtlwifi part to it's own patch? I can't apply
patches touching media drivers.
--
Kalle Valo
^ permalink raw reply
* [PATCH] ath9k: fix spelling mistake: "meaurement" -> "measurement"
From: Colin King @ 2016-12-30 14:06 UTC (permalink / raw)
To: QCA ath9k Development, Kalle Valo,
linux-wireless-u79uwXL29TY76Z2rM5mHXA,
ath9k-devel-xDcbHBWguxHbcTqmT+pZeQ, netdev-u79uwXL29TY76Z2rM5mHXA
Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA
From: Colin Ian King <colin.king-Z7WLFzj8eWMS+FvcfC7Uqw@public.gmane.org>
Trivial fix to spelling mistake in ath_err message
Signed-off-by: Colin Ian King <colin.king-Z7WLFzj8eWMS+FvcfC7Uqw@public.gmane.org>
---
drivers/net/wireless/ath/ath9k/hw.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/wireless/ath/ath9k/hw.c b/drivers/net/wireless/ath/ath9k/hw.c
index a35f78b..ac36873 100644
--- a/drivers/net/wireless/ath/ath9k/hw.c
+++ b/drivers/net/wireless/ath/ath9k/hw.c
@@ -731,7 +731,7 @@ u32 ar9003_get_pll_sqsum_dvc(struct ath_hw *ah)
udelay(100);
if (WARN_ON_ONCE(i >= 100)) {
- ath_err(common, "PLL4 meaurement not done\n");
+ ath_err(common, "PLL4 measurement not done\n");
break;
}
--
2.10.2
^ permalink raw reply related
* Re: brcmfmac: fix spelling mistakes on "Ivalid"
From: Kalle Valo @ 2016-12-30 13:59 UTC (permalink / raw)
To: Colin Ian King
Cc: Arend van Spriel, Franky Lin, Hante Meuleman,
Pieter-Paul Giesberts, Rafał Miłecki, linux-wireless,
brcm80211-dev-list.pdl, netdev, linux-kernel
In-Reply-To: <20161223004322.7300-1-colin.king@canonical.com>
Colin Ian King <colin.king@canonical.com> wrote:
> From: Colin Ian King <colin.king@canonical.com>
>
> Trivial fixes to spelling mistake "Ivalid" to "Invalid" in
> brcmf_err error messages.
>
> Signed-off-by: Colin Ian King <colin.king@canonical.com>
> Acked-by: Arend van Spriel <arend.vanspriel@broadcom.com>
Patch applied to wireless-drivers-next.git, thanks.
ad334bbb07b0 brcmfmac: fix spelling mistakes on "Ivalid"
--
https://patchwork.kernel.org/patch/9487009/
Documentation about submitting wireless patches and checking status
from patchwork:
https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
^ permalink raw reply
* Re: rtlwifi: fix spelling mistake: "contry" -> "country"
From: Kalle Valo @ 2016-12-30 13:57 UTC (permalink / raw)
To: Colin Ian King
Cc: Larry Finger, Chaoming Li, linux-wireless, netdev, linux-kernel
In-Reply-To: <20161229160029.22117-1-colin.king@canonical.com>
Colin Ian King <colin.king@canonical.com> wrote:
> From: Colin Ian King <colin.king@canonical.com>
>
> trivial fix to spelling mistake in RT_TRACE message
>
> Signed-off-by: Colin Ian King <colin.king@canonical.com>
> Acked-by: Larry Finger <Larry.Finger@lwfinger.net>
Patch applied to wireless-drivers-next.git, thanks.
3b1fc7680a0f rtlwifi: fix spelling mistake: "contry" -> "country"
--
https://patchwork.kernel.org/patch/9491293/
Documentation about submitting wireless patches and checking status
from patchwork:
https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
^ permalink raw reply
* Re: libertas: constify cfg80211_ops structures
From: Kalle Valo @ 2016-12-30 13:56 UTC (permalink / raw)
To: Bhumika Goyal
Cc: julia.lawall, libertas-dev, linux-wireless, netdev, linux-kernel,
Bhumika Goyal
In-Reply-To: <1482015444-28899-1-git-send-email-bhumirks@gmail.com>
Bhumika Goyal <bhumirks@gmail.com> wrote:
> cfg80211_ops structures are only passed as an argument to the function
> wiphy_new. This argument is of type const, so cfg80211_ops strutures
> having this property can be declared as const.
> Done using Coccinelle
>
> @r1 disable optional_qualifier @
> identifier i;
> position p;
> @@
> static struct cfg80211_ops i@p = {...};
>
> @ok1@
> identifier r1.i;
> position p;
> @@
> wiphy_new(&i@p,...)
>
> @bad@
> position p!={r1.p,ok1.p};
> identifier r1.i;
> @@
> i@p
>
> @depends on !bad disable optional_qualifier@
> identifier r1.i;
> @@
> +const
> struct cfg80211_ops i;
>
> File size before:
> text data bss dec hex filename
> 21225 1954 16 23195 5a9b wireless/marvell/libertas/cfg.o
>
> File size after:
> text data bss dec hex filename
> 22041 1154 16 23211 5aab wireless/marvell/libertas/cfg.o
>
> Signed-off-by: Bhumika Goyal <bhumirks@gmail.com>
Patch applied to wireless-drivers-next.git, thanks.
26eb994d5239 libertas: constify cfg80211_ops structures
--
https://patchwork.kernel.org/patch/9479131/
Documentation about submitting wireless patches and checking status
from patchwork:
https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
^ permalink raw reply
* Re: net: wireless: marvell: libertas: constify cfg80211_ops structures
From: Kalle Valo @ 2016-12-30 13:02 UTC (permalink / raw)
To: Bhumika Goyal
Cc: julia.lawall, libertas-dev, linux-wireless, netdev, linux-kernel,
Bhumika Goyal
In-Reply-To: <1482015444-28899-1-git-send-email-bhumirks@gmail.com>
Bhumika Goyal <bhumirks@gmail.com> wrote:
> cfg80211_ops structures are only passed as an argument to the function
> wiphy_new. This argument is of type const, so cfg80211_ops strutures
> having this property can be declared as const.
> Done using Coccinelle
>
> @r1 disable optional_qualifier @
> identifier i;
> position p;
> @@
> static struct cfg80211_ops i@p = {...};
>
> @ok1@
> identifier r1.i;
> position p;
> @@
> wiphy_new(&i@p,...)
>
> @bad@
> position p!={r1.p,ok1.p};
> identifier r1.i;
> @@
> i@p
>
> @depends on !bad disable optional_qualifier@
> identifier r1.i;
> @@
> +const
> struct cfg80211_ops i;
>
> File size before:
> text data bss dec hex filename
> 21225 1954 16 23195 5a9b wireless/marvell/libertas/cfg.o
>
> File size after:
> text data bss dec hex filename
> 22041 1154 16 23211 5aab wireless/marvell/libertas/cfg.o
>
> Signed-off-by: Bhumika Goyal <bhumirks@gmail.com>
The prefix should be "libertas:", I can fix that before I commit.
--
https://patchwork.kernel.org/patch/9479131/
Documentation about submitting wireless patches and checking status
from patchwork:
https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
^ permalink raw reply
* RE: [net-next 15/21] ixgbe: Configure advertised speeds correctly for KR/KX backplane
From: Rosen, Rami @ 2016-12-30 13:01 UTC (permalink / raw)
To: Sergei Shtylyov, Kirsher, Jeffrey T, davem@davemloft.net
Cc: Skidmore, Donald C, netdev@vger.kernel.org, nhorman@redhat.com,
sassmann@redhat.com, jogreene@redhat.com,
guru.anbalagane@oracle.com
In-Reply-To: <7a268273-d95d-16b4-a6a4-653caad791e9@cogentembedded.com>
Hi,
Hi,
On this occasion, also the next can be fixed:
> From: Don Skidmore <donald.c.skidmore@intel.com>
>
> This patch ensures that the advertised link speeds are configured for
> X553 KR/KX backplane. Without this patch the link remains at 1G when
> resuming form low power after being downshifted by LPLU.
Should be "from" instead "from", I would assume.
Regards,
Rami Rosen
Intel Corporation
^ permalink raw reply
* Re: net: wireless: ath: wil6210: constify cfg80211_ops structures
From: Kalle Valo @ 2016-12-30 13:01 UTC (permalink / raw)
To: Bhumika Goyal
Cc: julia.lawall, qca_merez, linux-wireless, wil6210, netdev,
linux-kernel, Bhumika Goyal
In-Reply-To: <1482014667-27082-1-git-send-email-bhumirks@gmail.com>
Bhumika Goyal <bhumirks@gmail.com> wrote:
> cfg80211_ops structures are only passed as an argument to the function
> wiphy_new. This argument is of type const, so cfg80211_ops strutures
> having this property can be declared as const.
> Done using Coccinelle
>
> @r1 disable optional_qualifier @
> identifier i;
> position p;
> @@
> static struct cfg80211_ops i@p = {...};
>
> @ok1@
> identifier r1.i;
> position p;
> @@
> wiphy_new(&i@p,...)
>
> @bad@
> position p!={r1.p,ok1.p};
> identifier r1.i;
> @@
> i@p
>
> @depends on !bad disable optional_qualifier@
> identifier r1.i;
> @@
> +const
> struct cfg80211_ops i;
>
> File size before:
> text data bss dec hex filename
> 18133 6632 0 24765 60bd wireless/ath/wil6210/cfg80211.o
>
> File size after:
> text data bss dec hex filename
> 18933 5832 0 24765 60bd wireless/ath/wil6210/cfg80211.o
>
> Signed-off-by: Bhumika Goyal <bhumirks@gmail.com>
The prefix should be "wil6210:", I can fix that before I commit this.
--
https://patchwork.kernel.org/patch/9479127/
Documentation about submitting wireless patches and checking status
from patchwork:
https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
^ permalink raw reply
* [PATCH] net: stmmac: remove unused duplicate property snps,axi_all
From: Niklas Cassel @ 2016-12-30 12:56 UTC (permalink / raw)
To: Rob Herring, Mark Rutland, Giuseppe Cavallaro, Alexandre Torgue,
David S. Miller, Niklas Cassel, Eric Engestrom, Gabriel Fernandez,
Joachim Eastwood, Vincent Palatin
Cc: Niklas Cassel, netdev, devicetree, linux-kernel
From: Niklas Cassel <niklas.cassel@axis.com>
For core revision 3.x Address-Aligned Beats is available in two registers.
The DT property snps,aal was created for AAL in the DMA bus register,
which is a read/write bit.
The DT property snps,axi_all was created for AXI_AAL in the AXI bus mode
register, which is a read only bit that reflects the value of AAL in the
DMA bus register.
Since the value of snps,axi_all is never used in the driver,
and since the property was created for a bit that is read only,
it should be safe to remove the property.
Acked-by: Giuseppe Cavallaro <peppe.cavallaro@st.com>
Signed-off-by: Niklas Cassel <niklas.cassel@axis.com>
---
Documentation/devicetree/bindings/net/stmmac.txt | 1 -
drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c | 1 -
include/linux/stmmac.h | 1 -
3 files changed, 3 deletions(-)
diff --git a/Documentation/devicetree/bindings/net/stmmac.txt b/Documentation/devicetree/bindings/net/stmmac.txt
index 128da752fec9..c3d2fd480a1b 100644
--- a/Documentation/devicetree/bindings/net/stmmac.txt
+++ b/Documentation/devicetree/bindings/net/stmmac.txt
@@ -65,7 +65,6 @@ Optional properties:
- snps,wr_osr_lmt: max write outstanding req. limit
- snps,rd_osr_lmt: max read outstanding req. limit
- snps,kbbe: do not cross 1KiB boundary.
- - snps,axi_all: align address
- snps,blen: this is a vector of supported burst length.
- snps,fb: fixed-burst
- snps,mb: mixed-burst
diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
index 082cd48db6a7..60ba8993c650 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_platform.c
@@ -121,7 +121,6 @@ static struct stmmac_axi *stmmac_axi_setup(struct platform_device *pdev)
axi->axi_lpi_en = of_property_read_bool(np, "snps,lpi_en");
axi->axi_xit_frm = of_property_read_bool(np, "snps,xit_frm");
axi->axi_kbbe = of_property_read_bool(np, "snps,axi_kbbe");
- axi->axi_axi_all = of_property_read_bool(np, "snps,axi_all");
axi->axi_fb = of_property_read_bool(np, "snps,axi_fb");
axi->axi_mb = of_property_read_bool(np, "snps,axi_mb");
axi->axi_rb = of_property_read_bool(np, "snps,axi_rb");
diff --git a/include/linux/stmmac.h b/include/linux/stmmac.h
index 266dab9ad782..889e0e9a3f1c 100644
--- a/include/linux/stmmac.h
+++ b/include/linux/stmmac.h
@@ -103,7 +103,6 @@ struct stmmac_axi {
u32 axi_wr_osr_lmt;
u32 axi_rd_osr_lmt;
bool axi_kbbe;
- bool axi_axi_all;
u32 axi_blen[AXI_BLEN];
bool axi_fb;
bool axi_mb;
--
2.1.4
^ permalink raw reply related
* More info about lockless qdisc patch
From: Xingjun Liu @ 2016-12-30 12:48 UTC (permalink / raw)
To: john.r.fastabend; +Cc: netdev
Hi John,
I note you have a patch request last august about "support lockless qdisc”,
see: https://www.mail-archive.com/netdev@vger.kernel.org/msg124489.html
We take an interest in it. Do you have any info/plan on this patch?
Thanks
Xingjun
^ 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