<feed xmlns='http://www.w3.org/2005/Atom'>
<title>linux-stable.git/drivers/infiniband, branch v4.9</title>
<subtitle>Linux kernel stable tree</subtitle>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/'/>
<entry>
<title>Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma</title>
<updated>2016-11-17T21:53:02+00:00</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@linux-foundation.org</email>
</author>
<published>2016-11-17T21:53:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=57400d305201e1025ea0c20c851173146271bd1b'/>
<id>57400d305201e1025ea0c20c851173146271bd1b</id>
<content type='text'>
Pull rmda fixes from Doug Ledford.
 "First round of -rc fixes.

  Due to various issues, I've been away and couldn't send a pull request
  for about three weeks. There were a number of -rc patches that built
  up in the meantime (some where there already from the early -rc
  stages). Obviously, there were way too many to send now, so I tried to
  pare the list down to the more important patches for the -rc cycle.

  Most of the code has had plenty of soak time at the various vendor's
  testing setups, so I doubt there will be another -rc pull request this
  cycle. I also tried to limit the patches to those with smaller
  footprints, so even though a shortlog is longer than I would like, the
  actual diffstat is mostly very small with the exception of just three
  files that had more changes, and a couple files with pure removals.

  Summary:
   - Misc Intel hfi1 fixes
   - Misc Mellanox mlx4, mlx5, and rxe fixes
   - A couple cxgb4 fixes"

* tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma: (34 commits)
  iw_cxgb4: invalidate the mr when posting a read_w_inv wr
  iw_cxgb4: set *bad_wr for post_send/post_recv errors
  IB/rxe: Update qp state for user query
  IB/rxe: Clear queue buffer when modifying QP to reset
  IB/rxe: Fix handling of erroneous WR
  IB/rxe: Fix kernel panic in UDP tunnel with GRO and RX checksum
  IB/mlx4: Fix create CQ error flow
  IB/mlx4: Check gid_index return value
  IB/mlx5: Fix NULL pointer dereference on debug print
  IB/mlx5: Fix fatal error dispatching
  IB/mlx5: Resolve soft lock on massive reg MRs
  IB/mlx5: Use cache line size to select CQE stride
  IB/mlx5: Validate requested RQT size
  IB/mlx5: Fix memory leak in query device
  IB/core: Avoid unsigned int overflow in sg_alloc_table
  IB/core: Add missing check for addr_resolve callback return value
  IB/core: Set routable RoCE gid type for ipv4/ipv6 networks
  IB/cm: Mark stale CM id's whenever the mad agent was unregistered
  IB/uverbs: Fix leak of XRC target QPs
  IB/hfi1: Remove incorrect IS_ERR check
  ...
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Pull rmda fixes from Doug Ledford.
 "First round of -rc fixes.

  Due to various issues, I've been away and couldn't send a pull request
  for about three weeks. There were a number of -rc patches that built
  up in the meantime (some where there already from the early -rc
  stages). Obviously, there were way too many to send now, so I tried to
  pare the list down to the more important patches for the -rc cycle.

  Most of the code has had plenty of soak time at the various vendor's
  testing setups, so I doubt there will be another -rc pull request this
  cycle. I also tried to limit the patches to those with smaller
  footprints, so even though a shortlog is longer than I would like, the
  actual diffstat is mostly very small with the exception of just three
  files that had more changes, and a couple files with pure removals.

  Summary:
   - Misc Intel hfi1 fixes
   - Misc Mellanox mlx4, mlx5, and rxe fixes
   - A couple cxgb4 fixes"

* tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dledford/rdma: (34 commits)
  iw_cxgb4: invalidate the mr when posting a read_w_inv wr
  iw_cxgb4: set *bad_wr for post_send/post_recv errors
  IB/rxe: Update qp state for user query
  IB/rxe: Clear queue buffer when modifying QP to reset
  IB/rxe: Fix handling of erroneous WR
  IB/rxe: Fix kernel panic in UDP tunnel with GRO and RX checksum
  IB/mlx4: Fix create CQ error flow
  IB/mlx4: Check gid_index return value
  IB/mlx5: Fix NULL pointer dereference on debug print
  IB/mlx5: Fix fatal error dispatching
  IB/mlx5: Resolve soft lock on massive reg MRs
  IB/mlx5: Use cache line size to select CQE stride
  IB/mlx5: Validate requested RQT size
  IB/mlx5: Fix memory leak in query device
  IB/core: Avoid unsigned int overflow in sg_alloc_table
  IB/core: Add missing check for addr_resolve callback return value
  IB/core: Set routable RoCE gid type for ipv4/ipv6 networks
  IB/cm: Mark stale CM id's whenever the mad agent was unregistered
  IB/uverbs: Fix leak of XRC target QPs
  IB/hfi1: Remove incorrect IS_ERR check
  ...
</pre>
</div>
</content>
</entry>
<entry>
<title>iw_cxgb4: invalidate the mr when posting a read_w_inv wr</title>
<updated>2016-11-17T01:10:36+00:00</updated>
<author>
<name>Steve Wise</name>
<email>swise@opengridcomputing.com</email>
</author>
<published>2016-11-03T19:09:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=5c6b2aaf9316fd0983c0c999d920306ddc65bd2d'/>
<id>5c6b2aaf9316fd0983c0c999d920306ddc65bd2d</id>
<content type='text'>
Also, rearrange things a bit to have a common c4iw_invalidate_mr()
function used everywhere that we need to invalidate.

Fixes: 49b53a93a64a ("iw_cxgb4: add fast-path for small REG_MR operations")
Signed-off-by: Steve Wise &lt;swise@opengridcomputing.com&gt;
Signed-off-by: Doug Ledford &lt;dledford@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Also, rearrange things a bit to have a common c4iw_invalidate_mr()
function used everywhere that we need to invalidate.

Fixes: 49b53a93a64a ("iw_cxgb4: add fast-path for small REG_MR operations")
Signed-off-by: Steve Wise &lt;swise@opengridcomputing.com&gt;
Signed-off-by: Doug Ledford &lt;dledford@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>iw_cxgb4: set *bad_wr for post_send/post_recv errors</title>
<updated>2016-11-17T01:10:36+00:00</updated>
<author>
<name>Steve Wise</name>
<email>swise@opengridcomputing.com</email>
</author>
<published>2016-10-18T21:04:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=4ff522ea47944ffd3d4d27023ace8bc6a722c834'/>
<id>4ff522ea47944ffd3d4d27023ace8bc6a722c834</id>
<content type='text'>
There are a few cases in c4iw_post_send() and c4iw_post_receive()
where *bad_wr is not set when an error is returned.  This can
cause a crash if the application tries to use bad_wr.

Signed-off-by: Steve Wise &lt;swise@opengridcomputing.com&gt;
Signed-off-by: Doug Ledford &lt;dledford@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
There are a few cases in c4iw_post_send() and c4iw_post_receive()
where *bad_wr is not set when an error is returned.  This can
cause a crash if the application tries to use bad_wr.

Signed-off-by: Steve Wise &lt;swise@opengridcomputing.com&gt;
Signed-off-by: Doug Ledford &lt;dledford@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge branches 'hfi1' and 'mlx' into k.o/for-4.9-rc</title>
<updated>2016-11-17T01:05:10+00:00</updated>
<author>
<name>Doug Ledford</name>
<email>dledford@redhat.com</email>
</author>
<published>2016-11-17T01:05:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=6fa1f2f0aa6191193704b9ff10e5a2cafe540738'/>
<id>6fa1f2f0aa6191193704b9ff10e5a2cafe540738</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>IB/rxe: Update qp state for user query</title>
<updated>2016-11-17T01:03:44+00:00</updated>
<author>
<name>Yonatan Cohen</name>
<email>yonatanc@mellanox.com</email>
</author>
<published>2016-11-16T08:39:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=6d931308f55faaef3f30bd0346c47f99528b229d'/>
<id>6d931308f55faaef3f30bd0346c47f99528b229d</id>
<content type='text'>
The method rxe_qp_error() transitions QP to error state
and make sure the QP is drained. It did not though update
the QP state for user's query.

