<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel.git/drivers/net/ethernet/google, 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>2021-07-14T15:00:04Z</updated>
<entry>
<title>gve: Fix swapped vars when fetching max queues</title>
<updated>2021-07-14T15:00:04Z</updated>
<author>
<name>Bailey Forrest</name>
</author>
<published>2021-06-25T02:55:41Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=d661fdfc5df5a6d54cd3ae067bb24cac54947f49'/>
<id>urn:sha1:d661fdfc5df5a6d54cd3ae067bb24cac54947f49</id>
<content type='text'>
[ Upstream commit 1db1a862a08f85edc36aad091236ac9b818e949e ]

Fixes: 893ce44df565 ("gve: Add basic driver framework for Compute Engine Virtual NIC")
Signed-off-by: Bailey Forrest &lt;bcf@google.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>gve: Correct SKB queue index validation.</title>
<updated>2021-06-03T07:09:48Z</updated>
<author>
<name>David Awogbemila</name>
</author>
<published>2021-05-17T21:08:15Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=88eda9598f2d39e4980e69a26b5112e8adafcd83'/>
<id>urn:sha1:88eda9598f2d39e4980e69a26b5112e8adafcd83</id>
<content type='text'>
[ Upstream commit fbd4a28b4fa66faaa7f510c0adc531d37e0a7848 ]

SKBs with skb_get_queue_mapping(skb) == tx_cfg.num_queues should also be
considered invalid.

Fixes: f5cedc84a30d ("gve: Add transmit and receive support")
Signed-off-by: David Awogbemila &lt;awogbemila@google.com&gt;
Acked-by: Willem de Brujin &lt;willemb@google.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>gve: Upgrade memory barrier in poll routine</title>
<updated>2021-06-03T07:09:48Z</updated>
<author>
<name>Catherine Sullivan</name>
</author>
<published>2021-05-17T21:08:14Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=a2f429c0bae00f36066abbefd34f2cf81807be28'/>
<id>urn:sha1:a2f429c0bae00f36066abbefd34f2cf81807be28</id>
<content type='text'>
[ Upstream commit f81781835f0adfae8d701545386030d223efcd6f ]

As currently written, if the driver checks for more work (via
gve_tx_poll or gve_rx_poll) before the device posts work and the
irq doorbell is not unmasked
(via iowrite32be(GVE_IRQ_ACK | GVE_IRQ_EVENT, ...)) before the device
attempts to raise an interrupt, an interrupt is lost and this could
potentially lead to the traffic being completely halted. For
example, if a tx queue has already been stopped, the driver won't get
the chance to complete work and egress will be halted.

We need a full memory barrier in the poll
routine to ensure that the irq doorbell is unmasked before the driver
checks for more work.

Fixes: f5cedc84a30d ("gve: Add transmit and receive support")
Signed-off-by: Catherine Sullivan &lt;csully@google.com&gt;
Signed-off-by: David Awogbemila &lt;awogbemila@google.com&gt;
Acked-by: Willem de Brujin &lt;willemb@google.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>gve: Add NULL pointer checks when freeing irqs.</title>
<updated>2021-06-03T07:09:48Z</updated>
<author>
<name>David Awogbemila</name>
</author>
<published>2021-05-17T21:08:13Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=5278c75266c5094d3c0958793bf12fc90300e580'/>
<id>urn:sha1:5278c75266c5094d3c0958793bf12fc90300e580</id>
<content type='text'>
[ Upstream commit 5218e919c8d06279884aa0baf76778a6817d5b93 ]

When freeing notification blocks, we index priv-&gt;msix_vectors.
If we failed to allocate priv-&gt;msix_vectors (see abort_with_msix_vectors)
this could lead to a NULL pointer dereference if the driver is unloaded.

Fixes: 893ce44df565 ("gve: Add basic driver framework for Compute Engine Virtual NIC")
Signed-off-by: David Awogbemila &lt;awogbemila@google.com&gt;
Acked-by: Willem de Brujin &lt;willemb@google.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>gve: Update mgmt_msix_idx if num_ntfy changes</title>
<updated>2021-06-03T07:09:47Z</updated>
<author>
<name>David Awogbemila</name>
</author>
<published>2021-05-17T21:08:12Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=9361862c3bd34a1f87021b6732eed80602222282'/>
<id>urn:sha1:9361862c3bd34a1f87021b6732eed80602222282</id>
<content type='text'>
[ Upstream commit e96b491a0ffa35a8a9607c193fa4d894ca9fb32f ]

If we do not get the expected number of vectors from
pci_enable_msix_range, we update priv-&gt;num_ntfy_blks but not
priv-&gt;mgmt_msix_idx. This patch fixes this so that priv-&gt;mgmt_msix_idx
is updated accordingly.

Fixes: f5cedc84a30d ("gve: Add transmit and receive support")
Signed-off-by: David Awogbemila &lt;awogbemila@google.com&gt;
Acked-by: Willem de Bruijn &lt;willemb@google.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>gve: Check TX QPL was actually assigned</title>
<updated>2021-06-03T07:09:47Z</updated>
<author>
<name>Catherine Sullivan</name>
</author>
<published>2021-05-17T21:08:11Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=59da77df9f3474e3d5a6e1aee730324e5cbe88bc'/>
<id>urn:sha1:59da77df9f3474e3d5a6e1aee730324e5cbe88bc</id>
<content type='text'>
[ Upstream commit 5aec55b46c6238506cdf0c60cd0e42ab77a1e5e0 ]

Correctly check the TX QPL was assigned and unassigned if
other steps in the allocation fail.

Fixes: f5cedc84a30d (gve: Add transmit and receive support)
Signed-off-by: Catherine Sullivan &lt;csully@google.com&gt;
Signed-off-by: David Awogbemila &lt;awogbemila@google.com&gt;
Acked-by: Willem de Bruijn &lt;willemb@google.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
Signed-off-by: Sasha Levin &lt;sashal@kernel.org&gt;
</content>
</entry>
<entry>
<title>gve: Add support for raw addressing in the tx path</title>
<updated>2020-12-09T00:06:28Z</updated>
<author>
<name>Catherine Sullivan</name>
</author>
<published>2020-12-07T22:45:26Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=6f007c6486d69967ac1d9e67df9ae9c77d49f1cc'/>
<id>urn:sha1:6f007c6486d69967ac1d9e67df9ae9c77d49f1cc</id>
<content type='text'>
During TX, skbs' data addresses are dma_map'ed and passed to the NIC.
This means that the device can perform DMA directly from these addresses
and the driver does not have to copy the buffer content into
pre-allocated buffers/qpls (as in qpl mode).

Reviewed-by: Yangchun Fu &lt;yangchun@google.com&gt;
Signed-off-by: Catherine Sullivan &lt;csully@google.com&gt;
Signed-off-by: David Awogbemila &lt;awogbemila@google.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>gve: Rx Buffer Recycling</title>
<updated>2020-12-09T00:06:28Z</updated>
<author>
<name>David Awogbemila</name>
</author>
<published>2020-12-07T22:45:25Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=02b0e0c18ba75227e0482600950c6abe71ace30f'/>
<id>urn:sha1:02b0e0c18ba75227e0482600950c6abe71ace30f</id>
<content type='text'>
This patch lets the driver reuse buffers that have been freed by the
networking stack.

In the raw addressing case, this allows the driver avoid allocating new
buffers.
In the qpl case, the driver can avoid copies.

This patch separates the page refcount tracking mechanism
into a function gve_rx_can_recycle_buffer which uses get_page - this will
be changed in a future patch to entirely eliminate the use of get_page in
tracking page refcounts.

Signed-off-by: David Awogbemila &lt;awogbemila@google.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>gve: Add support for raw addressing to the rx path</title>
<updated>2020-12-09T00:06:28Z</updated>
<author>
<name>Catherine Sullivan</name>
</author>
<published>2020-12-07T22:45:24Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=ede3fcf5ec67f717e297f060ad00b524a074c4e0'/>
<id>urn:sha1:ede3fcf5ec67f717e297f060ad00b524a074c4e0</id>
<content type='text'>
Add support to use raw dma addresses in the rx path. Due to this new
support we can alloc a new buffer instead of making a copy.

RX buffers are handed to the networking stack and are
re-allocated as needed, avoiding the need to use
skb_copy_to_linear_data() as in "qpl" mode.

Reviewed-by: Yangchun Fu &lt;yangchun@google.com&gt;
Signed-off-by: Catherine Sullivan &lt;csully@google.com&gt;
Signed-off-by: David Awogbemila &lt;awogbemila@google.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>gve: Add support for raw addressing device option</title>
<updated>2020-12-09T00:06:28Z</updated>
<author>
<name>Catherine Sullivan</name>
</author>
<published>2020-12-07T22:45:23Z</published>
<link rel='alternate' type='text/html' href='https://git.0xinfinity.dev/distro/kernel.git/commit/?id=4944db80ac1133fe4acb0c9756758da088338b26'/>
<id>urn:sha1:4944db80ac1133fe4acb0c9756758da088338b26</id>
<content type='text'>
Add support to describe device for parsing device options. As
the first device option, add raw addressing.

"Raw Addressing" mode (as opposed to the current "qpl" mode) is an
operational mode which allows the driver avoid bounce buffer copies
which it currently performs using pre-allocated qpls (queue_page_lists)
when sending and receiving packets.
For egress packets, the provided skb data addresses will be dma_map'ed and
passed to the device, allowing the NIC can perform DMA directly - the
driver will not have to copy the buffer content into pre-allocated
buffers/qpls (as in qpl mode).
For ingress packets, copies are also eliminated as buffers are handed to
the networking stack and then recycled or re-allocated as
necessary, avoiding the use of skb_copy_to_linear_data().

This patch only introduces the option to the driver.
Subsequent patches will add the ingress and egress functionality.

Reviewed-by: Yangchun Fu &lt;yangchun@google.com&gt;
Signed-off-by: Catherine Sullivan &lt;csully@google.com&gt;
Signed-off-by: David Awogbemila &lt;awogbemila@google.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
</feed>
