Netdev List
 help / color / mirror / Atom feed
* Re: [PATCH net-next 0/3] Close race between {un, }register_netdevice_notifier and pernet_operations
From: David Miller @ 2018-03-30 15:00 UTC (permalink / raw)
  To: ktkhai
  Cc: steffen.klassert, herbert, pablo, kadlec, fw, daniel,
	jakub.kicinski, ast, brouer, linux, john.fastabend, dsahern,
	netdev, netfilter-devel, coreteam
In-Reply-To: <152233127015.1654.2122693690388452589.stgit@localhost.localdomain>

From: Kirill Tkhai <ktkhai@virtuozzo.com>
Date: Thu, 29 Mar 2018 17:03:15 +0300

> the problem is {,un}register_netdevice_notifier() do not take
> pernet_ops_rwsem, and they don't see network namespaces, being
> initialized in setup_net() and cleanup_net(), since at this
> time net is not hashed to net_namespace_list.
> 
> This may lead to imbalance, when a notifier is called at time of
> setup_net()/net is alive, but it's not called at time of cleanup_net(),
> for the devices, hashed to the net, and vise versa. See (3/3) for
> the scheme of imbalance.
> 
> This patchset fixes the problem by acquiring pernet_ops_rwsem
> at the time of {,un}register_netdevice_notifier() (3/3).
> (1-2/3) are preparations in xfrm and netfilter subsystems.
> 
> The problem was introduced a long ago, but backporting won't be easy,
> since every previous kernel version may have changes in netdevice
> notifiers, and they all need review and testing. Otherwise, there
> may be more pernet_operations, which register or unregister
> netdevice notifiers, and that leads to deadlock (which is was fixed
> in 1-2/3). This patchset is for net-next.

I am applying this series and skipping the rwsem revert.

Thanks Kirill.

^ permalink raw reply

* Re: [PATCH net-next] net: Revert net_rwsem
From: David Miller @ 2018-03-30 15:00 UTC (permalink / raw)
  To: ktkhai; +Cc: netdev
In-Reply-To: <d77de1d2-e931-d333-f4d7-d0087460d8d4@virtuozzo.com>

From: Kirill Tkhai <ktkhai@virtuozzo.com>
Date: Fri, 30 Mar 2018 12:57:53 +0300

> Or, if https://patchwork.ozlabs.org/project/netdev/list/?series=36495
> is ok enough to go in kernel in a little while, I'll make another fix
> (removing down_read(&net_rwsem) from {,un}register_netdevice_notifiers()).
> Please, let me know if some other actions are required.

I applied that series.

^ permalink raw reply

* Re: [PATCH net] vlan: also check phy_driver ts_info for vlan's real device
From: Richard Cochran @ 2018-03-30 15:21 UTC (permalink / raw)
  To: Andrew Lunn; +Cc: Hangbin Liu, netdev, David S. Miller
In-Reply-To: <20180330150214.GF28244@lunn.ch>

On Fri, Mar 30, 2018 at 05:02:14PM +0200, Andrew Lunn wrote:
> Would it not be better to just call ethtool_get_ts_info() on the real
> device? That would then also deal with the case that the 'real' device
> is another virtual device stacked on top of a real device.

That won't work.

The returned 'ethtool_ts_info' is on the stack of
ethtool_get_ts_info().  Both the top level and the inner call to
will call copy_to_user(), but the top level will clobber the correct
result with zeros.

Thanks,
Richard

^ permalink raw reply

* Re: [PATCH iproute2-next] json_print: fix print_uint with helper type extensions
From: David Ahern @ 2018-03-30 14:57 UTC (permalink / raw)
  To: Stephen Hemminger, Kevin Darbyshire-Bryant; +Cc: netdev
In-Reply-To: <20180329140350.30a61953@xeon-e3>

On 3/29/18 3:03 PM, Stephen Hemminger wrote:
> On Thu, 29 Mar 2018 20:32:10 +0100
> Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk> wrote:
> 
>> Introduce print helper functions for int, uint, explicit int32, uint32,
>> int64 & uint64.
>>
>> print_int used 'int' type internally, whereas print_uint used 'uint64_t'
>>
>> These helper functions eventually call vfprintf(fp, fmt, args) which is
>> a variable argument list function and is dependent upon 'fmt' containing
>> correct information about the length of the passed arguments.
>>
>> Unfortunately print_int v print_uint offered no clue to the programmer
>> that internally passed ints to print_uint were being promoted to 64bits,
>> thus the format passed in 'fmt' string vs the actual passed integer
>> could be different lengths.  This is even more interesting on big endian
>> architectures where 'vfprintf' would be looking in the middle of an
>> int64 type.
>>
>> print_u/int now stick with native int size.  print_u/int32 & print
>> u/int64 functions offer explicit integer sizes.
>>
>> To portably use these formats you should use the relevant PRIdN or PRIuN
>> formats as defined in inttypes.h
>>
>> e.g.
>>
>> print_uint64(PRINT_ANY, "refcnt", "refcnt %" PRIu64 " ", t->tcm_info)
>>
>> Signed-off-by: Kevin Darbyshire-Bryant <ldir@darbyshire-bryant.me.uk>
>> ---
>>  include/json_print.h | 6 +++++-
>>  lib/json_print.c     | 6 +++++-
>>  2 files changed, 10 insertions(+), 2 deletions(-)
>>
>> diff --git a/include/json_print.h b/include/json_print.h
>> index 2ca7830a..fb62b142 100644
>> --- a/include/json_print.h
>> +++ b/include/json_print.h
>> @@ -56,10 +56,14 @@ void close_json_array(enum output_type type, const char *delim);
>>  		print_color_##type_name(t, COLOR_NONE, key, fmt, value);	\
>>  	}
>>  _PRINT_FUNC(int, int);
>> +_PRINT_FUNC(uint, unsigned int);
>>  _PRINT_FUNC(bool, bool);
>>  _PRINT_FUNC(null, const char*);
>>  _PRINT_FUNC(string, const char*);
>> -_PRINT_FUNC(uint, uint64_t);
>> +_PRINT_FUNC(int32, int32_t);
>> +_PRINT_FUNC(uint32, uint32_t);
>> +_PRINT_FUNC(int64, int64_t);
>> +_PRINT_FUNC(uint64, uint64_t);
>>  _PRINT_FUNC(hu, unsigned short);
>>  _PRINT_FUNC(hex, unsigned int);
>>  _PRINT_FUNC(0xhex, unsigned int);
>> diff --git a/lib/json_print.c b/lib/json_print.c
>> index bda72933..1194a6ec 100644
>> --- a/lib/json_print.c
>> +++ b/lib/json_print.c
>> @@ -116,8 +116,12 @@ void close_json_array(enum output_type type, const char *str)
>>  		}							\
>>  	}
>>  _PRINT_FUNC(int, int);
>> +_PRINT_FUNC(uint, unsigned int);
>>  _PRINT_FUNC(hu, unsigned short);
>> -_PRINT_FUNC(uint, uint64_t);
>> +_PRINT_FUNC(int32, int32_t);
>> +_PRINT_FUNC(uint32, uint32_t);
>> +_PRINT_FUNC(int64, int64_t);
>> +_PRINT_FUNC(uint64, uint64_t);
>>  _PRINT_FUNC(lluint, unsigned long long int);
>>  _PRINT_FUNC(float, double);
>>  #undef _PRINT_FUNC
> 
> You sent patches to both trees. That is not the correct protocol.
> Choose one, get it reviewed.  iproute2-next will get merged from master (in fact
> dave should be doing it regularly).
> 

