<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/net/ethernet/pensando/ionic/ionic_dev.c, branch linux-5.12.y</title>
<subtitle>Hosts the 0x221E linux distro kernel.
</subtitle>
<id>https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.12.y</id>
<link rel='self' href='https://git.0xinfinity.dev/distro/kernel.git/atom?h=linux-5.12.y'/>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/'/>
<updated>2020-12-02T01:14:23Z</updated>
<entry>
<title>ionic: remove some unnecessary oom messages</title>
<updated>2020-12-02T01:14:23Z</updated>
<author>
<name>Shannon Nelson</name>
</author>
<published>2020-12-01T00:25:45Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=c0c682eeb8ccb11c05c29c34820224b7556cdf19'/>
<id>urn:sha1:c0c682eeb8ccb11c05c29c34820224b7556cdf19</id>
<content type='text'>
Remove memory allocation fail messages where the OOM stack
trace will make it obvious which allocation request failed.

Signed-off-by: Shannon Nelson &lt;snelson@pensando.io&gt;
Signed-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
</content>
</entry>
<entry>
<title>ionic: useful names for booleans</title>
<updated>2020-11-14T21:22:59Z</updated>
<author>
<name>Shannon Nelson</name>
</author>
<published>2020-11-12T18:22:08Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=7c8d008cc0685b4a66d4d1f4470bb1c3fbd6c710'/>
<id>urn:sha1:7c8d008cc0685b4a66d4d1f4470bb1c3fbd6c710</id>
<content type='text'>
With a few more uses of true and false in function calls, we
need to give them some useful names so we can tell from the
calling point what we're doing.

Signed-off-by: Shannon Nelson &lt;snelson@pensando.io&gt;
Reviewed-by: Saeed Mahameed &lt;saeedm@nvidia.com&gt;
Signed-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
</content>
</entry>
<entry>
<title>ionic: clean up sparse complaints</title>
<updated>2020-10-24T01:37:23Z</updated>
<author>
<name>Shannon Nelson</name>
</author>
<published>2020-10-22T23:55:29Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d701ec326a31945d1533b438a6feab753829b738'/>
<id>urn:sha1:d701ec326a31945d1533b438a6feab753829b738</id>
<content type='text'>
The sparse complaints around the static_asserts were obscuring
more useful complaints.  So, don't check the static_asserts,
and fix the remaining sparse complaints.

Signed-off-by: Shannon Nelson &lt;snelson@pensando.io&gt;
Signed-off-by: Jakub Kicinski &lt;kuba@kernel.org&gt;
</content>
</entry>
<entry>
<title>ionic: prevent early watchdog check</title>
<updated>2020-09-30T22:11:09Z</updated>
<author>
<name>Shannon Nelson</name>
</author>
<published>2020-09-30T17:48:28Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=0816e0c8188e7db85a7284d3f0f456947ebb049c'/>
<id>urn:sha1:0816e0c8188e7db85a7284d3f0f456947ebb049c</id>
<content type='text'>
In one corner case scenario, the driver device lif setup can
get delayed such that the ionic_watchdog_cb() timer goes off
before the ionic-&gt;lif is set, thus causing a NULL pointer panic.
We catch the problem by checking for a NULL lif just a little
earlier in the callback.

Signed-off-by: Shannon Nelson &lt;snelson@pensando.io&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>ionic: stop watchdog timer earlier on remove</title>
<updated>2020-09-30T22:11:09Z</updated>
<author>
<name>Shannon Nelson</name>
</author>
<published>2020-09-30T17:48:27Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=df8aeaa8268f11dc3c2d0975954624cf324eab15'/>
<id>urn:sha1:df8aeaa8268f11dc3c2d0975954624cf324eab15</id>
<content type='text'>
We need to be better at making sure we don't have a link check
watchdog go off while we're shutting things down, so let's stop
the timer as soon as we start the remove.

Meanwhile, since that was the only thing in
ionic_dev_teardown(), simplify and remove that function.

