<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/net/rds/ib.c, branch linux-5.9.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.9.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.9.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2020-06-02T23:32:54Z</updated>
<entry>
<title>RDMA: Remove 'max_fmr'</title>
<updated>2020-06-02T23:32:54Z</updated>
<author>
<name>Jason Gunthorpe</name>
</author>
<published>2020-05-28T19:45:54Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=649392bf75a423287a9c4936b341677f12e8cf0b'/>
<id>urn:sha1:649392bf75a423287a9c4936b341677f12e8cf0b</id>
<content type='text'>
Now that FMR support is gone, this attribute can be deleted from all
places.

Link: https://lore.kernel.org/r/12-v3-f58e6669d5d3+2cf-fmr_removal_jgg@mellanox.com
Reviewed-by: Max Gurtovoy &lt;maxg@mellanox.com&gt;
Reviewed-by: Bernard Metzler &lt;bmt@zurich.ibm.com&gt;
Signed-off-by: Jason Gunthorpe &lt;jgg@mellanox.com&gt;
</content>
</entry>
<entry>
<title>RDMA/rds: Remove FMR support for memory registration</title>
<updated>2020-06-02T23:32:53Z</updated>
<author>
<name>Max Gurtovoy</name>
</author>
<published>2020-05-28T19:45:45Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=07549ee21ce5247143ffb069bf838025d86b908c'/>
<id>urn:sha1:07549ee21ce5247143ffb069bf838025d86b908c</id>
<content type='text'>
Use FRWR method for memory registration by default and remove the ancient
and unsafe FMR method.

Link: https://lore.kernel.org/r/3-v3-f58e6669d5d3+2cf-fmr_removal_jgg@mellanox.com
Signed-off-by: Max Gurtovoy &lt;maxg@mellanox.com&gt;
Signed-off-by: Jason Gunthorpe &lt;jgg@mellanox.com&gt;
</content>
</entry>
<entry>
<title>RDMA: Allow ib_client's to fail when add() is called</title>
<updated>2020-05-06T14:57:33Z</updated>
<author>
<name>Jason Gunthorpe</name>
</author>
<published>2020-04-21T17:24:40Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=11a0ae4c4bff9b2a471b54dbe910fc0f60e58e62'/>
<id>urn:sha1:11a0ae4c4bff9b2a471b54dbe910fc0f60e58e62</id>
<content type='text'>
When a client is added it isn't allowed to fail, but all the client's have
various failure paths within their add routines.

This creates the very fringe condition where the client was added, failed
during add and didn't set the client_data. The core code will then still
call other client_data centric ops like remove(), rename(), get_nl_info(),
and get_net_dev_by_params() with NULL client_data - which is confusing and
unexpected.

If the add() callback fails, then do not call any more client ops for the
device, even remove.

Remove all the now redundant checks for NULL client_data in ops callbacks.

Update all the add() callbacks to return error codes
appropriately. EOPNOTSUPP is used for cases where the ULP does not support
the ib_device - eg because it only works with IB.

Link: https://lore.kernel.org/r/20200421172440.387069-1-leon@kernel.org
Signed-off-by: Leon Romanovsky &lt;leonro@mellanox.com&gt;
Acked-by: Ursula Braun &lt;ubraun@linux.ibm.com&gt;
Signed-off-by: Jason Gunthorpe &lt;jgg@mellanox.com&gt;
</content>
</entry>
<entry>
<title>net/rds: Handle ODP mr registration/unregistration</title>
<updated>2020-01-18T09:48:19Z</updated>
<author>
<name>Hans Westgaard Ry</name>
</author>
<published>2020-01-15T12:43:39Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=2eafa1746f17872483d1033b0116ec71435ea19d'/>
<id>urn:sha1:2eafa1746f17872483d1033b0116ec71435ea19d</id>
<content type='text'>
On-Demand-Paging MRs are registered using ib_reg_user_mr and
unregistered with ib_dereg_mr.

