<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/git/stable/linux.git/include/net/vrf.h, branch master</title>
<subtitle>Linux kernel stable tree</subtitle>
<id>https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/atom?h=master</id>
<link rel='self' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/'/>
<updated>2015-09-30T03:40:33+00:00</updated>
<entry>
<title>net: Remove vrf header file</title>
<updated>2015-09-30T03:40:33+00:00</updated>
<author>
<name>David Ahern</name>
<email>dsa@cumulusnetworks.com</email>
</author>
<published>2015-09-30T03:07:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=ec539514e56284b21c47468f23f7d01ff882f51b'/>
<id>urn:sha1:ec539514e56284b21c47468f23f7d01ff882f51b</id>
<content type='text'>
Move remaining structs to VRF driver and delete the vrf header file.

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: Remove the now unused vrf_ptr</title>
<updated>2015-09-30T03:40:33+00:00</updated>
<author>
<name>David Ahern</name>
<email>dsa@cumulusnetworks.com</email>
</author>
<published>2015-09-30T03:07:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=93a7e7e837af6846052481da974320c19ab82e5c'/>
<id>urn:sha1:93a7e7e837af6846052481da974320c19ab82e5c</id>
<content type='text'>
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: Replace calls to vrf_dev_get_rth</title>
<updated>2015-09-30T03:40:33+00:00</updated>
<author>
<name>David Ahern</name>
<email>dsa@cumulusnetworks.com</email>
</author>
<published>2015-09-30T03:07:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=8e1ed7058b3c79b085cf5b1529698a157499074c'/>
<id>urn:sha1:8e1ed7058b3c79b085cf5b1529698a157499074c</id>
<content type='text'>
Replace calls to vrf_dev_get_rth with l3mdev_get_rtable.
The check on the flow flags is handled in the l3mdev operation.

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: Replace vrf_dev_table and friends</title>
<updated>2015-09-30T03:40:33+00:00</updated>
<author>
<name>David Ahern</name>
<email>dsa@cumulusnetworks.com</email>
</author>
<published>2015-09-30T03:07:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=3236b0042ba6555b45d75b6be12922922e17d66e'/>
<id>urn:sha1:3236b0042ba6555b45d75b6be12922922e17d66e</id>
<content type='text'>
Replace calls to vrf_dev_table and friends with l3mdev_fib_table
and kin.

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: Replace vrf_master_ifindex{, _rcu} with l3mdev equivalents</title>
<updated>2015-09-30T03:40:33+00:00</updated>
<author>
<name>David Ahern</name>
<email>dsa@cumulusnetworks.com</email>
</author>
<published>2015-09-30T03:07:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=385add906b6155e8bc64035ad56fb8ccfef925f7'/>
<id>urn:sha1:385add906b6155e8bc64035ad56fb8ccfef925f7</id>
<content type='text'>
Replace calls to vrf_master_ifindex_rcu and vrf_master_ifindex with either
l3mdev_master_ifindex_rcu or l3mdev_master_ifindex.

The pattern:
    oif = vrf_master_ifindex(dev) ? : dev-&gt;ifindex;
is replaced with
    oif = l3mdev_fib_oif(dev);

And remove the now unused vrf macros.

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: Rename IFF_VRF_MASTER to IFF_L3MDEV_MASTER</title>
<updated>2015-09-30T03:40:32+00:00</updated>
<author>
<name>David Ahern</name>
<email>dsa@cumulusnetworks.com</email>
</author>
<published>2015-09-30T03:07:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=007979eaf94d1c888d8c7cf8a5250c2c6c9bd98e'/>
<id>urn:sha1:007979eaf94d1c888d8c7cf8a5250c2c6c9bd98e</id>
<content type='text'>
Rename IFF_VRF_MASTER to IFF_L3MDEV_MASTER and update the name of the
netif_is_vrf and netif_index_is_vrf macros.

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: Make table id type u32</title>
<updated>2015-09-01T21:32:44+00:00</updated>
<author>
<name>David Ahern</name>
<email>dsa@cumulusnetworks.com</email>
</author>
<published>2015-09-01T20:26:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/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:20+00:00</updated>
<author>
<name>Nikolay Aleksandrov</name>
<email>nikolay@cumulusnetworks.com</email>
</author>
<published>2015-08-18T18:40:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/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:52+00:00</updated>
<author>
<name>Nikolay Aleksandrov</name>
<email>nikolay@cumulusnetworks.com</email>
</author>
<published>2015-08-18T17:28:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/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:57+00:00</updated>
<author>
<name>David Ahern</name>
<email>dsa@cumulusnetworks.com</email>
</author>
<published>2015-08-16T23:13:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/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>
</feed>