This patch fixes this.

Fixes: 8700e3e7c485 ("Soft RoCE driver")
Signed-off-by: Yonatan Cohen &lt;yonatanc@mellanox.com&gt;
Reviewed-by: Moni Shoua &lt;monis@mellanox.com&gt;
Signed-off-by: Leon Romanovsky &lt;leon@kernel.org&gt;
Signed-off-by: Doug Ledford &lt;dledford@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The method rxe_qp_error() transitions QP to error state
and make sure the QP is drained. It did not though update
the QP state for user's query.

This patch fixes this.

Fixes: 8700e3e7c485 ("Soft RoCE driver")
Signed-off-by: Yonatan Cohen &lt;yonatanc@mellanox.com&gt;
Reviewed-by: Moni Shoua &lt;monis@mellanox.com&gt;
Signed-off-by: Leon Romanovsky &lt;leon@kernel.org&gt;
Signed-off-by: Doug Ledford &lt;dledford@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>IB/rxe: Clear queue buffer when modifying QP to reset</title>
<updated>2016-11-17T01:03:44+00:00</updated>
<author>
<name>Yonatan Cohen</name>
<email>yonatanc@mellanox.com</email>
</author>
<published>2016-11-16T08:39:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=aa75b07b478a774b1432e2df1be5cd8ae834de0f'/>
<id>aa75b07b478a774b1432e2df1be5cd8ae834de0f</id>
<content type='text'>
RXE resets the send-q only once in rxe_qp_init_req() when
QP is created, but when the QP is reused after QP reset, the send-q
holds previous garbage data.

This garbage data wrongly fails CQEs that otherwise
should have completed successfully.

Fixes: 8700e3e7c485 ("Soft RoCE driver")
Signed-off-by: Yonatan Cohen &lt;yonatanc@mellanox.com&gt;
Reviewed-by: Moni Shoua &lt;monis@mellanox.com&gt;
Signed-off-by: Leon Romanovsky &lt;leon@kernel.org&gt;
Signed-off-by: Doug Ledford &lt;dledford@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
RXE resets the send-q only once in rxe_qp_init_req() when
QP is created, but when the QP is reused after QP reset, the send-q
holds previous garbage data.

This garbage data wrongly fails CQEs that otherwise
should have completed successfully.

Fixes: 8700e3e7c485 ("Soft RoCE driver")
Signed-off-by: Yonatan Cohen &lt;yonatanc@mellanox.com&gt;
Reviewed-by: Moni Shoua &lt;monis@mellanox.com&gt;
Signed-off-by: Leon Romanovsky &lt;leon@kernel.org&gt;
Signed-off-by: Doug Ledford &lt;dledford@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>IB/rxe: Fix handling of erroneous WR</title>
<updated>2016-11-17T01:03:44+00:00</updated>
<author>
<name>Yonatan Cohen</name>
<email>yonatanc@mellanox.com</email>
</author>
<published>2016-11-16T08:39:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=002e062e13db10973adb8302f231e48b477c7ccf'/>
<id>002e062e13db10973adb8302f231e48b477c7ccf</id>
<content type='text'>
To correctly handle a erroneous WR this fix does the following
1. Make sure the bad WQE causes a user completion event.
2. Call rxe_completer to handle the erred WQE.

Before the fix, when rxe_requester found a bad WQE, it changed its
status to IB_WC_LOC_PROT_ERR and exit with 0 for non RC QPs.

If this was the 1st WQE then there would be no ACK to invoke the
completer and this bad WQE would be stuck in the QP's send-q.

On top of that the requester exiting with 0 caused rxe_do_task to
endlessly invoke rxe_requester, resulting in a soft-lockup attached
below.