My comment was to send separate patches - bug fix only for iproute2
master and then a separate one for enhancements going to -next. If the
enhancements overlap the bug fix then it needs to wait for the merge.
This is really no different than what is often needed for net and net-next.

^ permalink raw reply

* Re: [PATCH net] vlan: also check phy_driver ts_info for vlan's real device
From: Andrew Lunn @ 2018-03-30 15:02 UTC (permalink / raw)
  To: Hangbin Liu; +Cc: netdev, Richard Cochran, David S. Miller
In-Reply-To: <1522374240-18673-1-git-send-email-liuhangbin@gmail.com>

On Fri, Mar 30, 2018 at 09:44:00AM +0800, Hangbin Liu wrote:
> Just like function ethtool_get_ts_info(), we should also consider the
> phy_driver ts_info call back. For example, driver dp83640.

Hi Hangbin

Would it not be better to just call ethtool_get_ts_info() on the real
device? That would then also deal with the case that the 'real' device
is another virtual device stacked on top of a real device.

   Andrew

^ permalink raw reply

* Re: [PATCH net] vlan: also check phy_driver ts_info for vlan's real device
From: Andrew Lunn @ 2018-03-30 15:36 UTC (permalink / raw)
  To: Richard Cochran; +Cc: Hangbin Liu, netdev, David S. Miller
In-Reply-To: <20180330152121.rmvdkjrqmhekasnh@localhost>

On Fri, Mar 30, 2018 at 08:21:21AM -0700, Richard Cochran wrote:
> On Fri, Mar 30, 2018 at 05:02:14PM +0200, Andrew Lunn wrote:
> > Would it not be better to just call ethtool_get_ts_info() on the real
> > device? That would then also deal with the case that the 'real' device
> > is another virtual device stacked on top of a real device.
> 
> That won't work.
> 
> The returned 'ethtool_ts_info' is on the stack of
> ethtool_get_ts_info().  Both the top level and the inner call to
> will call copy_to_user(), but the top level will clobber the correct
> result with zeros.

Ah, O.K.

But it still seems like there should be one central place to handle a
device. Maybe factor out the part which deals with getting the
information from the device, from the part that copies it to
userspace?

	Andrew

^ permalink raw reply

* Re: [PATCH v14 net-next 08/12] crypto : chtls - CPL handler definition
From: Ganesh Goudar @ 2018-03-30 15:41 UTC (permalink / raw)
  To: sd
  Cc: Sabrina Dubroca, davem, herbert, davejwatson, sbrivio,
	linux-crypto, netdev, werner, leedom, swise, indranil, atul
In-Reply-To: <97a6ce0d-d188-8171-7985-bb31030b1ee8@chelsio.com>

On Friday, March 03/30/18, 2018 at 00:38:06 +0530, Atul Gupta wrote:
> 
> 
> On 3/29/2018 9:56 PM, Sabrina Dubroca wrote:
> > 2018-03-29, 21:27:50 +0530, Atul Gupta wrote:
> > ...
> >> +static void chtls_pass_accept_request(struct sock *sk,
> >> +				      struct sk_buff *skb)
> >> +{
> > ...
> >> +	if (chtls_get_module(newsk))
> >> +		goto reject;
> >> +	inet_csk_reqsk_queue_added(sk);
> >> +	reply_skb->sk = newsk;
> >> +	chtls_install_cpl_ops(newsk);
> > Function defined in patch 11, declared in patch 6, and used in patch
> > 8.  Are you actually listening to the comments we've been sending?
> Patch series is broken to make it bisectable, it ensures that existing modules net, cxgb4, chcr compiles fine, since chtls is new module the sequence of patches builds clean by virtue of having Makefile change in the last patch. We have followed a similar approach in the past for new submission of chcr, cxgbit drivers.
> >
>
I hope you are fine with this, we will take care of your other comment in V15
and submit.

Thanks

^ permalink raw reply

* Re: [PATCH 00/47] Netfilter/IPVS updates for net-next
From: David Miller @ 2018-03-30 15:43 UTC (permalink / raw)
  To: pablo; +Cc: netfilter-devel, netdev
In-Reply-To: <20180330113729.18335-1-pablo@netfilter.org>

From: Pablo Neira Ayuso <pablo@netfilter.org>
Date: Fri, 30 Mar 2018 13:36:42 +0200

> The following patchset contains Netfilter/IPVS updates for your net-next
> tree. This batch comes with more input sanitization for xtables to
> address bug reports from fuzzers, preparation works to the flowtable
> infrastructure and assorted updates. In no particular order, they are:

Pulled, but I have to ask you not to handle things this way next time.

The other week when I pushed back on your pull request, I asked for
some explanations about the flow table situation.

When I was satisfied with the explanation I explicitly asked you to
resend _exactly_ the original pull request.

I asked you to do this because I didn't want to see a huge pull
request like this one show up later.

And this is exactly what happend. :-/

Please, next time I ask you to resend a pull request I have a very
good reason for doing so, so please do it.

Thanks.

^ permalink raw reply

* [PATCH] ISDN: eicon: message: remove redundant check
From: Gustavo A. R. Silva @ 2018-03-30 15:46 UTC (permalink / raw)
  To: Armin Schindler, Karsten Keil; +Cc: netdev, linux-kernel, Gustavo A. R. Silva

Check on plci->internal_command is unnecessary.

Addresses-Coverity-ID: 1268778 ("Identical code for different branches")
Signed-off-by: Gustavo A. R. Silva <gustavo@embeddedor.com>
---
 drivers/isdn/hardware/eicon/message.c | 2 --
 1 file changed, 2 deletions(-)

diff --git a/drivers/isdn/hardware/eicon/message.c b/drivers/isdn/hardware/eicon/message.c
index def7992..0ac18fc 100644
--- a/drivers/isdn/hardware/eicon/message.c
+++ b/drivers/isdn/hardware/eicon/message.c
@@ -13886,8 +13886,6 @@ static void adjust_b_restore(dword Id, PLCI *plci, byte Rc)
 			dbug(1, dprintf("[%06lx] %s,%d: Adjust B restore failed",
 					UnMapId(Id), (char *)(FILE_), __LINE__));
 		}
