<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/infiniband/core/cm.c, branch linux-4.8.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.8.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-4.8.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2016-11-26T08:56:58Z</updated>
<entry>
<title>IB/cm: Mark stale CM id's whenever the mad agent was unregistered</title>
<updated>2016-11-26T08:56:58Z</updated>
<author>
<name>Mark Bloch</name>
</author>
<published>2016-10-27T13:36:27Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=fd4251fa4d094d57b7e4ccd673350ce2f3d15be9'/>
<id>urn:sha1:fd4251fa4d094d57b7e4ccd673350ce2f3d15be9</id>
<content type='text'>
commit 9db0ff53cb9b43ed75bacd42a89c1a0ab048b2b0 upstream.

When there is a CM id object that has port assigned to it, it means that
the cm-id asked for the specific port that it should go by it, but if
that port was removed (hot-unplug event) the cm-id was not updated.
In order to fix that the port keeps a list of all the cm-id's that are
planning to go by it, whenever the port is removed it marks all of them
as invalid.

This commit fixes a kernel panic which happens when running traffic between
guests and we force reboot a guest mid traffic, it triggers a kernel panic:

 Call Trace:
  [&lt;ffffffff815271fa&gt;] ? panic+0xa7/0x16f
  [&lt;ffffffff8152b534&gt;] ? oops_end+0xe4/0x100
  [&lt;ffffffff8104a00b&gt;] ? no_context+0xfb/0x260
  [&lt;ffffffff81084db2&gt;] ? del_timer_sync+0x22/0x30
  [&lt;ffffffff8104a295&gt;] ? __bad_area_nosemaphore+0x125/0x1e0
  [&lt;ffffffff81084240&gt;] ? process_timeout+0x0/0x10
  [&lt;ffffffff8104a363&gt;] ? bad_area_nosemaphore+0x13/0x20
  [&lt;ffffffff8104aabf&gt;] ? __do_page_fault+0x31f/0x480
  [&lt;ffffffff81065df0&gt;] ? default_wake_function+0x0/0x20
  [&lt;ffffffffa0752675&gt;] ? free_msg+0x55/0x70 [mlx5_core]
  [&lt;ffffffffa0753434&gt;] ? cmd_exec+0x124/0x840 [mlx5_core]
  [&lt;ffffffff8105a924&gt;] ? find_busiest_group+0x244/0x9f0
  [&lt;ffffffff8152d45e&gt;] ? do_page_fault+0x3e/0xa0
  [&lt;ffffffff8152a815&gt;] ? page_fault+0x25/0x30
  [&lt;ffffffffa024da25&gt;] ? cm_alloc_msg+0x35/0xc0 [ib_cm]
  [&lt;ffffffffa024e821&gt;] ? ib_send_cm_dreq+0xb1/0x1e0 [ib_cm]
  [&lt;ffffffffa024f836&gt;] ? cm_destroy_id+0x176/0x320 [ib_cm]
  [&lt;ffffffffa024fb00&gt;] ? ib_destroy_cm_id+0x10/0x20 [ib_cm]
  [&lt;ffffffffa034f527&gt;] ? ipoib_cm_free_rx_reap_list+0xa7/0x110 [ib_ipoib]
  [&lt;ffffffffa034f590&gt;] ? ipoib_cm_rx_reap+0x0/0x20 [ib_ipoib]
  [&lt;ffffffffa034f5a5&gt;] ? ipoib_cm_rx_reap+0x15/0x20 [ib_ipoib]
  [&lt;ffffffff81094d20&gt;] ? worker_thread+0x170/0x2a0
  [&lt;ffffffff8109b2a0&gt;] ? autoremove_wake_function+0x0/0x40
  [&lt;ffffffff81094bb0&gt;] ? worker_thread+0x0/0x2a0
  [&lt;ffffffff8109aef6&gt;] ? kthread+0x96/0xa0
  [&lt;ffffffff8100c20a&gt;] ? child_rip+0xa/0x20
  [&lt;ffffffff8109ae60&gt;] ? kthread+0x0/0xa0
  [&lt;ffffffff8100c200&gt;] ? child_rip+0x0/0x20

Fixes: a977049dacde ("[PATCH] IB: Add the kernel CM implementation")
Signed-off-by: Mark Bloch &lt;markb@mellanox.com&gt;
Signed-off-by: Erez Shitrit &lt;erezsh@mellanox.com&gt;
Reviewed-by: Maor Gottlieb &lt;maorg@mellanox.com&gt;
Signed-off-by: Leon Romanovsky &lt;leon@kernel.org&gt;
Signed-off-by: Doug Ledford &lt;dledford@redhat.com&gt;
Signed-off-by: Greg Kroah-Hartman &lt;gregkh@linuxfoundation.org&gt;

</content>
</entry>
<entry>
<title>IB/cm: Fix a recently introduced locking bug</title>
<updated>2016-06-06T22:55:53Z</updated>
<author>
<name>Bart Van Assche</name>
</author>
<published>2016-03-25T15:33:16Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=943f44d94aa26bfdcaafc40d3701e24eeb58edce'/>
<id>urn:sha1:943f44d94aa26bfdcaafc40d3701e24eeb58edce</id>
<content type='text'>
ib_cm_notify() can be called from interrupt context. Hence do not
reenable interrupts unconditionally in cm_establish().

This patch avoids that lockdep reports the following warning:

WARNING: CPU: 0 PID: 23317 at kernel/locking/lockdep.c:2624 trace _hardirqs_on_caller+0x112/0x1b0
DEBUG_LOCKS_WARN_ON(current-&gt;hardirq_context)
Call Trace:
 &lt;IRQ&gt;  [&lt;ffffffff812bd0e5&gt;] dump_stack+0x67/0x92
 [&lt;ffffffff81056f21&gt;] __warn+0xc1/0xe0
 [&lt;ffffffff81056f8a&gt;] warn_slowpath_fmt+0x4a/0x50
 [&lt;ffffffff810a5932&gt;] trace_hardirqs_on_caller+0x112/0x1b0
 [&lt;ffffffff810a59dd&gt;] trace_hardirqs_on+0xd/0x10
 [&lt;ffffffff815992c7&gt;] _raw_spin_unlock_irq+0x27/0x40
 [&lt;ffffffffa0382e9c&gt;] ib_cm_notify+0x25c/0x290 [ib_cm]
 [&lt;ffffffffa068fbc1&gt;] srpt_qp_event+0xa1/0xf0 [ib_srpt]
 [&lt;ffffffffa04efb97&gt;] mlx4_ib_qp_event+0x67/0xd0 [mlx4_ib]
 [&lt;ffffffffa034ec0a&gt;] mlx4_qp_event+0x5a/0xc0 [mlx4_core]
 [&lt;ffffffffa03365f8&gt;] mlx4_eq_int+0x3d8/0xcf0 [mlx4_core]
 [&lt;ffffffffa0336f9c&gt;] mlx4_msi_x_interrupt+0xc/0x20 [mlx4_core]
 [&lt;ffffffff810b0914&gt;] handle_irq_event_percpu+0x64/0x100
 [&lt;ffffffff810b09e4&gt;] handle_irq_event+0x34/0x60
 [&lt;ffffffff810b3a6a&gt;] handle_edge_irq+0x6a/0x150
 [&lt;ffffffff8101ad05&gt;] handle_irq+0x15/0x20
 [&lt;ffffffff8101a66c&gt;] do_IRQ+0x5c/0x110
 [&lt;ffffffff8159a2c9&gt;] common_interrupt+0x89/0x89
 [&lt;ffffffff81297a17&gt;] blk_run_queue_async+0x37/0x40
 [&lt;ffffffffa0163e53&gt;] rq_completed+0x43/0x70 [dm_mod]
 [&lt;ffffffffa0164896&gt;] dm_softirq_done+0x176/0x280 [dm_mod]
 [&lt;ffffffff812a26c2&gt;] blk_done_softirq+0x52/0x90
 [&lt;ffffffff8105bc1f&gt;] __do_softirq+0x10f/0x230
 [&lt;ffffffff8105bec8&gt;] irq_exit+0xa8/0xb0
 [&lt;ffffffff8103653e&gt;] smp_trace_call_function_single_interrupt+0x2e/0x30
 [&lt;ffffffff81036549&gt;] smp_call_function_single_interrupt+0x9/0x10
 [&lt;ffffffff8159a959&gt;] call_function_single_interrupt+0x89/0x90
 &lt;EOI&gt;

