<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux/include/net/vrf.h, 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-09-01T21:32:44Z</updated>
<entry>
<title>net: Make table id type u32</title>
<updated>2015-09-01T21:32:44Z</updated>
<author>
<name>David Ahern</name>
<email>dsa@cumulusnetworks.com</email>
</author>
<published>2015-09-01T20:26:35Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=9b8ff51822893e743eee09350c1928daa3ef503f'/>
<id>urn:sha1:9b8ff51822893e743eee09350c1928daa3ef503f</id>
<content type='text'>
A number of VRF patches used 'int' for table id. It should be u32 to be
consistent with the rest of the stack.

Fixes:
4e3c89920cd3a ("net: Introduce VRF related flags and helpers")
15be405eb2ea9 ("net: Add inet_addr lookup by table")
30bbaa1950055 ("net: Fix up inet_addr_type checks")
021dd3b8a142d ("net: Add routes to the table associated with the device")
dc028da54ed35 ("inet: Move VRF table lookup to inlined function")
f6d3c19274c74 ("net: FIB tracepoints")

Signed-off-by: David Ahern &lt;dsa@cumulusnetworks.com&gt;
Reviewed-by: Nikolay Aleksandrov &lt;nikolay@cumulusnetworks.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>vrf: vrf_master_ifindex_rcu is not always called with rcu read lock</title>
<updated>2015-08-20T05:13:20Z</updated>
<author>
<name>Nikolay Aleksandrov</name>
<email>nikolay@cumulusnetworks.com</email>
</author>
<published>2015-08-18T18:40:16Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=18041e31743d278b6323518d20a2ef656c3cc689'/>
<id>urn:sha1:18041e31743d278b6323518d20a2ef656c3cc689</id>
<content type='text'>
While running net-next I hit this:
[  634.073119] ===============================
[  634.073150] [ INFO: suspicious RCU usage. ]
[  634.073182] 4.2.0-rc6+ #45 Not tainted
[  634.073213] -------------------------------
[  634.073244] include/net/vrf.h:38 suspicious rcu_dereference_check()
usage!
[  634.073274]
               other info that might help us debug this:

[  634.073307]
               rcu_scheduler_active = 1, debug_locks = 1
[  634.073338] 2 locks held by swapper/0/0:
[  634.073369]  #0:  (((&amp;n-&gt;timer))){+.-...}, at: [&lt;ffffffff8112bc35&gt;]
call_timer_fn+0x5/0x480
[  634.073412]  #1:  (slock-AF_INET){+.-...}, at: [&lt;ffffffff8174f0f5&gt;]
icmp_send+0x155/0x5f0
[  634.073450]
               stack backtrace:
[  634.073483] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.2.0-rc6+ #45
[  634.073514] Hardware name: innotek GmbH VirtualBox/VirtualBox, BIOS
VirtualBox 12/01/2006
[  634.073545]  0000000000000000 0593ba8242d9ace4 ffff88002fc03b48
ffffffff81803f1b
[  634.073612]  0000000000000000 ffffffff81e12500 ffff88002fc03b78
ffffffff811003c5
[  634.073642]  0000000000000000 ffff88002ec4e600 ffffffff81f00f80
ffff88002fc03cf0
[  634.073669] Call Trace:
[  634.073694]  &lt;IRQ&gt;  [&lt;ffffffff81803f1b&gt;] dump_stack+0x4c/0x65
[  634.073728]  [&lt;ffffffff811003c5&gt;] lockdep_rcu_suspicious+0xc5/0x100
[  634.073763]  [&lt;ffffffff8174eb56&gt;] icmp_route_lookup+0x176/0x5c0
[  634.073793]  [&lt;ffffffff8174f2fb&gt;] ? icmp_send+0x35b/0x5f0
[  634.073818]  [&lt;ffffffff8174f274&gt;] ? icmp_send+0x2d4/0x5f0
[  634.073844]  [&lt;ffffffff8174f3ce&gt;] icmp_send+0x42e/0x5f0
[  634.073873]  [&lt;ffffffff8170b662&gt;] ipv4_link_failure+0x22/0xa0
[  634.073899]  [&lt;ffffffff8174bdda&gt;] arp_error_report+0x3a/0x80
[  634.073926]  [&lt;ffffffff816d6100&gt;] ? neigh_lookup+0x2c0/0x2c0
[  634.073952]  [&lt;ffffffff816d396e&gt;] neigh_invalidate+0x8e/0x110
[  634.073984]  [&lt;ffffffff816d62ae&gt;] neigh_timer_handler+0x1ae/0x290
[  634.074013]  [&lt;ffffffff816d6100&gt;] ? neigh_lookup+0x2c0/0x2c0
[  634.074013]  [&lt;ffffffff8112bce3&gt;] call_timer_fn+0xb3/0x480
[  634.074013]  [&lt;ffffffff8112bc35&gt;] ? call_timer_fn+0x5/0x480
[  634.074013]  [&lt;ffffffff816d6100&gt;] ? neigh_lookup+0x2c0/0x2c0
[  634.074013]  [&lt;ffffffff8112c2bc&gt;] run_timer_softirq+0x20c/0x430
[  634.074013]  [&lt;ffffffff810af50e&gt;] __do_softirq+0xde/0x630
[  634.074013]  [&lt;ffffffff810afc97&gt;] irq_exit+0x117/0x120
[  634.074013]  [&lt;ffffffff81810976&gt;] smp_apic_timer_interrupt+0x46/0x60
[  634.074013]  [&lt;ffffffff8180e950&gt;] apic_timer_interrupt+0x70/0x80
[  634.074013]  &lt;EOI&gt;  [&lt;ffffffff8106b9d6&gt;] ? native_safe_halt+0x6/0x10
[  634.074013]  [&lt;ffffffff81101d8d&gt;] ? trace_hardirqs_on+0xd/0x10
[  634.074013]  [&lt;ffffffff81027d43&gt;] default_idle+0x23/0x200
[  634.074013]  [&lt;ffffffff8102852f&gt;] arch_cpu_idle+0xf/0x20
[  634.074013]  [&lt;ffffffff810f89ba&gt;] default_idle_call+0x2a/0x40
[  634.074013]  [&lt;ffffffff810f8dcc&gt;] cpu_startup_entry+0x39c/0x4c0
[  634.074013]  [&lt;ffffffff817f9cad&gt;] rest_init+0x13d/0x150
[  634.074013]  [&lt;ffffffff81f69038&gt;] start_kernel+0x4a8/0x4c9
[  634.074013]  [&lt;ffffffff81f68120&gt;] ?
early_idt_handler_array+0x120/0x120
[  634.074013]  [&lt;ffffffff81f68339&gt;] x86_64_start_reservations+0x2a/0x2c
[  634.074013]  [&lt;ffffffff81f68485&gt;] x86_64_start_kernel+0x14a/0x16d

It would seem vrf_master_ifindex_rcu() can be called without RCU held in
other contexts as well so introduce a new helper which acquires rcu and
returns the ifindex.
Also add curly braces around both the "if" and "else" parts as per the
style guide.

Signed-off-by: Nikolay Aleksandrov &lt;nikolay@cumulusnetworks.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>vrf: drop unused num_slaves member</title>
<updated>2015-08-19T03:16:52Z</updated>
<author>
<name>Nikolay Aleksandrov</name>
<email>nikolay@cumulusnetworks.com</email>
</author>
<published>2015-08-18T17:28:02Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=db5dbec5ef2d4565bb8d42709802de66b06f9965'/>
<id>urn:sha1:db5dbec5ef2d4565bb8d42709802de66b06f9965</id>
<content type='text'>
slave_queue has a num_slaves member which is unused, drop it.

Signed-off-by: Nikolay Aleksandrov &lt;nikolay@cumulusnetworks.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>inet: Move VRF table lookup to inlined function</title>
<updated>2015-08-17T22:58:57Z</updated>
<author>
<name>David Ahern</name>
<email>dsa@cumulusnetworks.com</email>
</author>
<published>2015-08-16T23:13:27Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=dc028da54ed353edd44dca88b7eb19fd5126c354'/>
<id>urn:sha1:dc028da54ed353edd44dca88b7eb19fd5126c354</id>
<content type='text'>
Table lookup compiles out when VRF is not enabled.

Signed-off-by: David Ahern &lt;dsa@cumulusnetworks.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: Introduce VRF related flags and helpers</title>
<updated>2015-08-14T05:43:20Z</updated>
<author>
<name>David Ahern</name>
<email>dsa@cumulusnetworks.com</email>
</author>
<published>2015-08-13T20:59:00Z</published>
<link rel='alternate' type='text/html' href='https://git.shady.money/linux/commit/?id=4e3c89920cd3a6cfce22c6f537690747c26128dd'/>
<id>urn:sha1:4e3c89920cd3a6cfce22c6f537690747c26128dd</id>
<content type='text'>
Add a VRF_MASTER flag for interfaces and helper functions for determining
if a device is a VRF_MASTER.

Add link attribute for passing VRF_TABLE id.

Add vrf_ptr to netdevice.

Add various macros for determining if a device is a VRF device, the index
of the master VRF device and table associated with VRF device.

Signed-off-by: Shrijeet Mukherjee &lt;shm@cumulusnetworks.com&gt;
Signed-off-by: David Ahern &lt;dsa@cumulusnetworks.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
</feed>