-		if (plci->internal_command)
-			break;
 		break;
 	}
 }
-- 
2.7.4

^ permalink raw reply related

* Re: [PATCH iproute2-next 1/1] tc: add online mode
From: David Ahern @ 2018-03-30 15:52 UTC (permalink / raw)
  To: Roman Mashak; +Cc: stephen, netdev, kernel, jhs, xiyou.wangcong, jiri
In-Reply-To: <1522361555-1913-1-git-send-email-mrv@mojatatu.com>

On 3/29/18 4:12 PM, Roman Mashak wrote:
> Add initial support for oneline mode in tc; actions, filters and qdiscs
> will be gradually updated in the follow-up patches.
> 
> Signed-off-by: Roman Mashak <mrv@mojatatu.com>
> ---
>  man/man8/tc.8 | 15 ++++++++++++++-
>  tc/tc.c       |  8 +++++++-
>  2 files changed, 21 insertions(+), 2 deletions(-)
> 

applied to iproute2-next. Thanks

^ permalink raw reply

* Re: [PATCH iproute2-next 1/1] tc: enable json output for actions
From: David Ahern @ 2018-03-30 15:55 UTC (permalink / raw)
  To: Roman Mashak; +Cc: netdev, stephen, kernel, jhs, xiyou.wangcong, jiri
In-Reply-To: <1522270784-17811-1-git-send-email-mrv@mojatatu.com>

On 3/28/18 2:59 PM, Roman Mashak wrote:
> Signed-off-by: Roman Mashak <mrv@mojatatu.com>
> ---
>  tc/m_action.c | 23 ++++++++++++++++++-----
>  1 file changed, 18 insertions(+), 5 deletions(-)
> 

applied to iproute2-next. Thanks

^ permalink raw reply

* Re: [PATCH net v3 1/3] ipv6: move ip6_dst_store() calls with flowi6 checks to a wrapper
From: kbuild test robot @ 2018-03-30 15:58 UTC (permalink / raw)
  To: Alexey Kodanev
  Cc: kbuild-all, netdev, Eric Dumazet, Martin KaFai Lau, David Miller,
	Alexey Kodanev
In-Reply-To: <1522345042-26646-2-git-send-email-alexey.kodanev@oracle.com>

