<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/drivers/net/ethernet/cavium/liquidio/request_manager.c, branch linux-6.2.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.</subtitle>
<id>https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-6.2.y</id>
<link rel='self' href='https://universe.0xinfinity.dev/distro/kernel/atom?h=linux-6.2.y'/>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/'/>
<updated>2020-06-17T22:04:03Z</updated>
<entry>
<title>liquidio: Replace vmalloc_node + memset with vzalloc_node and use array_size</title>
<updated>2020-06-17T22:04:03Z</updated>
<author>
<name>Gustavo A. R. Silva</name>
<email>gustavoars@kernel.org</email>
</author>
<published>2020-06-15T21:18:55Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=682591f7a6fae0cba255af889fae3d6e211d4d25'/>
<id>urn:sha1:682591f7a6fae0cba255af889fae3d6e211d4d25</id>
<content type='text'>
Use vzalloc/vzalloc_node instead of the vmalloc/vzalloc_node and memset.

Also, notice that vzalloc_node() function has no 2-factor argument form
to calculate the size for the allocation, so multiplication factors need
to be wrapped in array_size().

This issue was found with the help of Coccinelle and, audited and fixed
manually.

Addresses-KSPP-ID: https://github.com/KSPP/linux/issues/83
Signed-off-by: Gustavo A. R. Silva &lt;gustavoars@kernel.org&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>liquidio: add cleanup in octeon_setup_iq()</title>
<updated>2019-08-15T19:37:37Z</updated>
<author>
<name>Wenwen Wang</name>
<email>wenwen@cs.uga.edu</email>
</author>
<published>2019-08-14T05:14:49Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=6f967f8b1be7001b31c46429f2ee7d275af2190f'/>
<id>urn:sha1:6f967f8b1be7001b31c46429f2ee7d275af2190f</id>
<content type='text'>
If oct-&gt;fn_list.enable_io_queues() fails, no cleanup is executed, leading
to memory/resource leaks. To fix this issue, invoke
octeon_delete_instr_queue() before returning from the function.

Signed-off-by: Wenwen Wang &lt;wenwen@cs.uga.edu&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>liquidio: Replace vmalloc + memset with vzalloc</title>
<updated>2019-07-18T18:54:29Z</updated>
<author>
<name>Chuhong Yuan</name>
<email>hslester96@gmail.com</email>
</author>
<published>2019-07-18T07:45:42Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=5a860f9184eb45b2df3fb3364a6b7d076545f83d'/>
<id>urn:sha1:5a860f9184eb45b2df3fb3364a6b7d076545f83d</id>
<content type='text'>
Use vzalloc and vzalloc_node instead of using vmalloc and
vmalloc_node and then zeroing the allocated memory by
memset 0.
This simplifies the code.

Signed-off-by: Chuhong Yuan &lt;hslester96@gmail.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>drivers: Remove explicit invocations of mmiowb()</title>
<updated>2019-04-08T11:01:02Z</updated>
<author>
<name>Will Deacon</name>
<email>will.deacon@arm.com</email>
</author>
<published>2019-02-22T17:14:59Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=fb24ea52f78e0d595852e09e3a55697c8f442189'/>
<id>urn:sha1:fb24ea52f78e0d595852e09e3a55697c8f442189</id>
<content type='text'>
mmiowb() is now implied by spin_unlock() on architectures that require
it, so there is no reason to call it from driver code. This patch was
generated using coccinelle:

	@mmiowb@
	@@
	- mmiowb();

and invoked as:

$ for d in drivers include/linux/qed sound; do \
spatch --include-headers --sp-file mmiowb.cocci --dir $d --in-place; done

NOTE: mmiowb() has only ever guaranteed ordering in conjunction with
spin_unlock(). However, pairing each mmiowb() removal in this patch with
the corresponding call to spin_unlock() is not at all trivial, so there
is a small chance that this change may regress any drivers incorrectly
relying on mmiowb() to order MMIO writes between CPUs using lock-free
synchronisation. If you've ended up bisecting to this commit, you can
reintroduce the mmiowb() calls using wmb() instead, which should restore
the old behaviour on all architectures other than some esoteric ia64
systems.

Acked-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
Signed-off-by: Will Deacon &lt;will.deacon@arm.com&gt;
</content>
</entry>
<entry>
<title>liquidio: remove set but not used variable 'irh'</title>
<updated>2018-09-02T05:24:52Z</updated>
<author>
<name>YueHaibing</name>
<email>yuehaibing@huawei.com</email>
</author>
<published>2018-08-31T12:03:56Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=c9e4f5f067f0e9224db9af77262b5a69c07cf263'/>
<id>urn:sha1:c9e4f5f067f0e9224db9af77262b5a69c07cf263</id>
<content type='text'>
Fixes gcc '-Wunused-but-set-variable' warning:

drivers/net/ethernet/cavium/liquidio/request_manager.c: In function 'lio_process_iq_request_list':
drivers/net/ethernet/cavium/liquidio/request_manager.c:383:27: warning:
 variable 'irh' set but not used [-Wunused-but-set-variable]

Signed-off-by: YueHaibing &lt;yuehaibing@huawei.com&gt;
Acked-by: Felix Manlunas &lt;felix.manlunas@cavium.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>liquidio: improve soft command handling</title>
<updated>2018-08-30T03:07:41Z</updated>
<author>
<name>Felix Manlunas</name>
<email>felix.manlunas@cavium.com</email>
</author>
<published>2018-08-29T01:51:30Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=c9aec05228dc6fa5573c56dba6bed43250228069'/>
<id>urn:sha1:c9aec05228dc6fa5573c56dba6bed43250228069</id>
<content type='text'>
1. Set LIO_SC_MAX_TMO_MS as the maximum timeout value for a soft command
   (sc).  All sc's use this value as a hard timeout value. Add expiry_time
   in struct octeon_soft_command to keep the hard timeout value. The field
   wait_time and timeout in struct octeon_soft_command will be obsoleted in
   the last patch of this patch series.
2. Add processing a synchronous sc in sc response thread
   lio_process_ordered_list. The memory allocated for a synchronous sc will
   be freed by lio_process_ordered_list() to the sc pool.
3. Add two response lists for lio_process_ordered_list to process the
   storage allocated for sc's:
   OCTEON_DONE_SC_LIST response list keeps all sc's which will be freed to
   the pool after their requestors have finished processing the responses.
   OCTEON_ZOMBIE_SC_LIST response list keeps all sc's which have got
   LIO_SC_MAX_TMO_MS timeout.
   When an sc gets a hard timeout, lio_process_order_list() will recheck
   its status 1 ms later. If the status has not updated by the firmware at
   that time, the sc will be removed from OCTEON_DONE_SC_LIST response list
   to OCTEON_ZOMBIE_SC_LIST response list. The sc's in the
   OCTEON_ZOMBIE_SC_LIST response list will be freed when the driver is
   unloaded.

Signed-off-by: Weilin Chang &lt;weilin.chang@cavium.com&gt;
Signed-off-by: Felix Manlunas &lt;felix.manlunas@cavium.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>liquidio: fix race condition in instruction completion processing</title>
<updated>2018-08-30T02:47:52Z</updated>
<author>
<name>Rick Farrington</name>
<email>ricardo.farrington@cavium.com</email>
</author>
<published>2018-08-28T18:32:55Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=b943f17e06493fd2c7fd00743093ad5dcdb90e7f'/>
<id>urn:sha1:b943f17e06493fd2c7fd00743093ad5dcdb90e7f</id>
<content type='text'>
In lio_enable_irq, the pkt_in_done count register was being cleared to
zero.  However, there could be some completed instructions which were not
yet processed due to budget and limit constraints.
So, only write this register with the number of actual completions
that were processed.

Signed-off-by: Rick Farrington &lt;ricardo.farrington@cavium.com&gt;
Signed-off-by: Felix Manlunas &lt;felix.manlunas@cavium.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>liquidio: remove unnecessary delay when processing IQ responses</title>
<updated>2018-08-30T02:47:52Z</updated>
<author>
<name>Rick Farrington</name>
<email>ricardo.farrington@cavium.com</email>
</author>
<published>2018-08-28T18:19:54Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=9ecc660ea1a7a5cebf403fb74ad363400d645463'/>
<id>urn:sha1:9ecc660ea1a7a5cebf403fb74ad363400d645463</id>
<content type='text'>
Signed-off-by: Rick Farrington &lt;ricardo.farrington@cavium.com&gt;
Signed-off-by: Felix Manlunas &lt;felix.manlunas@cavium.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>liquidio: avoided acquiring post_lock for data only queues</title>
<updated>2018-08-07T19:40:43Z</updated>
<author>
<name>Intiyaz Basha</name>
<email>intiyaz.basha@cavium.com</email>
</author>
<published>2018-08-06T20:09:40Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=7395a8845588ebdf170f4d3796d44142458741be'/>
<id>urn:sha1:7395a8845588ebdf170f4d3796d44142458741be</id>
<content type='text'>
All control commands (soft commands) goes through only Queue 0
(control and data queue). So only queue-0 needs post_lock,
other queues are only data queues and does not need post_lock

Added a flag to indicate the queue can be used for soft commands.

If this flag is set, post_lock must be acquired before posting
a command to the queue.
If this flag is clear, post_lock is invalid for the queue.

Signed-off-by: Intiyaz Basha &lt;intiyaz.basha@cavium.com&gt;
Signed-off-by: Felix Manlunas &lt;felix.manlunas@cavium.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>liquidio: Use %pad printk format for dma_addr_t values</title>
<updated>2018-07-16T20:36:49Z</updated>
<author>
<name>Helge Deller</name>
<email>deller@gmx.de</email>
</author>
<published>2018-07-12T20:36:29Z</published>
<link rel='alternate' type='text/html' href='https://universe.0xinfinity.dev/distro/kernel/commit/?id=6e85d7a8bc6543fcf81b1b2af0901e5f3332d113'/>
<id>urn:sha1:6e85d7a8bc6543fcf81b1b2af0901e5f3332d113</id>
<content type='text'>
Use the existing %pad printk format to print dma_addr_t values.
This avoids the following warnings when compiling on the parisc platform:

warning: format '%llx' expects argument of type 'long long unsigned int', but argument 2 has type 'dma_addr_t {aka unsigned int}' [-Wformat=]

Signed-off-by: Helge Deller &lt;deller@gmx.de&gt;
Acked-by: Felix Manlunas &lt;felix.manlunas@cavium.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
</feed>