Fixes: commit be4b499323bf (IB/cm: Do not queue work to a device that's going away)
Signed-off-by: Bart Van Assche &lt;bart.vanassche@sandisk.com&gt;
Cc: Erez Shitrit &lt;erezsh@mellanox.com&gt;
Cc: Sean Hefty &lt;sean.hefty@intel.com&gt;
Cc: Nikolay Borisov &lt;kernel@kyup.com&gt;
Cc: stable &lt;stable@vger.kernel.org&gt; # v4.2+
Acked-by: Erez Shitrit &lt;erezsh@mellanox.com&gt;
Signed-off-by: Doug Ledford &lt;dledford@redhat.com&gt;
</content>
</entry>
<entry>
<title>IB/core: Use hop-limit from IP stack for RoCE</title>
<updated>2016-01-19T20:26:56Z</updated>
<author>
<name>Matan Barak</name>
</author>
<published>2016-01-04T08:49:54Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c3efe7500add077f79d37b18e9c66df6621409b6'/>
<id>urn:sha1:c3efe7500add077f79d37b18e9c66df6621409b6</id>
<content type='text'>
Previously, IPV6_DEFAULT_HOPLIMIT was used as the hop limit value for
RoCE. Fixing that by taking ip4_dst_hoplimit and ip6_dst_hoplimit as
hop limit values.

Signed-off-by: Matan Barak &lt;matanb@mellanox.com&gt;
Signed-off-by: Doug Ledford &lt;dledford@redhat.com&gt;
</content>
</entry>
<entry>
<title>IB/cm: Fix a recently introduced deadlock</title>
<updated>2016-01-19T20:26:55Z</updated>
<author>
<name>Bart Van Assche</name>
</author>
<published>2016-01-01T12:17:46Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4bfdf635c668869c69fd18ece37ec66fb6f38fcf'/>
<id>urn:sha1:4bfdf635c668869c69fd18ece37ec66fb6f38fcf</id>
<content type='text'>
ib_send_cm_drep() calls cm_enter_timewait() while holding a spinlock
that can be locked from inside an interrupt handler. Hence do not
enable interrupts inside cm_enter_timewait() if called with interrupts
disabled.

This patch fixes e.g. the following deadlock:
Acked-by: Erez Shitrit &lt;erezsh@mellanox.com&gt;

=================================
[ INFO: inconsistent lock state ]
4.4.0-rc7+ #1 Tainted: G            E
---------------------------------
inconsistent {HARDIRQ-ON-W} -&gt; {IN-HARDIRQ-W} usage.
swapper/8/0 [HC1[1]:SC0[0]:HE0:SE1] takes:
(&amp;(&amp;cm_id_priv-&gt;lock)-&gt;rlock){?.+...}, at: [&lt;ffffffffa036eec4&gt;] cm_establish+0x
74/0x1b0 [ib_cm]
{HARDIRQ-ON-W} state was registered at:
  [&lt;ffffffff810a3c11&gt;] mark_held_locks+0x71/0x90
  [&lt;ffffffff810a3e87&gt;] trace_hardirqs_on_caller+0xa7/0x1c0
  [&lt;ffffffff810a3fad&gt;] trace_hardirqs_on+0xd/0x10
  [&lt;ffffffff8151c40b&gt;] _raw_spin_unlock_irq+0x2b/0x40
  [&lt;ffffffffa036ea8e&gt;] cm_enter_timewait+0xae/0x100 [ib_cm]
  [&lt;ffffffffa036ff76&gt;] ib_send_cm_drep+0xb6/0x190 [ib_cm]
  [&lt;ffffffffa052ed08&gt;] srp_cm_handler+0x128/0x1a0 [ib_srp]
  [&lt;ffffffffa0370340&gt;] cm_process_work+0x20/0xf0 [ib_cm]
  [&lt;ffffffffa0371335&gt;] cm_dreq_handler+0x135/0x2c0 [ib_cm]
  [&lt;ffffffffa03733c5&gt;] cm_work_handler+0x75/0xd0 [ib_cm]
  [&lt;ffffffff8107184d&gt;] process_one_work+0x1bd/0x460
  [&lt;ffffffff81073148&gt;] worker_thread+0x118/0x420
  [&lt;ffffffff81078454&gt;] kthread+0xe4/0x100
  [&lt;ffffffff8151cbbf&gt;] ret_from_fork+0x3f/0x70
irq event stamp: 1672286
hardirqs last  enabled at (1672283): [&lt;ffffffff81408ec0&gt;] poll_idle+0x10/0x80
hardirqs last disabled at (1672284): [&lt;ffffffff8151d304&gt;] common_interrupt+0x84/0x89
softirqs last  enabled at (1672286): [&lt;ffffffff8105b4dc&gt;] _local_bh_enable+0x1c/0x50
softirqs last disabled at (1672285): [&lt;ffffffff8105b697&gt;] irq_enter+0x47/0x70

other info that might help us debug this:
 Possible unsafe locking scenario:

       CPU0
       ----
  lock(&amp;(&amp;cm_id_priv-&gt;lock)-&gt;rlock);
  &lt;Interrupt&gt;
    lock(&amp;(&amp;cm_id_priv-&gt;lock)-&gt;rlock);

 *** DEADLOCK ***

no locks held by swapper/8/0.

stack backtrace:
CPU: 8 PID: 0 Comm: swapper/8 Tainted: G            E   4.4.0-rc7+ #1
Hardware name: Dell Inc. PowerEdge R430/03XKDV, BIOS 1.0.2 11/17/2014
 ffff88045af5e950 ffff88046e503a88 ffffffff81251c1b 0000000000000007
 0000000000000006 0000000000000003 ffff88045af5ddc0 ffff88046e503ad8
 ffffffff810a32f4 0000000000000000 0000000000000000 0000000000000001
Call Trace:
 &lt;IRQ&gt;  [&lt;ffffffff81251c1b&gt;] dump_stack+0x4f/0x74
 [&lt;ffffffff810a32f4&gt;] print_usage_bug+0x184/0x190
 [&lt;ffffffff810a36e2&gt;] mark_lock_irq+0xf2/0x290
 [&lt;ffffffff810a3995&gt;] mark_lock+0x115/0x1b0
 [&lt;ffffffff810a3b8c&gt;] mark_irqflags+0x15c/0x170
 [&lt;ffffffff810a4fef&gt;] __lock_acquire+0x1ef/0x560
 [&lt;ffffffff810a53c2&gt;] lock_acquire+0x62/0x80
 [&lt;ffffffff8151bd33&gt;] _raw_spin_lock_irqsave+0x43/0x60
 [&lt;ffffffffa036eec4&gt;] cm_establish+0x74/0x1b0 [ib_cm]
 [&lt;ffffffffa036f031&gt;] ib_cm_notify+0x31/0x100 [ib_cm]
 [&lt;ffffffffa0637f24&gt;] srpt_qp_event+0x54/0xd0 [ib_srpt]
 [&lt;ffffffffa0196052&gt;] mlx4_ib_qp_event+0x72/0xc0 [mlx4_ib]
 [&lt;ffffffffa00775b9&gt;] mlx4_qp_event+0x69/0xd0 [mlx4_core]
 [&lt;ffffffffa006000e&gt;] mlx4_eq_int+0x51e/0xd50 [mlx4_core]
 [&lt;ffffffffa006084f&gt;] mlx4_msi_x_interrupt+0xf/0x20 [mlx4_core]
 [&lt;ffffffff810b67b0&gt;] handle_irq_event_percpu+0x40/0x110
 [&lt;ffffffff810b68bf&gt;] handle_irq_event+0x3f/0x70
 [&lt;ffffffff810ba7f9&gt;] handle_edge_irq+0x79/0x120
 [&lt;ffffffff81007f3d&gt;] handle_irq+0x5d/0x130
 [&lt;ffffffff810071fd&gt;] do_IRQ+0x6d/0x130
 [&lt;ffffffff8151d309&gt;] common_interrupt+0x89/0x89
 &lt;EOI&gt;  [&lt;ffffffff8140895f&gt;] cpuidle_enter_state+0xcf/0x200
 [&lt;ffffffff81408aa2&gt;] cpuidle_enter+0x12/0x20
 [&lt;ffffffff810990d6&gt;] call_cpuidle+0x36/0x60
 [&lt;ffffffff81099163&gt;] cpuidle_idle_call+0x63/0x110
 [&lt;ffffffff8109930a&gt;] cpu_idle_loop+0xfa/0x130
 [&lt;ffffffff8109934e&gt;] cpu_startup_entry+0xe/0x10
 [&lt;ffffffff8103c443&gt;] start_secondary+0x83/0x90

Fixes: commit be4b499323bf ("IB/cm: Do not queue work to a device that's going away")
Signed-off-by: Bart Van Assche &lt;bart.vanassche@sandisk.com&gt;
Cc: Erez Shitrit &lt;erezsh@mellanox.com&gt;
Cc: stable &lt;stable@vger.kernel.org&gt;
Signed-off-by: Doug Ledford &lt;dledford@redhat.com&gt;
</content>
</entry>
<entry>
<title>IB/mad: pass ib_mad_send_buf explicitly to the recv_handler</title>
<updated>2016-01-19T20:25:36Z</updated>
<author>
<name>Christoph Hellwig</name>
</author>
<published>2016-01-04T13:15:58Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ca281265c02f342fed4927b4e98e377d9318881f'/>
<id>urn:sha1:ca281265c02f342fed4927b4e98e377d9318881f</id>
<content type='text'>
Stop abusing wr_id and just pass the parameter explicitly.

Signed-off-by: Christoph Hellwig &lt;hch@lst.de&gt;
Reviewed-by: Hal Rosenstock &lt;hal@mellanox.com&gt;
Reviewed-by: Ira Weiny &lt;ira.weiny@intel.com&gt;
Reviewed-by: Sagi Grimberg &lt;sagig@mellanox.com&gt;
Signed-off-by: Doug Ledford &lt;dledford@redhat.com&gt;
</content>
</entry>
<entry>
<title>IB/core: Validate route when we init ah</title>
<updated>2015-12-23T15:35:12Z</updated>
<author>
<name>Matan Barak</name>
</author>
<published>2015-12-23T12:56:53Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=200298326b276d8dbeff204f7d407432100d9963'/>
<id>urn:sha1:200298326b276d8dbeff204f7d407432100d9963</id>
<content type='text'>
In order to make sure API users don't try to use SGIDs which don't
conform to the routing table, validate the route before searching
the RoCE GID table.

Signed-off-by: Matan Barak &lt;matanb@mellanox.com&gt;
Signed-off-by: Doug Ledford &lt;dledford@redhat.com&gt;
</content>
</entry>
<entry>
<title>IB/cm: Use the source GID index type</title>
<updated>2015-12-23T15:35:10Z</updated>
<author>
<name>Matan Barak</name>
</author>
<published>2015-12-23T12:56:48Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=cb57bb849effcaa83addd739595d3dea3a5905fb'/>
<id>urn:sha1:cb57bb849effcaa83addd739595d3dea3a5905fb</id>
<content type='text'>
Previosuly, cm and cma modules supported only IB and RoCE v1 GID type.
In order to support multiple GID types, the gid_type is passed to
cm_init_av_by_path and stored in the path record.

The rdma cm client would use a default GID type that will be saved in
rdma_id_private.

Signed-off-by: Matan Barak &lt;matanb@mellanox.com&gt;
Signed-off-by: Doug Ledford &lt;dledford@redhat.com&gt;
</content>
</entry>
<entry>
<title>IB/core: Add gid_type to gid attribute</title>
<updated>2015-12-23T15:35:10Z</updated>
<author>
<name>Matan Barak</name>
</author>
<published>2015-12-23T12:56:47Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=b39ffa1df505378336a85064ad9ec403765bbb0b'/>
<id>urn:sha1:b39ffa1df505378336a85064ad9ec403765bbb0b</id>
<content type='text'>
In order to support multiple GID types, we need to store the gid_type
with each GID. This is also aligned with the RoCE v2 annex "RoCEv2 PORT
GID table entries shall have a "GID type" attribute that denotes the L3
Address type". The currently supported GID is IB_GID_TYPE_IB which is
also RoCE v1 GID type.

This implies that gid_type should be added to roce_gid_table meta-data.

Signed-off-by: Matan Barak &lt;matanb@mellanox.com&gt;
Signed-off-by: Doug Ledford &lt;dledford@redhat.com&gt;
</content>
</entry>
<entry>
<title>IB/core: Avoid calling ib_query_device</title>
<updated>2015-12-22T19:39:00Z</updated>
<author>
<name>Or Gerlitz</name>
</author>
<published>2015-12-18T08:59:45Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=86bee4c9c126b4f73e3f152cd43c806cac9135ad'/>
<id>urn:sha1:86bee4c9c126b4f73e3f152cd43c806cac9135ad</id>
<content type='text'>
Use the cached copy of the attributes present on the device, except for
the case of a query originating from user-space, where we have to invoke
the driver query_device entry, so they can fill in their udata.

Signed-off-by: Or Gerlitz &lt;ogerlitz@mellanox.com&gt;
Signed-off-by: Doug Ledford &lt;dledford@redhat.com&gt;
</content>
</entry>
<entry>
<title>IB/cm: Remove the usage of smac and vid of qp_attr and cm_av</title>
<updated>2015-10-22T03:48:18Z</updated>
<author>
<name>Matan Barak</name>
</author>
<published>2015-10-15T15:38:52Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5c266b2304fb886d1f2b1e3c5f5be91ff1c61254'/>
<id>urn:sha1:5c266b2304fb886d1f2b1e3c5f5be91ff1c61254</id>
<content type='text'>
The cm and cma don't need to explicitly handle vlan and smac,
as they are resolved from the GID index now. Removing this
portion of code.

Signed-off-by: Matan Barak &lt;matanb@mellanox.com&gt;
Reviewed-By: Devesh Sharma &lt;devesh.sharma@avagotech.com&gt;
Signed-off-by: Doug Ledford &lt;dledford@redhat.com&gt;
</content>
</entry>
</feed>