[-- Attachment #1: Type: text/plain, Size: 10447 bytes --]

Hi Alexey,

I love your patch! Yet something to improve:

[auto build test ERROR on net/master]

url:    https://github.com/0day-ci/linux/commits/Alexey-Kodanev/ipv6-move-ip6_dst_store-calls-with-flowi6-checks-to-a-wrapper/20180330-173050
config: x86_64-kexec (attached as .config)
compiler: gcc-7 (Debian 7.3.0-1) 7.3.0
reproduce:
        # save the attached .config to linux build tree
        make ARCH=x86_64 

All errors (new ones prefixed by >>):

   In file included from include/linux/tcp.h:23:0,
                    from drivers/net/ethernet/chelsio/libcxgb/libcxgb_cm.c:33:
   include/net/ip6_route.h: In function 'ip6_dst_store_flow':
>> include/net/sock.h:349:34: error: 'struct sock_common' has no member named 'skc_v6_daddr'; did you mean 'skc_daddr'?
    #define sk_v6_daddr  __sk_common.skc_v6_daddr
                                     ^
   include/net/ip6_route.h:221:43: note: in expansion of macro 'sk_v6_daddr'
            ipv6_addr_equal(&fl6->daddr, &sk->sk_v6_daddr) ?
                                              ^~~~~~~~~~~
>> include/net/sock.h:349:34: error: 'struct sock_common' has no member named 'skc_v6_daddr'; did you mean 'skc_daddr'?
    #define sk_v6_daddr  __sk_common.skc_v6_daddr
                                     ^
   include/net/ip6_route.h:222:14: note: in expansion of macro 'sk_v6_daddr'
            &sk->sk_v6_daddr : NULL,
                 ^~~~~~~~~~~

vim +349 include/net/sock.h

4dc6dc716 Eric Dumazet             2009-07-15  329  
68835aba4 Eric Dumazet             2010-11-30  330  #define sk_dontcopy_begin	__sk_common.skc_dontcopy_begin
68835aba4 Eric Dumazet             2010-11-30  331  #define sk_dontcopy_end		__sk_common.skc_dontcopy_end
4dc6dc716 Eric Dumazet             2009-07-15  332  #define sk_hash			__sk_common.skc_hash
508054668 Eric Dumazet             2013-10-02  333  #define sk_portpair		__sk_common.skc_portpair
05dbc7b59 Eric Dumazet             2013-10-03  334  #define sk_num			__sk_common.skc_num
05dbc7b59 Eric Dumazet             2013-10-03  335  #define sk_dport		__sk_common.skc_dport
508054668 Eric Dumazet             2013-10-02  336  #define sk_addrpair		__sk_common.skc_addrpair
508054668 Eric Dumazet             2013-10-02  337  #define sk_daddr		__sk_common.skc_daddr
508054668 Eric Dumazet             2013-10-02  338  #define sk_rcv_saddr		__sk_common.skc_rcv_saddr
^1da177e4 Linus Torvalds           2005-04-16  339  #define sk_family		__sk_common.skc_family
^1da177e4 Linus Torvalds           2005-04-16  340  #define sk_state		__sk_common.skc_state
^1da177e4 Linus Torvalds           2005-04-16  341  #define sk_reuse		__sk_common.skc_reuse
055dc21a1 Tom Herbert              2013-01-22  342  #define sk_reuseport		__sk_common.skc_reuseport
9fe516ba3 Eric Dumazet             2014-06-27  343  #define sk_ipv6only		__sk_common.skc_ipv6only
26abe1437 Eric W. Biederman        2015-05-08  344  #define sk_net_refcnt		__sk_common.skc_net_refcnt
^1da177e4 Linus Torvalds           2005-04-16  345  #define sk_bound_dev_if		__sk_common.skc_bound_dev_if
^1da177e4 Linus Torvalds           2005-04-16  346  #define sk_bind_node		__sk_common.skc_bind_node
8feaf0c0a Arnaldo Carvalho de Melo 2005-08-09  347  #define sk_prot			__sk_common.skc_prot
07feaebfc Eric W. Biederman        2007-09-12  348  #define sk_net			__sk_common.skc_net
efe4208f4 Eric Dumazet             2013-10-03 @349  #define sk_v6_daddr		__sk_common.skc_v6_daddr
efe4208f4 Eric Dumazet             2013-10-03  350  #define sk_v6_rcv_saddr	__sk_common.skc_v6_rcv_saddr
33cf7c90f Eric Dumazet             2015-03-11  351  #define sk_cookie		__sk_common.skc_cookie
70da268b5 Eric Dumazet             2015-10-08  352  #define sk_incoming_cpu		__sk_common.skc_incoming_cpu
8e5eb54d3 Eric Dumazet             2015-10-08  353  #define sk_flags		__sk_common.skc_flags
ed53d0ab7 Eric Dumazet             2015-10-08  354  #define sk_rxhash		__sk_common.skc_rxhash
efe4208f4 Eric Dumazet             2013-10-03  355  
^1da177e4 Linus Torvalds           2005-04-16  356  	socket_lock_t		sk_lock;
9115e8cd2 Eric Dumazet             2016-12-03  357  	atomic_t		sk_drops;
9115e8cd2 Eric Dumazet             2016-12-03  358  	int			sk_rcvlowat;
9115e8cd2 Eric Dumazet             2016-12-03  359  	struct sk_buff_head	sk_error_queue;
b178bb3df Eric Dumazet             2010-11-16  360  	struct sk_buff_head	sk_receive_queue;
fa438ccfd Eric Dumazet             2007-03-04  361  	/*
fa438ccfd Eric Dumazet             2007-03-04  362  	 * The backlog queue is special, it is always used with
fa438ccfd Eric Dumazet             2007-03-04  363  	 * the per-socket spinlock held and requires low latency
fa438ccfd Eric Dumazet             2007-03-04  364  	 * access. Therefore we special case it's implementation.
b178bb3df Eric Dumazet             2010-11-16  365  	 * Note : rmem_alloc is in this structure to fill a hole
b178bb3df Eric Dumazet             2010-11-16  366  	 * on 64bit arches, not because its logically part of
b178bb3df Eric Dumazet             2010-11-16  367  	 * backlog.
fa438ccfd Eric Dumazet             2007-03-04  368  	 */
fa438ccfd Eric Dumazet             2007-03-04  369  	struct {
b178bb3df Eric Dumazet             2010-11-16  370  		atomic_t	rmem_alloc;
b178bb3df Eric Dumazet             2010-11-16  371  		int		len;
fa438ccfd Eric Dumazet             2007-03-04  372  		struct sk_buff	*head;
fa438ccfd Eric Dumazet             2007-03-04  373  		struct sk_buff	*tail;
fa438ccfd Eric Dumazet             2007-03-04  374  	} sk_backlog;
b178bb3df Eric Dumazet             2010-11-16  375  #define sk_rmem_alloc sk_backlog.rmem_alloc
2c8c56e15 Eric Dumazet             2014-11-11  376  
9115e8cd2 Eric Dumazet             2016-12-03  377  	int			sk_forward_alloc;
e0d1095ae Cong Wang                2013-08-01  378  #ifdef CONFIG_NET_RX_BUSY_POLL
dafcc4380 Eliezer Tamir            2013-06-14  379  	unsigned int		sk_ll_usec;
9115e8cd2 Eric Dumazet             2016-12-03  380  	/* ===== mostly read cache line ===== */
9115e8cd2 Eric Dumazet             2016-12-03  381  	unsigned int		sk_napi_id;
060212928 Eliezer Tamir            2013-06-10  382  #endif
b178bb3df Eric Dumazet             2010-11-16  383  	int			sk_rcvbuf;
b178bb3df Eric Dumazet             2010-11-16  384  
b178bb3df Eric Dumazet             2010-11-16  385  	struct sk_filter __rcu	*sk_filter;
ceb5d58b2 Eric Dumazet             2015-11-29  386  	union {
eaefd1105 Eric Dumazet             2011-02-18  387  		struct socket_wq __rcu	*sk_wq;
ceb5d58b2 Eric Dumazet             2015-11-29  388  		struct socket_wq	*sk_wq_raw;
ceb5d58b2 Eric Dumazet             2015-11-29  389  	};
def8b4faf Alexey Dobriyan          2008-10-28  390  #ifdef CONFIG_XFRM
d188ba86d Eric Dumazet             2015-12-08  391  	struct xfrm_policy __rcu *sk_policy[2];
def8b4faf Alexey Dobriyan          2008-10-28  392  #endif
deaa58542 Eric Dumazet             2012-06-24  393  	struct dst_entry	*sk_rx_dst;
0e36cbb34 Cong Wang                2013-01-22  394  	struct dst_entry __rcu	*sk_dst_cache;
^1da177e4 Linus Torvalds           2005-04-16  395  	atomic_t		sk_omem_alloc;
4e07a91c3 Arnaldo Carvalho de Melo 2007-05-29  396  	int			sk_sndbuf;
9115e8cd2 Eric Dumazet             2016-12-03  397  
9115e8cd2 Eric Dumazet             2016-12-03  398  	/* ===== cache line for TX ===== */
9115e8cd2 Eric Dumazet             2016-12-03  399  	int			sk_wmem_queued;
14afee4b6 Reshetova, Elena         2017-06-30  400  	refcount_t		sk_wmem_alloc;
9115e8cd2 Eric Dumazet             2016-12-03  401  	unsigned long		sk_tsq_flags;
75c119afe Eric Dumazet             2017-10-05  402  	union {
9115e8cd2 Eric Dumazet             2016-12-03  403  		struct sk_buff	*sk_send_head;
75c119afe Eric Dumazet             2017-10-05  404  		struct rb_root	tcp_rtx_queue;
75c119afe Eric Dumazet             2017-10-05  405  	};
^1da177e4 Linus Torvalds           2005-04-16  406  	struct sk_buff_head	sk_write_queue;
9115e8cd2 Eric Dumazet             2016-12-03  407  	__s32			sk_peek_off;
9115e8cd2 Eric Dumazet             2016-12-03  408  	int			sk_write_pending;
9b8805a32 Julian Anastasov         2017-02-06  409  	__u32			sk_dst_pending_confirm;
218af599f Eric Dumazet             2017-05-16  410  	u32			sk_pacing_status; /* see enum sk_pacing */
9115e8cd2 Eric Dumazet             2016-12-03  411  	long			sk_sndtimeo;
9115e8cd2 Eric Dumazet             2016-12-03  412  	struct timer_list	sk_timer;
9115e8cd2 Eric Dumazet             2016-12-03  413  	__u32			sk_priority;
9115e8cd2 Eric Dumazet             2016-12-03  414  	__u32			sk_mark;
9115e8cd2 Eric Dumazet             2016-12-03  415  	u32			sk_pacing_rate; /* bytes per second */
9115e8cd2 Eric Dumazet             2016-12-03  416  	u32			sk_max_pacing_rate;
9115e8cd2 Eric Dumazet             2016-12-03  417  	struct page_frag	sk_frag;
9115e8cd2 Eric Dumazet             2016-12-03  418  	netdev_features_t	sk_route_caps;
9115e8cd2 Eric Dumazet             2016-12-03  419  	netdev_features_t	sk_route_nocaps;
9115e8cd2 Eric Dumazet             2016-12-03  420  	int			sk_gso_type;
9115e8cd2 Eric Dumazet             2016-12-03  421  	unsigned int		sk_gso_max_size;
9115e8cd2 Eric Dumazet             2016-12-03  422  	gfp_t			sk_allocation;
9115e8cd2 Eric Dumazet             2016-12-03  423  	__u32			sk_txhash;
fc64869c4 Andrey Ryabinin          2016-05-18  424  
fc64869c4 Andrey Ryabinin          2016-05-18  425  	/*
fc64869c4 Andrey Ryabinin          2016-05-18  426  	 * Because of non atomicity rules, all
fc64869c4 Andrey Ryabinin          2016-05-18  427  	 * changes are protected by socket lock.
fc64869c4 Andrey Ryabinin          2016-05-18  428  	 */
aa4c1037a David Ahern              2016-12-01  429  	unsigned int		__sk_flags_offset[0];
aa4c1037a David Ahern              2016-12-01  430  #ifdef __BIG_ENDIAN_BITFIELD
aa4c1037a David Ahern              2016-12-01  431  #define SK_FL_PROTO_SHIFT  16
aa4c1037a David Ahern              2016-12-01  432  #define SK_FL_PROTO_MASK   0x00ff0000
aa4c1037a David Ahern              2016-12-01  433  

:::::: The code at line 349 was first introduced by commit
:::::: efe4208f47f907b86f528788da711e8ab9dea44d ipv6: make lookups simpler and faster

:::::: TO: Eric Dumazet <edumazet@google.com>
:::::: CC: David S. Miller <davem@davemloft.net>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 26634 bytes --]

