<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/drivers/net/ipvlan, branch v4.3</title>
<subtitle>Mirror of https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/
</subtitle>
<id>https://git.shady.money/linux/atom?h=v4.3</id>
<link rel='self' href='https://git.shady.money/linux/atom?h=v4.3'/>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/'/>
<updated>2015-08-18T18:55:06Z</updated>
<entry>
<title>net: ipvlan: convert to using IFF_NO_QUEUE</title>
<updated>2015-08-18T18:55:06Z</updated>
<author>
<name>Phil Sutter</name>
<email>phil@nwl.cc</email>
</author>
<published>2015-08-18T08:30:40Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=bf485bcf0df5dcb01b723efc9d5887329e515aa7'/>
<id>urn:sha1:bf485bcf0df5dcb01b723efc9d5887329e515aa7</id>
<content type='text'>
Signed-off-by: Phil Sutter &lt;phil@nwl.cc&gt;
Cc: Mahesh Bandewar &lt;maheshb@google.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>ipvlan: ignore addresses from ipv6 autoconfiguration</title>
<updated>2015-07-16T04:33:40Z</updated>
<author>
<name>Konstantin Khlebnikov</name>
<email>khlebnikov@yandex-team.ru</email>
</author>
<published>2015-07-14T13:35:55Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=23a5a49c83dd8a7201a42e96d24238bde3547c11'/>
<id>urn:sha1:23a5a49c83dd8a7201a42e96d24238bde3547c11</id>
<content type='text'>
Inet6addr notifier is atomic and runs in bh context without RTNL when
ipv6 receives router advertisement packet and performs autoconfiguration.

Proper fix still in discussion. Let's at least plug the bug.
v1: http://lkml.kernel.org/r/20150514135618.14062.1969.stgit@buzz
v2: http://lkml.kernel.org/r/20150703125840.24121.91556.stgit@buzz

Signed-off-by: Konstantin Khlebnikov &lt;khlebnikov@yandex-team.ru&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>ipvlan: use rcu_deference_bh() in ipvlan_queue_xmit()</title>
<updated>2015-07-16T04:33:40Z</updated>
<author>
<name>WANG Cong</name>
<email>xiyou.wangcong@gmail.com</email>
</author>
<published>2015-07-14T13:35:54Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=0fba37a3af03a7e74bf9e75473729adb98da49c3'/>
<id>urn:sha1:0fba37a3af03a7e74bf9e75473729adb98da49c3</id>
<content type='text'>
In tx path rcu_read_lock_bh() is held, so we need rcu_deference_bh().
This fixes the following warning:

 ===============================
 [ INFO: suspicious RCU usage. ]
 4.1.0-rc1+ #1007 Not tainted
 -------------------------------
 drivers/net/ipvlan/ipvlan.h:106 suspicious rcu_dereference_check() usage!

 other info that might help us debug this:

 rcu_scheduler_active = 1, debug_locks = 0
 1 lock held by dhclient/1076:
  #0:  (rcu_read_lock_bh){......}, at: [&lt;ffffffff817e8d84&gt;] rcu_lock_acquire+0x0/0x26

 stack backtrace:
 CPU: 2 PID: 1076 Comm: dhclient Not tainted 4.1.0-rc1+ #1007
 Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
  0000000000000001 ffff8800d381bac8 ffffffff81a4154f 000000003c1a3c19
  ffff8800d4d0a690 ffff8800d381baf8 ffffffff810b849f ffff880117d41148
  ffff880117d40000 ffff880117d40068 0000000000000156 ffff8800d381bb18
 Call Trace:
  [&lt;ffffffff81a4154f&gt;] dump_stack+0x4c/0x65
  [&lt;ffffffff810b849f&gt;] lockdep_rcu_suspicious+0x107/0x110
  [&lt;ffffffff8165a522&gt;] ipvlan_port_get_rcu+0x47/0x4e
  [&lt;ffffffff8165ad14&gt;] ipvlan_queue_xmit+0x35/0x450
  [&lt;ffffffff817ea45d&gt;] ? rcu_read_unlock+0x3e/0x5f
  [&lt;ffffffff810a20bf&gt;] ? local_clock+0x19/0x22
  [&lt;ffffffff810b4781&gt;] ? __lock_is_held+0x39/0x52
  [&lt;ffffffff8165b64c&gt;] ipvlan_start_xmit+0x1b/0x44
  [&lt;ffffffff817edf7f&gt;] dev_hard_start_xmit+0x2ae/0x467
  [&lt;ffffffff817ee642&gt;] __dev_queue_xmit+0x50a/0x60c
  [&lt;ffffffff817ee7a7&gt;] dev_queue_xmit_sk+0x13/0x15
  [&lt;ffffffff81997596&gt;] dev_queue_xmit+0x10/0x12
  [&lt;ffffffff8199b41c&gt;] packet_sendmsg+0xb6b/0xbdf
  [&lt;ffffffff810b5ea7&gt;] ? mark_lock+0x2e/0x226
  [&lt;ffffffff810a1fcc&gt;] ? sched_clock_cpu+0x9e/0xb7
  [&lt;ffffffff817d56f9&gt;] sock_sendmsg_nosec+0x12/0x1d
  [&lt;ffffffff817d7257&gt;] sock_sendmsg+0x29/0x2e
  [&lt;ffffffff817d72cc&gt;] sock_write_iter+0x70/0x91
  [&lt;ffffffff81199563&gt;] __vfs_write+0x7e/0xa7
  [&lt;ffffffff811996bc&gt;] vfs_write+0x92/0xe8
  [&lt;ffffffff811997d7&gt;] SyS_write+0x47/0x7e
  [&lt;ffffffff81a4d517&gt;] system_call_fastpath+0x12/0x6f

Fixes: 2ad7bf363841 ("ipvlan: Initial check-in of the IPVLAN driver.")
Cc: Mahesh Bandewar &lt;maheshb@google.com&gt;
Signed-off-by: Cong Wang &lt;xiyou.wangcong@gmail.com&gt;
Acked-by: Mahesh Bandewar &lt;maheshb@google.com&gt;
Acked-by: Konstantin Khlebnikov &lt;khlebnikov@yandex-team.ru&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>ipvlan: unhash addresses without synchronize_rcu</title>
<updated>2015-07-16T04:33:39Z</updated>
<author>
<name>Konstantin Khlebnikov</name>
<email>khlebnikov@yandex-team.ru</email>
</author>
<published>2015-07-14T13:35:53Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=6640e673c6f3dbaace085ca2686a8a343dc23a71'/>
<id>urn:sha1:6640e673c6f3dbaace085ca2686a8a343dc23a71</id>
<content type='text'>
All structures used in traffic forwarding are rcu-protected:
ipvl_addr, ipvl_dev and ipvl_port. Thus we can unhash addresses
without synchronization. We'll anyway hash it back into the same
bucket: in worst case lockless lookup will scan hash once again.

Signed-off-by: Konstantin Khlebnikov &lt;khlebnikov@yandex-team.ru&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>ipvlan: plug memory leak in ipvlan_link_delete</title>
<updated>2015-07-16T04:33:39Z</updated>
<author>
<name>Konstantin Khlebnikov</name>
<email>khlebnikov@yandex-team.ru</email>
</author>
<published>2015-07-14T13:35:51Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=6a725497318545aae246232ed05a8df9cffb0a02'/>
<id>urn:sha1:6a725497318545aae246232ed05a8df9cffb0a02</id>
<content type='text'>
Add missing kfree_rcu(addr, rcu);

Signed-off-by: Konstantin Khlebnikov &lt;khlebnikov@yandex-team.ru&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>ipvlan: remove counters of ipv4 and ipv6 addresses</title>
<updated>2015-07-16T04:33:39Z</updated>
<author>
<name>Konstantin Khlebnikov</name>
<email>khlebnikov@yandex-team.ru</email>
</author>
<published>2015-07-14T13:35:50Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=515866f8185b92fb18a782408c53839f003c7669'/>
<id>urn:sha1:515866f8185b92fb18a782408c53839f003c7669</id>
<content type='text'>
They are unused after commit f631c44bbe15 ("ipvlan: Always set broadcast bit in
multicast filter").

Signed-off-by: Konstantin Khlebnikov &lt;khlebnikov@yandex-team.ru&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>ipvlan: Always set broadcast bit in multicast filter</title>
<updated>2015-05-05T23:29:49Z</updated>
<author>
<name>Mahesh Bandewar</name>
<email>maheshb@google.com</email>
</author>
<published>2015-05-05T00:06:11Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=f631c44bbe1581d18d0aba628b3802d0eacb6373'/>
<id>urn:sha1:f631c44bbe1581d18d0aba628b3802d0eacb6373</id>
<content type='text'>
Earlier tricks of setting broadcast bit only when IPv4 address is added
onto interface are not good enough especially when autoconf comes in play.
Setting them on always is performance drag but now that multicast /
broadcast is not processed in fast-path; enabling broadcast will let
autoconf work correctly without affecting performance characteristics of
the device.

Signed-off-by: Mahesh Bandewar &lt;maheshb@google.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>ipvlan: Defer multicast / broadcast processing to a work-queue</title>
<updated>2015-05-05T23:29:49Z</updated>
<author>
<name>Mahesh Bandewar</name>
<email>maheshb@google.com</email>
</author>
<published>2015-05-05T00:06:03Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=ba35f8588f474d5bf8988615b04ee722a2684fd2'/>
<id>urn:sha1:ba35f8588f474d5bf8988615b04ee722a2684fd2</id>
<content type='text'>
Processing multicast / broadcast in fast path is performance draining
and having more links means more cloning and bringing performance
down further.

Broadcast; in particular, need to be given to all the virtual links.
Earlier tricks of enabling broadcast bit for IPv4 only interfaces are not
really working since it fails autoconf. Which means enabling broadcast
for all the links if protocol specific hacks do not have to be added into
the driver.

This patch defers all (incoming as well as outgoing) multicast traffic to
a work-queue leaving only the unicast traffic in the fast-path. Now if we
need to apply any additional tricks to further reduce the impact of this
(multicast / broadcast) type of traffic, it can be implemented while
processing this work without affecting the fast-path.

Signed-off-by: Mahesh Bandewar &lt;maheshb@google.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net</title>
<updated>2015-04-02T20:16:53Z</updated>
<author>
<name>David S. Miller</name>
<email>davem@davemloft.net</email>
</author>
<published>2015-04-02T20:16:53Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=9f0d34bc344889c2e6c593bd949d7ab821f0f4a5'/>
<id>urn:sha1:9f0d34bc344889c2e6c593bd949d7ab821f0f4a5</id>
<content type='text'>
Conflicts:
	drivers/net/usb/asix_common.c
	drivers/net/usb/sr9800.c
	drivers/net/usb/usbnet.c
	include/linux/usb/usbnet.h
	net/ipv4/tcp_ipv4.c
	net/ipv6/tcp_ipv6.c

The TCP conflicts were overlapping changes.  In 'net' we added a
READ_ONCE() to the socket cached RX route read, whilst in 'net-next'
Eric Dumazet touched the surrounding code dealing with how mini
sockets are handled.

With USB, it's a case of the same bug fix first going into net-next
and then I cherry picked it back into net.

Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>ipvlan: implement ndo_get_iflink</title>
<updated>2015-04-02T18:05:00Z</updated>
<author>
<name>Nicolas Dichtel</name>
<email>nicolas.dichtel@6wind.com</email>
</author>
<published>2015-04-02T15:07:06Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=7c4116588b2ad5f45c693e0f12b612b621604c92'/>
<id>urn:sha1:7c4116588b2ad5f45c693e0f12b612b621604c92</id>
<content type='text'>
Don't use dev-&gt;iflink anymore.

CC: Mahesh Bandewar &lt;maheshb@google.com&gt;
Signed-off-by: Nicolas Dichtel &lt;nicolas.dichtel@6wind.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
</feed>