Signed-off-by: Hans Westgaard Ry &lt;hans.westgaard.ry@oracle.com&gt;
Acked-by: Santosh Shilimkar &lt;santosh.shilimkar@oracle.com&gt;
Signed-off-by: Leon Romanovsky &lt;leonro@mellanox.com&gt;
</content>
</entry>
<entry>
<title>net/rds: Remove unnecessary null check</title>
<updated>2019-10-17T19:23:03Z</updated>
<author>
<name>YueHaibing</name>
</author>
<published>2019-10-15T11:47:36Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ce753e66dcc37e19572a87f70585ec6537dede81'/>
<id>urn:sha1:ce753e66dcc37e19572a87f70585ec6537dede81</id>
<content type='text'>
Null check before dma_pool_destroy is redundant, so remove it.
This is detected by coccinelle.

Signed-off-by: YueHaibing &lt;yuehaibing@huawei.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net/rds: Add missing include file</title>
<updated>2019-10-06T16:34:10Z</updated>
<author>
<name>YueHaibing</name>
</author>
<published>2019-10-06T07:08:32Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d131c5bb60123f29ed15dd2f829b6644c2deec87'/>
<id>urn:sha1:d131c5bb60123f29ed15dd2f829b6644c2deec87</id>
<content type='text'>
Fix build error:

net/rds/ib_cm.c: In function rds_dma_hdrs_alloc:
net/rds/ib_cm.c:475:13: error: implicit declaration of function dma_pool_zalloc; did you mean mempool_alloc? [-Werror=implicit-function-declaration]
   hdrs[i] = dma_pool_zalloc(pool, GFP_KERNEL, &amp;hdr_daddrs[i]);
             ^~~~~~~~~~~~~~~
             mempool_alloc

net/rds/ib.c: In function rds_ib_dev_free:
net/rds/ib.c:111:3: error: implicit declaration of function dma_pool_destroy; did you mean mempool_destroy? [-Werror=implicit-function-declaration]
   dma_pool_destroy(rds_ibdev-&gt;rid_hdrs_pool);
   ^~~~~~~~~~~~~~~~
   mempool_destroy

Reported-by: Hulk Robot &lt;hulkci@huawei.com&gt;
Fixes: 9b17f5884be4 ("net/rds: Use DMA memory pool allocation for rds_header")
Signed-off-by: YueHaibing &lt;yuehaibing@huawei.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/netdev/net</title>
<updated>2019-10-05T20:37:23Z</updated>
<author>
<name>David S. Miller</name>
</author>
<published>2019-10-05T20:37:23Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6f4c930e02355664d89c976eccea5d999a90de16'/>
<id>urn:sha1:6f4c930e02355664d89c976eccea5d999a90de16</id>
<content type='text'>
</content>
</entry>
<entry>
<title>net/rds: Use DMA memory pool allocation for rds_header</title>
<updated>2019-10-03T19:11:08Z</updated>
<author>
<name>Ka-Cheong Poon</name>
</author>
<published>2019-10-03T04:11:08Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9b17f5884be4484e4d9090a9dccf17e763e0589b'/>
<id>urn:sha1:9b17f5884be4484e4d9090a9dccf17e763e0589b</id>
<content type='text'>
Currently, RDS calls ib_dma_alloc_coherent() to allocate a large piece
of contiguous DMA coherent memory to store struct rds_header for
sending/receiving packets.  The memory allocated is then partitioned
into struct rds_header.  This is not necessary and can be costly at
times when memory is fragmented.  Instead, RDS should use the DMA
memory pool interface to handle this.  The DMA addresses of the pre-
allocated headers are stored in an array.  At send/receive ring
initialization and refill time, this arrary is de-referenced to get
the DMA addresses.  This array is not accessed at send/receive packet
processing.

Suggested-by: Håkon Bugge &lt;haakon.bugge@oracle.com&gt;
Signed-off-by: Ka-Cheong Poon &lt;ka-cheong.poon@oracle.com&gt;
Acked-by: Santosh Shilimkar &lt;santosh.shilimkar@oracle.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net/rds: Fix error handling in rds_ib_add_one()</title>
<updated>2019-10-02T16:16:57Z</updated>
<author>
<name>Dotan Barak</name>
</author>
<published>2019-10-01T17:21:02Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d64bf89a75b65f83f06be9fb8f978e60d53752db'/>
<id>urn:sha1:d64bf89a75b65f83f06be9fb8f978e60d53752db</id>
<content type='text'>
rds_ibdev:ipaddr_list and rds_ibdev:conn_list are initialized
after allocation some resources such as protection domain.
If allocation of such resources fail, then these uninitialized
variables are accessed in rds_ib_dev_free() in failure path. This
can potentially crash the system. The code has been updated to
initialize these variables very early in the function.

Signed-off-by: Dotan Barak &lt;dotanb@dev.mellanox.co.il&gt;
Signed-off-by: Sudhakar Dindukurti &lt;sudhakar.dindukurti@oracle.com&gt;
Acked-by: Santosh Shilimkar &lt;santosh.shilimkar@oracle.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: rds: add service level support in rds-info</title>
<updated>2019-08-24T23:55:25Z</updated>
<author>
<name>Zhu Yanjun</name>
</author>
<published>2019-08-24T01:04:16Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=e0e6d062822529dbe9be21939359b0d1e065bb0f'/>
<id>urn:sha1:e0e6d062822529dbe9be21939359b0d1e065bb0f</id>
<content type='text'>
&gt;From IB specific 7.6.5 SERVICE LEVEL, Service Level (SL)
is used to identify different flows within an IBA subnet.
It is carried in the local route header of the packet.

Before this commit, run "rds-info -I". The outputs are as
below:
"
RDS IB Connections:
 LocalAddr  RemoteAddr Tos SL  LocalDev               RemoteDev
192.2.95.3  192.2.95.1  2   0  fe80::21:28:1a:39  fe80::21:28:10:b9
192.2.95.3  192.2.95.1  1   0  fe80::21:28:1a:39  fe80::21:28:10:b9
192.2.95.3  192.2.95.1  0   0  fe80::21:28:1a:39  fe80::21:28:10:b9
"
After this commit, the output is as below:
"
RDS IB Connections:
 LocalAddr  RemoteAddr Tos SL  LocalDev               RemoteDev
192.2.95.3  192.2.95.1  2   2  fe80::21:28:1a:39  fe80::21:28:10:b9
192.2.95.3  192.2.95.1  1   1  fe80::21:28:1a:39  fe80::21:28:10:b9
192.2.95.3  192.2.95.1  0   0  fe80::21:28:1a:39  fe80::21:28:10:b9
"

The commit fe3475af3bdf ("net: rds: add per rds connection cache
statistics") adds cache_allocs in struct rds_info_rdma_connection
as below:
struct rds_info_rdma_connection {
...
        __u32           rdma_mr_max;
        __u32           rdma_mr_size;
        __u8            tos;
        __u32           cache_allocs;
 };
The peer struct in rds-tools of struct rds_info_rdma_connection is as
below:
struct rds_info_rdma_connection {
...
        uint32_t        rdma_mr_max;
        uint32_t        rdma_mr_size;
        uint8_t         tos;
        uint8_t         sl;
        uint32_t        cache_allocs;
};
The difference between userspace and kernel is the member variable sl.
In the kernel struct, the member variable sl is missing. This will
introduce risks. So it is necessary to use this commit to avoid this risk.

Fixes: fe3475af3bdf ("net: rds: add per rds connection cache statistics")
CC: Joe Jin &lt;joe.jin@oracle.com&gt;
CC: JUNXIAO_BI &lt;junxiao.bi@oracle.com&gt;
Suggested-by: Gerd Rausch &lt;gerd.rausch@oracle.com&gt;
Signed-off-by: Zhu Yanjun &lt;yanjun.zhu@oracle.com&gt;
Acked-by: Santosh Shilimkar &lt;santosh.shilimkar@oracle.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
</feed>