^ permalink raw reply

* Re: [PATCH net-next 4/6] inet: frags: use rhashtables for reassembly units
From: Eric Dumazet @ 2018-03-30 16:09 UTC (permalink / raw)
  To: Kirill Tkhai, Eric Dumazet, David S . Miller
  Cc: netdev, Florian Westphal, Herbert Xu, Thomas Graf,
	Jesper Dangaard Brouer, Alexander Aring, Stefan Schmidt,
	Nikolay Aleksandrov
In-Reply-To: <b803a854-f050-a12e-680f-c53da35b3151@virtuozzo.com>



On 03/30/2018 04:44 AM, Kirill Tkhai wrote:
> Hi, Eric,
> 
> Great results!
> 
> Please, see some comments below.
> 

Thanks a lot Kirill for this detailed review.

I will address/correct all points that you raised in V2.

^ permalink raw reply

* Re: [PATCH] ISDN: eicon: message: remove redundant check
From: Joe Perches @ 2018-03-30 16:19 UTC (permalink / raw)
  To: Gustavo A. R. Silva, Armin Schindler, Karsten Keil; +Cc: netdev, linux-kernel
In-Reply-To: <20180330154648.GA13995@embeddedgus>

On Fri, 2018-03-30 at 10:46 -0500, Gustavo A. R. Silva wrote:
> Check on plci->internal_command is unnecessary.

Probably all of these are unnecessary too:

$ for length in {7..2} ; do \
    grep-2.5.4 -rP --include=*.[ch] -n "^\t{$length,$length}break;\n\t{$(($length-1)),$(($length-1))}break;" * ; \
  done
drivers/staging/wilc1000/wilc_wlan.c:691:				break;
			break;
drivers/media/dvb-frontends/drxd_hard.c:2261:				break;
			break;
drivers/media/dvb-frontends/drxd_hard.c:2266:				break;
			break;
drivers/media/usb/gspca/sn9c20x.c:1860:			break;
		break;
drivers/isdn/i4l/isdn_common.c:624:			break;
		break;
drivers/isdn/i4l/isdn_common.c:642:			break;
		break;
drivers/isdn/i4l/isdn_common.c:654:			break;
		break;
drivers/isdn/hardware/eicon/message.c:13890:			break;
		break;
sound/usb/mixer_quirks.c:1832:			break;
		break;

^ permalink raw reply

* Re: [PATCH v2 net-next 0/2] do not allow adding routes if disable_ipv6 is enabled
From: David Miller @ 2018-03-30 16:21 UTC (permalink / raw)
  To: lorenzo.bianconi; +Cc: netdev
In-Reply-To: <cover.1522312507.git.lorenzo.bianconi@redhat.com>

From: Lorenzo Bianconi <lorenzo.bianconi@redhat.com>
Date: Thu, 29 Mar 2018 11:02:23 +0200

> Do not allow userspace to add static ipv6 routes if disable_ipv6 is enabled.
> Update disable_ipv6 documentation according to that change
> 
> Changes since v1:
> - added an extack message telling the user that IPv6 is disabled on the nexthop
>   device
> - rebased on-top of net-next

Series applied, thanks Lorenzo.

^ permalink raw reply

* [PATCH iproute2-next] devlink: Print size of -1 as unlimited
From: David Ahern @ 2018-03-30 16:21 UTC (permalink / raw)
  To: netdev, jiri, arkadis; +Cc: David Ahern

(u64)-1  essentially means the size is unlimited. Print as 'unlimited'
as opposed to the current unsigned int range of 4294967295.

Signed-off-by: David Ahern <dsahern@gmail.com>
---
 devlink/devlink.c | 14 +++++++++++---
 1 file changed, 11 insertions(+), 3 deletions(-)

diff --git a/devlink/devlink.c b/devlink/devlink.c
index ba02064b848c..fa33684cb20a 100644
--- a/devlink/devlink.c
+++ b/devlink/devlink.c
@@ -1405,6 +1405,14 @@ static void pr_out_uint(struct dl *dl, const char *name, unsigned int val)
 	}
 }
 