Signed-off-by: Shannon Nelson &lt;snelson@pensando.io&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>net: ionic: Replace in_interrupt() usage.</title>
<updated>2020-09-29T21:02:54Z</updated>
<author>
<name>Sebastian Andrzej Siewior</name>
</author>
<published>2020-09-29T20:25:20Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=1800eee1667677a37faa4c5ae297c478ee0c4062'/>
<id>urn:sha1:1800eee1667677a37faa4c5ae297c478ee0c4062</id>
<content type='text'>
The in_interrupt() usage in this driver tries to figure out which context
may sleep and which context may not sleep. in_interrupt() is not really
suitable as it misses both preemption disabled and interrupt disabled
invocations from task context.

Conditionals like that in driver code are frowned upon in general because
invocations of functions from invalid contexts might not be detected
as the conditional papers over it.

ionic_lif_addr() and _ionoc_lif_rx_mode() can be called from:

 1) -&gt;ndo_set_rx_mode() which is under netif_addr_lock_bh()) so it must not
    sleep.

 2) Init and setup functions which are in fully preemptible task context.

ionic_link_status_check_request() has two call paths:

 1) NAPI which obviously cannot sleep

 2) Setup which is again fully preemptible task context

Add arguments which convey the execution context to the affected functions
and let the callers provide the context instead of letting the functions
deduce it.

Signed-off-by: Sebastian Andrzej Siewior &lt;bigeasy@linutronix.de&gt;
Signed-off-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>ionic: clean up desc_info and cq_info structs</title>
<updated>2020-09-02T22:47:01Z</updated>
<author>
<name>Shannon Nelson</name>
</author>
<published>2020-09-01T18:20:21Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=339dcf7fe33f64c705cde6c5af5e47797274ae40'/>
<id>urn:sha1:339dcf7fe33f64c705cde6c5af5e47797274ae40</id>
<content type='text'>
Remove some unnecessary struct fields and related code.

Co-developed-by: Neel Patel &lt;neel@pensando.io&gt;
Signed-off-by: Shannon Nelson &lt;snelson@pensando.io&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>ionic: use index not pointer for queue tracking</title>
<updated>2020-08-28T15:01:30Z</updated>
<author>
<name>Shannon Nelson</name>
</author>
<published>2020-08-27T23:00:26Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=f1d2e894f1b77decfdae72fa41c24ddd2ecd33bc'/>
<id>urn:sha1:f1d2e894f1b77decfdae72fa41c24ddd2ecd33bc</id>
<content type='text'>
Use index counters rather than pointers for tracking head
and tail in the queues to save a little memory and to perhaps
slightly faster queue processing.

Signed-off-by: Shannon Nelson &lt;snelson@pensando.io&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>ionic: remove lif list concept</title>
<updated>2020-08-28T15:01:30Z</updated>
<author>
<name>Shannon Nelson</name>
</author>
<published>2020-08-27T23:00:22Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=30b87ab4c0b30e0f681cb7dfaab6c642dd17e454'/>
<id>urn:sha1:30b87ab4c0b30e0f681cb7dfaab6c642dd17e454</id>
<content type='text'>
As we aren't yet supporting multiple lifs, we can remove
complexity by removing the list concept and related code,
to be re-engineered later when actually needed.

Signed-off-by: Shannon Nelson &lt;snelson@pensando.io&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>ionic: support longer tx sg lists</title>
<updated>2020-05-12T19:19:30Z</updated>
<author>
<name>Shannon Nelson</name>
</author>
<published>2020-05-12T00:59:27Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5b3f3f2a71ed1cecf6fcf9e8c858a89589415449'/>
<id>urn:sha1:5b3f3f2a71ed1cecf6fcf9e8c858a89589415449</id>
<content type='text'>
The version 1 Tx queues can use longer SG lists than the
original version 0 queues, but we need to check to see if the
firmware supports the v1 Tx queues.  This implements the queue
type query for all queue types, and uses the information to
set up for using the longer Tx SG lists.

Because the Tx SG list can be longer, we need to limit the
max ring length to be sure we stay inside the boundaries of a
DMA allocation max size, so we lower the max Tx ring size.

The driver sets its highest known version in the Q_IDENTITY
command, and the FW returns the highest version that it knows,
bounded by the driver's version.  The negotiated version number
is later used in the Q_INIT commands.

Signed-off-by: Shannon Nelson &lt;snelson@pensando.io&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
</feed>