In case the WQE was not the 1st and rxe_completer did get a chance to
handle the bad WQE, it did not cause a complete event since the WQE's
IB_SEND_SIGNALED flag was not set.

Setting WQE status to IB_SEND_SIGNALED is subject to IBA spec
version 1.2.1, section 10.7.3.1 Signaled Completions.

NMI watchdog: BUG: soft lockup - CPU#7 stuck for 22s!
[&lt;ffffffffa0590145&gt;] ? rxe_pool_get_index+0x35/0xb0 [rdma_rxe]
[&lt;ffffffffa05952ec&gt;] lookup_mem+0x3c/0xc0 [rdma_rxe]
[&lt;ffffffffa0595534&gt;] copy_data+0x1c4/0x230 [rdma_rxe]
[&lt;ffffffffa058c180&gt;] rxe_requester+0x9d0/0x1100 [rdma_rxe]
[&lt;ffffffff8158e98a&gt;] ? kfree_skbmem+0x5a/0x60
[&lt;ffffffffa05962c9&gt;] rxe_do_task+0x89/0xf0 [rdma_rxe]
[&lt;ffffffffa05963e2&gt;] rxe_run_task+0x12/0x30 [rdma_rxe]
[&lt;ffffffffa059110a&gt;] rxe_post_send+0x41a/0x550 [rdma_rxe]
[&lt;ffffffff811ef922&gt;] ? __kmalloc+0x182/0x200
[&lt;ffffffff816ba512&gt;] ? down_read+0x12/0x40
[&lt;ffffffffa054bd32&gt;] ib_uverbs_post_send+0x532/0x540 [ib_uverbs]
[&lt;ffffffff815f8722&gt;] ? tcp_sendmsg+0x402/0xb80
[&lt;ffffffffa05453dc&gt;] ib_uverbs_write+0x18c/0x3f0 [ib_uverbs]
[&lt;ffffffff81623c2e&gt;] ? inet_recvmsg+0x7e/0xb0
[&lt;ffffffff8158764d&gt;] ? sock_recvmsg+0x3d/0x50
[&lt;ffffffff81215b87&gt;] __vfs_write+0x37/0x140
[&lt;ffffffff81216892&gt;] vfs_write+0xb2/0x1b0
[&lt;ffffffff81217ce5&gt;] SyS_write+0x55/0xc0
[&lt;ffffffff816bc672&gt;] entry_SYSCALL_64_fastpath+0x1a/0xa

Fixes: 8700e3e7c485 ("Soft RoCE driver")
Signed-off-by: Yonatan Cohen &lt;yonatanc@mellanox.com&gt;
Reviewed-by: Moni Shoua &lt;monis@mellanox.com&gt;
Signed-off-by: Leon Romanovsky &lt;leon@kernel.org&gt;
Signed-off-by: Doug Ledford &lt;dledford@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
To correctly handle a erroneous WR this fix does the following
1. Make sure the bad WQE causes a user completion event.
2. Call rxe_completer to handle the erred WQE.

Before the fix, when rxe_requester found a bad WQE, it changed its
status to IB_WC_LOC_PROT_ERR and exit with 0 for non RC QPs.

If this was the 1st WQE then there would be no ACK to invoke the
completer and this bad WQE would be stuck in the QP's send-q.

On top of that the requester exiting with 0 caused rxe_do_task to
endlessly invoke rxe_requester, resulting in a soft-lockup attached
below.

In case the WQE was not the 1st and rxe_completer did get a chance to
handle the bad WQE, it did not cause a complete event since the WQE's
IB_SEND_SIGNALED flag was not set.

Setting WQE status to IB_SEND_SIGNALED is subject to IBA spec
version 1.2.1, section 10.7.3.1 Signaled Completions.

NMI watchdog: BUG: soft lockup - CPU#7 stuck for 22s!
[&lt;ffffffffa0590145&gt;] ? rxe_pool_get_index+0x35/0xb0 [rdma_rxe]
[&lt;ffffffffa05952ec&gt;] lookup_mem+0x3c/0xc0 [rdma_rxe]
[&lt;ffffffffa0595534&gt;] copy_data+0x1c4/0x230 [rdma_rxe]
[&lt;ffffffffa058c180&gt;] rxe_requester+0x9d0/0x1100 [rdma_rxe]
[&lt;ffffffff8158e98a&gt;] ? kfree_skbmem+0x5a/0x60
[&lt;ffffffffa05962c9&gt;] rxe_do_task+0x89/0xf0 [rdma_rxe]
[&lt;ffffffffa05963e2&gt;] rxe_run_task+0x12/0x30 [rdma_rxe]
[&lt;ffffffffa059110a&gt;] rxe_post_send+0x41a/0x550 [rdma_rxe]
[&lt;ffffffff811ef922&gt;] ? __kmalloc+0x182/0x200
[&lt;ffffffff816ba512&gt;] ? down_read+0x12/0x40
[&lt;ffffffffa054bd32&gt;] ib_uverbs_post_send+0x532/0x540 [ib_uverbs]
[&lt;ffffffff815f8722&gt;] ? tcp_sendmsg+0x402/0xb80
[&lt;ffffffffa05453dc&gt;] ib_uverbs_write+0x18c/0x3f0 [ib_uverbs]
[&lt;ffffffff81623c2e&gt;] ? inet_recvmsg+0x7e/0xb0
[&lt;ffffffff8158764d&gt;] ? sock_recvmsg+0x3d/0x50
[&lt;ffffffff81215b87&gt;] __vfs_write+0x37/0x140
[&lt;ffffffff81216892&gt;] vfs_write+0xb2/0x1b0
[&lt;ffffffff81217ce5&gt;] SyS_write+0x55/0xc0
[&lt;ffffffff816bc672&gt;] entry_SYSCALL_64_fastpath+0x1a/0xa

Fixes: 8700e3e7c485 ("Soft RoCE driver")
Signed-off-by: Yonatan Cohen &lt;yonatanc@mellanox.com&gt;
Reviewed-by: Moni Shoua &lt;monis@mellanox.com&gt;
Signed-off-by: Leon Romanovsky &lt;leon@kernel.org&gt;
Signed-off-by: Doug Ledford &lt;dledford@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>IB/rxe: Fix kernel panic in UDP tunnel with GRO and RX checksum</title>
<updated>2016-11-17T01:03:44+00:00</updated>
<author>
<name>Yonatan Cohen</name>
<email>yonatanc@mellanox.com</email>
</author>
<published>2016-11-16T08:39:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=1454ca3a97e147bb91e98b087446c39cf6692a48'/>
<id>1454ca3a97e147bb91e98b087446c39cf6692a48</id>
<content type='text'>
Missing initialization of udp_tunnel_sock_cfg causes to following
kernel panic, while kernel tries to execute gro_receive().

While being there, we converted udp_port_cfg to use the same
initialization scheme as udp_tunnel_sock_cfg.

------------[ cut here ]------------
kernel tried to execute NX-protected page - exploit attempt? (uid: 0)
BUG: unable to handle kernel paging request at ffffffffa0588c50
IP: [&lt;ffffffffa0588c50&gt;] __this_module+0x50/0xffffffffffff8400 [ib_rxe]
PGD 1c09067 PUD 1c0a063 PMD bb394067 PTE 80000000ad5e8163
Oops: 0011 [#1] SMP
Modules linked in: ib_rxe ip6_udp_tunnel udp_tunnel
CPU: 5 PID: 0 Comm: swapper/5 Not tainted 4.7.0-rc3+ #2
Hardware name: Red Hat KVM, BIOS Bochs 01/01/2011
task: ffff880235e4e680 ti: ffff880235e68000 task.ti: ffff880235e68000
RIP: 0010:[&lt;ffffffffa0588c50&gt;]
[&lt;ffffffffa0588c50&gt;] __this_module+0x50/0xffffffffffff8400 [ib_rxe]
RSP: 0018:ffff880237343c80  EFLAGS: 00010282
RAX: 00000000dffe482d RBX: ffff8800ae330900 RCX: 000000002001b712
RDX: ffff8800ae330900 RSI: ffff8800ae102578 RDI: ffff880235589c00
RBP: ffff880237343cb0 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000000 R12: ffff8800ae33e262
R13: ffff880235589c00 R14: 0000000000000014 R15: ffff8800ae102578
FS:  0000000000000000(0000) GS:ffff880237340000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: ffffffffa0588c50 CR3: 0000000001c06000 CR4: 00000000000006e0
Stack:
ffffffff8160860e ffff8800ae330900 ffff8800ae102578 0000000000000014
000000000000004e ffff8800ae102578 ffff880237343ce0 ffffffff816088fb
0000000000000000 ffff8800ae330900 0000000000000000 00000000ffad0000
Call Trace:
&lt;IRQ&gt;
[&lt;ffffffff8160860e&gt;] ? udp_gro_receive+0xde/0x130
[&lt;ffffffff816088fb&gt;] udp4_gro_receive+0x10b/0x2d0
[&lt;ffffffff81611373&gt;] inet_gro_receive+0x1d3/0x270
[&lt;ffffffff81594e29&gt;] dev_gro_receive+0x269/0x3b0
[&lt;ffffffff81595188&gt;] napi_gro_receive+0x38/0x120
[&lt;ffffffffa011caee&gt;] mlx5e_handle_rx_cqe+0x27e/0x340 [mlx5_core]
[&lt;ffffffffa011d076&gt;] mlx5e_poll_rx_cq+0x66/0x6d0 [mlx5_core]
[&lt;ffffffffa011d7ae&gt;] mlx5e_napi_poll+0x8e/0x400 [mlx5_core]
[&lt;ffffffff815949a0&gt;] net_rx_action+0x160/0x380
[&lt;ffffffff816a9197&gt;] __do_softirq+0xd7/0x2c5
[&lt;ffffffff81085c35&gt;] irq_exit+0xf5/0x100
[&lt;ffffffff816a8f16&gt;] do_IRQ+0x56/0xd0
[&lt;ffffffff816a6dcc&gt;] common_interrupt+0x8c/0x8c
&lt;EOI&gt;
[&lt;ffffffff81061f96&gt;] ? native_safe_halt+0x6/0x10
[&lt;ffffffff81037ade&gt;] default_idle+0x1e/0xd0
[&lt;ffffffff8103828f&gt;] arch_cpu_idle+0xf/0x20
[&lt;ffffffff810c37dc&gt;] default_idle_call+0x3c/0x50
[&lt;ffffffff810c3b13&gt;] cpu_startup_entry+0x323/0x3c0
[&lt;ffffffff81050d8c&gt;] start_secondary+0x15c/0x1a0
RIP  [&lt;ffffffffa0588c50&gt;] __this_module+0x50/0xffffffffffff8400 [ib_rxe]
RSP &lt;ffff880237343c80&gt;
CR2: ffffffffa0588c50
---[ end trace 489ee31fa7614ac5 ]---
Kernel panic - not syncing: Fatal exception in interrupt
Kernel Offset: disabled
---[ end Kernel panic - not syncing: Fatal exception in interrupt
------------[ cut here ]------------

Fixes: 8700e3e7c485 ("Soft RoCE driver")
Signed-off-by: Yonatan Cohen &lt;yonatanc@mellanox.com&gt;
Reviewed-by: Moni Shoua &lt;monis@mellanox.com&gt;
Signed-off-by: Leon Romanovsky &lt;leon@kernel.org&gt;
Signed-off-by: Doug Ledford &lt;dledford@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Missing initialization of udp_tunnel_sock_cfg causes to following
kernel panic, while kernel tries to execute gro_receive().

While being there, we converted udp_port_cfg to use the same
initialization scheme as udp_tunnel_sock_cfg.

------------[ cut here ]------------
kernel tried to execute NX-protected page - exploit attempt? (uid: 0)
BUG: unable to handle kernel paging request at ffffffffa0588c50
IP: [&lt;ffffffffa0588c50&gt;] __this_module+0x50/0xffffffffffff8400 [ib_rxe]
PGD 1c09067 PUD 1c0a063 PMD bb394067 PTE 80000000ad5e8163
Oops: 0011 [#1] SMP
Modules linked in: ib_rxe ip6_udp_tunnel udp_tunnel
CPU: 5 PID: 0 Comm: swapper/5 Not tainted 4.7.0-rc3+ #2
Hardware name: Red Hat KVM, BIOS Bochs 01/01/2011
task: ffff880235e4e680 ti: ffff880235e68000 task.ti: ffff880235e68000
RIP: 0010:[&lt;ffffffffa0588c50&gt;]
[&lt;ffffffffa0588c50&gt;] __this_module+0x50/0xffffffffffff8400 [ib_rxe]
RSP: 0018:ffff880237343c80  EFLAGS: 00010282
RAX: 00000000dffe482d RBX: ffff8800ae330900 RCX: 000000002001b712
RDX: ffff8800ae330900 RSI: ffff8800ae102578 RDI: ffff880235589c00
RBP: ffff880237343cb0 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000000 R12: ffff8800ae33e262
R13: ffff880235589c00 R14: 0000000000000014 R15: ffff8800ae102578
FS:  0000000000000000(0000) GS:ffff880237340000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: ffffffffa0588c50 CR3: 0000000001c06000 CR4: 00000000000006e0
Stack:
ffffffff8160860e ffff8800ae330900 ffff8800ae102578 0000000000000014
000000000000004e ffff8800ae102578 ffff880237343ce0 ffffffff816088fb
0000000000000000 ffff8800ae330900 0000000000000000 00000000ffad0000
Call Trace:
&lt;IRQ&gt;
[&lt;ffffffff8160860e&gt;] ? udp_gro_receive+0xde/0x130
[&lt;ffffffff816088fb&gt;] udp4_gro_receive+0x10b/0x2d0
[&lt;ffffffff81611373&gt;] inet_gro_receive+0x1d3/0x270
[&lt;ffffffff81594e29&gt;] dev_gro_receive+0x269/0x3b0
[&lt;ffffffff81595188&gt;] napi_gro_receive+0x38/0x120
[&lt;ffffffffa011caee&gt;] mlx5e_handle_rx_cqe+0x27e/0x340 [mlx5_core]
[&lt;ffffffffa011d076&gt;] mlx5e_poll_rx_cq+0x66/0x6d0 [mlx5_core]
[&lt;ffffffffa011d7ae&gt;] mlx5e_napi_poll+0x8e/0x400 [mlx5_core]
[&lt;ffffffff815949a0&gt;] net_rx_action+0x160/0x380
[&lt;ffffffff816a9197&gt;] __do_softirq+0xd7/0x2c5
[&lt;ffffffff81085c35&gt;] irq_exit+0xf5/0x100
[&lt;ffffffff816a8f16&gt;] do_IRQ+0x56/0xd0
[&lt;ffffffff816a6dcc&gt;] common_interrupt+0x8c/0x8c
&lt;EOI&gt;
[&lt;ffffffff81061f96&gt;] ? native_safe_halt+0x6/0x10
[&lt;ffffffff81037ade&gt;] default_idle+0x1e/0xd0
[&lt;ffffffff8103828f&gt;] arch_cpu_idle+0xf/0x20
[&lt;ffffffff810c37dc&gt;] default_idle_call+0x3c/0x50
[&lt;ffffffff810c3b13&gt;] cpu_startup_entry+0x323/0x3c0
[&lt;ffffffff81050d8c&gt;] start_secondary+0x15c/0x1a0
RIP  [&lt;ffffffffa0588c50&gt;] __this_module+0x50/0xffffffffffff8400 [ib_rxe]
RSP &lt;ffff880237343c80&gt;
CR2: ffffffffa0588c50
---[ end trace 489ee31fa7614ac5 ]---
Kernel panic - not syncing: Fatal exception in interrupt
Kernel Offset: disabled
---[ end Kernel panic - not syncing: Fatal exception in interrupt
------------[ cut here ]------------

Fixes: 8700e3e7c485 ("Soft RoCE driver")
Signed-off-by: Yonatan Cohen &lt;yonatanc@mellanox.com&gt;
Reviewed-by: Moni Shoua &lt;monis@mellanox.com&gt;
Signed-off-by: Leon Romanovsky &lt;leon@kernel.org&gt;
Signed-off-by: Doug Ledford &lt;dledford@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>IB/mlx4: Fix create CQ error flow</title>
<updated>2016-11-17T01:03:44+00:00</updated>
<author>
<name>Matan Barak</name>
<email>matanb@mellanox.com</email>
</author>
<published>2016-11-10T09:30:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=593ff73bcfdc79f79a8a0df55504f75ad3e5d1a9'/>
<id>593ff73bcfdc79f79a8a0df55504f75ad3e5d1a9</id>
<content type='text'>
Currently, if ib_copy_to_udata fails, the CQ
won't be deleted from the radix tree and the HW (HW2SW).

Fixes: 225c7b1feef1 ('IB/mlx4: Add a driver Mellanox ConnectX InfiniBand adapters')
Signed-off-by: Matan Barak &lt;matanb@mellanox.com&gt;
Signed-off-by: Daniel Jurgens &lt;danielj@mellanox.com&gt;
Reviewed-by: Mark Bloch &lt;markb@mellanox.com&gt;
Signed-off-by: Leon Romanovsky &lt;leon@kernel.org&gt;
Signed-off-by: Doug Ledford &lt;dledford@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Currently, if ib_copy_to_udata fails, the CQ
won't be deleted from the radix tree and the HW (HW2SW).

Fixes: 225c7b1feef1 ('IB/mlx4: Add a driver Mellanox ConnectX InfiniBand adapters')
Signed-off-by: Matan Barak &lt;matanb@mellanox.com&gt;
Signed-off-by: Daniel Jurgens &lt;danielj@mellanox.com&gt;
Reviewed-by: Mark Bloch &lt;markb@mellanox.com&gt;
Signed-off-by: Leon Romanovsky &lt;leon@kernel.org&gt;
Signed-off-by: Doug Ledford &lt;dledford@redhat.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>IB/mlx4: Check gid_index return value</title>
<updated>2016-11-17T01:03:44+00:00</updated>
<author>
<name>Daniel Jurgens</name>
<email>danielj@mellanox.com</email>
</author>
<published>2016-11-10T09:30:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.tavy.me/linux-stable.git/commit/?id=37995116fecfce2b61ee3da6e73b3e394c6818f9'/>
<id>37995116fecfce2b61ee3da6e73b3e394c6818f9</id>
<content type='text'>
Check the returned GID index value and return an error if it is invalid.

Fixes: 5070cd2239bd ('IB/mlx4: Replace mechanism for RoCE GID management')
Signed-off-by: Daniel Jurgens &lt;danielj@mellanox.com&gt;
Reviewed-by: Mark Bloch &lt;markb@mellanox.com&gt;
Reviewed-by: Yuval Shaia &lt;yuval.shaia@oracle.com&gt;
Signed-off-by: Leon Romanovsky &lt;leon@kernel.org&gt;
Signed-off-by: Doug Ledford &lt;dledford@redhat.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Check the returned GID index value and return an error if it is invalid.

Fixes: 5070cd2239bd ('IB/mlx4: Replace mechanism for RoCE GID management')
Signed-off-by: Daniel Jurgens &lt;danielj@mellanox.com&gt;
Reviewed-by: Mark Bloch &lt;markb@mellanox.com&gt;
Reviewed-by: Yuval Shaia &lt;yuval.shaia@oracle.com&gt;
Signed-off-by: Leon Romanovsky &lt;leon@kernel.org&gt;
Signed-off-by: Doug Ledford &lt;dledford@redhat.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