+static void pr_out_u64(struct dl *dl, const char *name, uint64_t val)
+{
+	if (val == (uint64_t) -1)
+		return pr_out_str(dl, name, "unlimited");
+
+	return pr_out_uint(dl, name, val);
+}
+
 static void pr_out_dev(struct dl *dl, struct nlattr **tb)
 {
 	pr_out_handle(dl, tb);
@@ -4213,16 +4221,16 @@ static void resource_show(struct resource *resource,
 	pr_out_str(dl, "name", resource->name);
 	if (dl->verbose)
 		resource_path_print(dl, ctx->resources, resource->id);
-	pr_out_uint(dl, "size", resource->size);
+	pr_out_u64(dl, "size", resource->size);
 	if (resource->size != resource->size_new)
-		pr_out_uint(dl, "size_new", resource->size_new);
+		pr_out_u64(dl, "size_new", resource->size_new);
 	if (resource->occ_valid)
 		pr_out_uint(dl, "occ", resource->size_occ);
 	pr_out_str(dl, "unit", resource_unit_str_get(resource->unit));
 
 	if (resource->size_min != resource->size_max) {
 		pr_out_uint(dl, "size_min", resource->size_min);
-		pr_out_uint(dl, "size_max", resource->size_max);
+		pr_out_u64(dl, "size_max", resource->size_max);
 		pr_out_uint(dl, "size_gran", resource->size_gran);
 	}
 
-- 
2.11.0

^ permalink raw reply related

* Re: [net-next V7 PATCH 12/16] page_pool: refurbish version of page_pool code
From: kbuild test robot @ 2018-03-30 16:26 UTC (permalink / raw)
  To: Jesper Dangaard Brouer
  Cc: kbuild-all, netdev, BjörnTöpel, magnus.karlsson,
	eugenia, Jason Wang, John Fastabend, Eran Ben Elisha,
	Saeed Mahameed, galp, Jesper Dangaard Brouer, Daniel Borkmann,
	Alexei Starovoitov, Tariq Toukan
In-Reply-To: <152234291739.17048.7135649249513438321.stgit@firesoul>

[-- Attachment #1: Type: text/plain, Size: 1106 bytes --]

Hi Jesper,

Thank you for the patch! Yet something to improve:

[auto build test ERROR on net-next/master]

url:    https://github.com/0day-ci/linux/commits/Jesper-Dangaard-Brouer/XDP-redirect-memory-return-API/20180330-203122
config: m68k-sun3_defconfig (attached as .config)
compiler: m68k-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        make.cross ARCH=m68k 

All errors (new ones prefixed by >>):

   net/core/page_pool.o: In function `__page_pool_alloc_pages_slow':
>> page_pool.c:(.text+0x9a): undefined reference to `bad_dma_ops'
   page_pool.c:(.text+0xa8): undefined reference to `bad_dma_ops'
   net/core/page_pool.o: In function `__page_pool_clean_page.isra.0':
   page_pool.c:(.text+0x27a): undefined reference to `bad_dma_ops'

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 12283 bytes --]

^ permalink raw reply

* Re: [PATCH] net: mvneta: remove duplicate *_coal assignment
From: David Miller @ 2018-03-30 16:28 UTC (permalink / raw)
  To: Jisheng.Zhang; +Cc: thomas.petazzoni, netdev, linux-kernel, linux-arm-kernel
In-Reply-To: <20180329172940.4a5f592c@xhacker.debian>

From: Jisheng Zhang <Jisheng.Zhang@synaptics.com>
Date: Thu, 29 Mar 2018 17:29:40 +0800

> The style of the rx/tx queue's *_coal member assignment is:
> 
> static void foo_coal_set(...)
> {
> 	set the coal in hw;
> 	update queue's foo_coal member; [1]
> }
> 
> In other place, we call foo_coal_set(pp, queue->foo_coal), so the above [1]
> is duplicated and could be removed.
> 
> Signed-off-by: Jisheng Zhang <Jisheng.Zhang@synaptics.com>

Applied.

We could make this convention even more explicit by not passing
the coalescing parameter into these helpers, but instead using
the value in rxq->foo and txq->foo.

^ permalink raw reply

* [PATCH net-next] netdevsim: Change nsim_devlink_setup to return error to caller
From: David Ahern @ 2018-03-30 16:28 UTC (permalink / raw)
  To: netdev, jakub.kicinski; +Cc: David Ahern

Change nsim_devlink_setup to return any error back to the caller and
update nsim_init to handle it.

Requested-by: Jakub Kicinski <jakub.kicinski@netronome.com>
Signed-off-by: David Ahern <dsa@cumulusnetworks.com>
---
 drivers/net/netdevsim/devlink.c   | 12 +++++++-----
 drivers/net/netdevsim/netdev.c    |  6 +++++-
 drivers/net/netdevsim/netdevsim.h |  5 +++--
 3 files changed, 15 insertions(+), 8 deletions(-)

diff --git a/drivers/net/netdevsim/devlink.c b/drivers/net/netdevsim/devlink.c
index bbdcf064ba10..27ae05c5fdaf 100644
--- a/drivers/net/netdevsim/devlink.c
+++ b/drivers/net/netdevsim/devlink.c
@@ -218,22 +218,22 @@ void nsim_devlink_teardown(struct netdevsim *ns)
 	}
 }
 
-void nsim_devlink_setup(struct netdevsim *ns)
+int nsim_devlink_setup(struct netdevsim *ns)
 {
 	struct net *net = nsim_to_net(ns);
 	bool *reg_devlink = net_generic(net, nsim_devlink_id);
 	struct devlink *devlink;
-	int err = -ENOMEM;
+	int err;
 
 	/* only one device per namespace controls devlink */
 	if (!*reg_devlink) {
 		ns->devlink = NULL;
-		return;
+		return 0;
 	}
 
 	devlink = devlink_alloc(&nsim_devlink_ops, 0);
 	if (!devlink)
-		return;
+		return -ENOMEM;
 
 	err = devlink_register(devlink, &ns->dev);
 	if (err)
@@ -247,12 +247,14 @@ void nsim_devlink_setup(struct netdevsim *ns)
 
 	*reg_devlink = false;
 
-	return;
+	return 0;
 
 err_dl_unregister:
 	devlink_unregister(devlink);
 err_devlink_free:
 	devlink_free(devlink);
+
+	return err;
 }
 
 /* Initialize per network namespace state */
diff --git a/drivers/net/netdevsim/netdev.c b/drivers/net/netdevsim/netdev.c
index 8b30ab3ea2c2..ec68f38213d9 100644
--- a/drivers/net/netdevsim/netdev.c
+++ b/drivers/net/netdevsim/netdev.c
@@ -167,10 +167,14 @@ static int nsim_init(struct net_device *dev)
 
 	SET_NETDEV_DEV(dev, &ns->dev);
 
-	nsim_devlink_setup(ns);
+	err = nsim_devlink_setup(ns);
+	if (err)
+		goto err_unreg_dev;
 
 	return 0;
 
+err_unreg_dev:
+	device_unregister(&ns->dev);
 err_bpf_uninit:
 	nsim_bpf_uninit(ns);
 err_debugfs_destroy:
diff --git a/drivers/net/netdevsim/netdevsim.h b/drivers/net/netdevsim/netdevsim.h
index afb8cf90c0fd..3a8581af3b85 100644
--- a/drivers/net/netdevsim/netdevsim.h
+++ b/drivers/net/netdevsim/netdevsim.h
@@ -117,7 +117,7 @@ enum nsim_resource_id {
 	NSIM_RESOURCE_IPV6_FIB_RULES,
 };
 
-void nsim_devlink_setup(struct netdevsim *ns);
+int nsim_devlink_setup(struct netdevsim *ns);
 void nsim_devlink_teardown(struct netdevsim *ns);
 
 int nsim_devlink_init(void);
@@ -128,8 +128,9 @@ void nsim_fib_exit(void);
 u64 nsim_fib_get_val(struct net *net, enum nsim_resource_id res_id, bool max);
 int nsim_fib_set_max(struct net *net, enum nsim_resource_id res_id, u64 val);
 #else
-static inline void nsim_devlink_setup(struct netdevsim *ns)
+static inline int nsim_devlink_setup(struct netdevsim *ns)
 {
+	return 0;
 }
 
 static inline void nsim_devlink_teardown(struct netdevsim *ns)
-- 
2.11.0

^ permalink raw reply related

* Re: [PATCH v2 net-next 0/2] Fix TX Timeout and implement Safety Features
From: David Miller @ 2018-03-30 16:32 UTC (permalink / raw)
  To: Jose.Abreu; +Cc: netdev, Joao.Pinto, peppe.cavallaro, alexandre.torgue, andrew
In-Reply-To: <cover.1522315930.git.joabreu@synopsys.com>

From: Jose Abreu <Jose.Abreu@synopsys.com>
Date: Thu, 29 Mar 2018 10:40:17 +0100

> Fix the TX Timeout handler to correctly reconfigure the whole system and
> start implementing features for DWMAC5 cores, specifically the Safety
> Features.
> 
> Changes since v1:
> 	- Display error stats in ethtool

Series applied, thanks.

^ permalink raw reply

* Re: [PATCH] ISDN: eicon: message: remove redundant check
From: Gustavo A. R. Silva @ 2018-03-30 16:32 UTC (permalink / raw)
  To: Joe Perches, Armin Schindler, Karsten Keil; +Cc: netdev, linux-kernel
In-Reply-To: <1522426759.2210.46.camel@perches.com>



On 03/30/2018 11:19 AM, Joe Perches wrote:
> On Fri, 2018-03-30 at 10:46 -0500, Gustavo A. R. Silva wrote:
>> Check on plci->internal_command is unnecessary.
> 
> Probably all of these are unnecessary too:
> 
> $ for length in {7..2} ; do \
>      grep-2.5.4 -rP --include=*.[ch] -n "^\t{$length,$length}break;\n\t{$(($length-1)),$(($length-1))}break;" * ; \
>    done
> drivers/staging/wilc1000/wilc_wlan.c:691:				break;
> 			break;
> drivers/media/dvb-frontends/drxd_hard.c:2261:				break;
> 			break;
> drivers/media/dvb-frontends/drxd_hard.c:2266:				break;
> 			break;
> drivers/media/usb/gspca/sn9c20x.c:1860:			break;
> 		break;
> drivers/isdn/i4l/isdn_common.c:624:			break;
> 		break;
> drivers/isdn/i4l/isdn_common.c:642:			break;
> 		break;
> drivers/isdn/i4l/isdn_common.c:654:			break;
> 		break;
> drivers/isdn/hardware/eicon/message.c:13890:			break;
> 		break;
> sound/usb/mixer_quirks.c:1832:			break;
> 		break;
> 

Oh, cool.

I'll take a look at them.

Thanks, Joe.

^ permalink raw reply

* Re: [PATCH net-next] dt-bindings: net: renesas-ravb: Add support for r8a77470 SoC
From: David Miller @ 2018-03-30 16:32 UTC (permalink / raw)
  To: biju.das
  Cc: robh+dt, mark.rutland, linux, geert+renesas, sergei.shtylyov,
	horms, magnus.damm, chris.paterson2, fabrizio.castro, devicetree,
	linux-renesas-soc, linux-arm-kernel, netdev
In-Reply-To: <1522317775-35671-1-git-send-email-biju.das@bp.renesas.com>

From: Biju Das <biju.das@bp.renesas.com>
Date: Thu, 29 Mar 2018 11:02:55 +0100

> Add a new compatible string for the RZ/G1C (R8A77470) SoC.
> 
> Signed-off-by: Biju Das <biju.das@bp.renesas.com>
> Reviewed-by: Fabrizio Castro <fabrizio.castro@bp.renesas.com>

Applied.

^ permalink raw reply

* kernel BUG at /home/blee/project/race-fuzzer/kernels/kernel_v4.16-rc3/net/packet/af_packet.c:LINE!
From: DaeRyong Jeong @ 2018-03-30 16:33 UTC (permalink / raw)
  To: linux-kernel; +Cc: Byoungyoung Lee, Kyungtae Kim, netdev

We report the crash: kernel BUG at
/home/blee/project/race-fuzzer/kernels/kernel_v4.16-rc3/net/packet/af_packet.c:LINE!

This crash has been found in v4.16-rc3 using RaceFuzzer (a modified
version of Syzkaller), which we describe more at the end of this
report. Our analysis shows that the race occurs when invoking two
syscalls concurrently, (setsockopt$packet_int) and (bind$packet).
We have confirmed that the kernel v4.16-rc3, v4.16-rc7, and v4.15.14
built with gcc 7.1.0 are crashing by running the provided C repro
program within a few minutes (5 minutes).
Note that this crash can be triggered from the user space.

C repro code : https://kiwi.cs.purdue.edu/static/race-fuzzer/afpacket-setsockopt-bind-repro.c
kernel config v4.16-rc3 :
https://kiwi.cs.purdue.edu/static/race-fuzzer/afpacket-setsockopt-bind-v4.16-rc3.config
kernel config v4.16-rc7 :
https://kiwi.cs.purdue.edu/static/race-fuzzer/afpacket-setsockopt-bind-v4.16-rc7.config
kernel config v4.15.14 :
https://kiwi.cs.purdue.edu/static/race-fuzzer/afpacket-setsockopt-bind-v4.15.14.config

[  881.047513] ------------[ cut here ]------------
[  881.048416] kernel BUG at
/home/blee/project/race-fuzzer/kernels/kernel_v4.16-rc3/net/packet/af_packet.c:3107!
[  881.050014] invalid opcode: 0000 [#1] SMP KASAN
[  881.050698] Dumping ftrace buffer:
[  881.051244]    (ftrace buffer empty)
[  881.051768] Modules linked in:
[  881.052236] CPU: 1 PID: 18247 Comm: syz-executor0 Not tainted 4.16.0-rc3 #1
[  881.053247] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996),
BIOS rel-1.8.2-0-g33fbe13 by qemu-project.org 04/01/2014
[  881.054880] RIP: 0010:packet_do_bind+0x88d/0x950
[  881.055553] RSP: 0018:ffff8802231d7b08 EFLAGS: 00010212
[  881.056310] RAX: 0000000000010000 RBX: ffff8800af831740 RCX: ffffc900025ce000
[  881.057318] RDX: 00000000000000a5 RSI: ffffffff838b257d RDI: 0000000000000001
[  881.058301] RBP: ffff8802231d7c10 R08: ffff8802342f2480 R09: 0000000000000000
[  881.059298] R10: 0000000000000001 R11: 0000000000000000 R12: ffff8802309f8f00
[  881.060314] R13: 0000000000000000 R14: 0000000000000001 R15: 0000000000001000
[  881.061320] FS:  00007f7fab50d700(0000) GS:ffff88023fc00000(0000)
knlGS:0000000000000000
[  881.062467] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[  881.063285] CR2: 0000000020038000 CR3: 00000000b11c9000 CR4: 00000000000006e0
[  881.064317] Call Trace:
[  881.064686]  ? compat_packet_setsockopt+0x100/0x100
[  881.065430]  ? __sanitizer_cov_trace_const_cmp8+0x18/0x20
[  881.066188]  packet_bind+0xa2/0xe0
[  881.066690]  SYSC_bind+0x279/0x2f0
[  881.067180]  ? move_addr_to_kernel.part.19+0xc0/0xc0
[  881.067896]  ? do_futex+0x1e90/0x1e90
[  881.068435]  ? SyS_sched_getaffinity+0xe3/0x100
[  881.069112]  ? mark_held_locks+0x25/0xb0
[  881.069677]  ? SyS_socketpair+0x4a0/0x4a0
[  881.070265]  SyS_bind+0x24/0x30
[  881.070732]  do_syscall_64+0x209/0x5d0
[  881.071270]  ? syscall_return_slowpath+0x3e0/0x3e0
[  881.071929]  ? __sanitizer_cov_trace_const_cmp4+0x16/0x20
[  881.072675]  ? syscall_return_slowpath+0x260/0x3e0
[  881.073365]  ? mark_held_locks+0x25/0xb0
[  881.073950]  ? entry_SYSCALL_64_after_hwframe+0x52/0xb7
[  881.074693]  ? trace_hardirqs_off_caller+0xb5/0x120
[  881.075390]  ? trace_hardirqs_off_thunk+0x1a/0x1c
[  881.076079]  entry_SYSCALL_64_after_hwframe+0x42/0xb7
[  881.076797] RIP: 0033:0x453909
[  881.077238] RSP: 002b:00007f7fab50caf8 EFLAGS: 00000212 ORIG_RAX:
0000000000000031
[  881.078268] RAX: ffffffffffffffda RBX: 00000000007080d8 RCX: 0000000000453909
[  881.079239] RDX: 0000000000000014 RSI: 000000002001f000 RDI: 0000000000000015
[  881.080268] RBP: 0000000000000250 R08: 0000000000000000 R09: 0000000000000000
[  881.081256] R10: 0000000000000000 R11: 0000000000000212 R12: 00000000004a82d3
[  881.082272] R13: 00000000ffffffff R14: 0000000000000015 R15: 000000002001f000
[  881.083251] Code: c0 fd 48 c7 c2 00 c8 d9 84 be ab 02 00 00 48 c7
c7 60 c8 d9 84 c6 05 e7 a2 48 02 01 e8 3f 17 af fd e9 60 fb ff ff e8
43 b3 c0 fd <0f> 0b e8 3c b3 c0 fd 48 8b bd 20 ff ff ff e8 60 1e e7 fd
4c 89
[  881.085828] RIP: packet_do_bind+0x88d/0x950 RSP: ffff8802231d7b08
[  881.086619] ---[ end trace 9c461502752b4f3e ]---
[  881.087181] Kernel panic - not syncing: Fatal exception
[  881.088352] Dumping ftrace buffer:
[  881.088877]    (ftrace buffer empty)
[  881.089414] Kernel Offset: disabled
[  881.089950] Rebooting in 86400 seconds..

= About RaceFuzzer

RaceFuzzer is a customized version of Syzkaller, specifically tailored
to find race condition bugs in the Linux kernel. While we leverage
many different technique, the notable feature of RaceFuzzer is in
leveraging a custom hypervisor (QEMU/KVM) to interleave the
scheduling. In particular, we modified the hypervisor to intentionally
stall a per-core execution, which is similar to supporting per-core
breakpoint functionality. This allows RaceFuzzer to force the kernel
to deterministically trigger racy condition (which may rarely happen
in practice due to randomness in scheduling).

RaceFuzzer's C repro always pinpoints two racy syscalls. Since C
repro's scheduling synchronization should be performed at the user
space, its reproducibility is limited (reproduction may take from 1
second to 10 minutes (or even more), depending on a bug). This is
because, while RaceFuzzer precisely interleaves the scheduling at the
kernel's instruction level when finding this bug, C repro cannot fully
utilize such a feature. Please disregard all code related to
"should_hypercall" in the C repro, as this is only for our debugging
purposes using our own hypervisor.

^ permalink raw reply

* Re: [PATCH net-next 4/6] inet: frags: use rhashtables for reassembly units
From: Herbert Xu @ 2018-03-30 16:37 UTC (permalink / raw)
  To: Eric Dumazet
  Cc: Eric Dumazet, David S . Miller, netdev, Florian Westphal,
	Thomas Graf, Jesper Dangaard Brouer, Alexander Aring,
	Stefan Schmidt, Nikolay Aleksandrov
In-Reply-To: <bc46ffdc-e3c4-93be-39ab-76c2634f2c6e@gmail.com>

On Fri, Mar 30, 2018 at 06:30:42AM -0700, Eric Dumazet wrote:
> 
> I guess I will need to add a cond_resched() in it, right ?

I only ever run with preemption enabled :)

But yeah we should probably add some cond_rescheds to it.  While
you're at it you might want to add some to these functions too:
 - nested_table_free
 - bucket_table_alloc
 - rhashtable_rehash_table

Thanks,
-- 
Email: Herbert Xu <herbert@gondor.apana.org.au>
Home Page: http://gondor.apana.org.au/~herbert/
PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt

^ permalink raw reply

* [PATCH RESEND net-next 0/2] net_rwsem fixes
From: Kirill Tkhai @ 2018-03-30 16:38 UTC (permalink / raw)
  To: davem, zhangshengju, ktkhai, jakub.kicinski, dsahern, mschiffer,
	daniel, netdev

(Forgot to CC netdev@ :)

Hi,

there is wext_netdev_notifier_call()->wireless_nlevent_flush()
netdevice notifier, which takes net_rwsem, so we can't take
net_rwsem in {,un}register_netdevice_notifier().

Since {,un}register_netdevice_notifier() is executed under
pernet_ops_rwsem, net_namespace_list can't change, while we
holding it, so there is no need net_rwsem in these functions [1/2].

The same is in [2/2]. We make callers of __rtnl_link_unregister()
take pernet_ops_rwsem, and close the race with setup_net()
and cleanup_net(), so __rtnl_link_unregister() does not need it.
This also fixes the problem of that __rtnl_link_unregister() does
not see initializing and exiting nets.

Thanks,
Kirill
---

Kirill Tkhai (2):
      net: Remove net_rwsem from {,un}register_netdevice_notifier()
      net: Do not take net_rwsem in __rtnl_link_unregister()


 drivers/net/dummy.c      |    2 ++
 drivers/net/ifb.c        |    2 ++
 net/core/dev.c           |    5 -----
 net/core/net_namespace.c |    1 +
 net/core/rtnetlink.c     |    6 +++---
 5 files changed, 8 insertions(+), 8 deletions(-)

^ permalink raw reply


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox