<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/linux.git/drivers/net/ethernet/google, branch v5.10.78</title>
<subtitle>Linux kernel stable tree (mirror)</subtitle>
<id>https://git.radix-linux.su/kernel/linux.git/atom?h=v5.10.78</id>
<link rel='self' href='https://git.radix-linux.su/kernel/linux.git/atom?h=v5.10.78'/>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/'/>
<updated>2021-10-13T08:04:29+00:00</updated>
<entry>
<title>gve: report 64bit tx_bytes counter from gve_handle_report_stats()</title>
<updated>2021-10-13T08:04:29+00:00</updated>
<author>
<name>Eric Dumazet</name>
<email>edumazet@google.com</email>
</author>
<published>2021-10-06T01:01:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=d3a07ca78acecae90a7c8b1af7a26cbfc59ba2c8'/>
<id>urn:sha1:d3a07ca78acecae90a7c8b1af7a26cbfc59ba2c8</id>
<content type='text'>
[ Upstream commit 17c37d748f2b122a95b6d0524d410302ff89a2b1 ]

Each tx queue maintains a 64bit counter for bytes, there is
no reason to truncate this to 32bit (or this has not been
documented)

Fixes: 24aeb56f2d38 ("gve: Add Gvnic stats AQ command and ethtool show/set-priv-flags.")
Signed-off-by: Eric Dumazet &lt;edumazet@google.com&gt;
Cc: Yangchun Fu &lt;yangchun@google.com&gt;
Cc: Kuo Zhao &lt;kuozhao@google.com&gt;
Cc: David Awogbemila &lt;awogbemila@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: fix gve_get_stats()</title>
<updated>2021-10-13T08:04:28+00:00</updated>
<author>
<name>Eric Dumazet</name>
<email>edumazet@google.com</email>
</author>
<published>2021-10-06T00:30:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=35f6ddd934e6a2c9eb52a8bdf8fae72529c9a282'/>
<id>urn:sha1:35f6ddd934e6a2c9eb52a8bdf8fae72529c9a282</id>
<content type='text'>
[ Upstream commit 2f57d4975fa027eabd35fdf23a49f8222ef3abf2 ]

gve_get_stats() can report wrong numbers if/when u64_stats_fetch_retry()
returns true.

What is needed here is to sample values in temporary variables,
and only use them after each loop is ended.

Fixes: f5cedc84a30d ("gve: Add transmit and receive support")
Signed-off-by: Eric Dumazet &lt;edumazet@google.com&gt;
Cc: Catherine Sullivan &lt;csully@google.com&gt;
Cc: Sagi Shahar &lt;sagis@google.com&gt;
Cc: Jon Olson &lt;jonolson@google.com&gt;
Cc: Willem de Bruijn &lt;willemb@google.com&gt;
Cc: Luigi Rizzo &lt;lrizzo@google.com&gt;
Cc: Jeroen de Borst &lt;jeroendb@google.com&gt;
Cc: Tao Liu &lt;xliutaox@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: Avoid freeing NULL pointer</title>
<updated>2021-10-13T08:04:28+00:00</updated>
<author>
<name>Tao Liu</name>
<email>xliutaox@google.com</email>
</author>
<published>2021-10-06T02:42:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=72c2a68f1d833d2793ee63c626c376a054e2dfe4'/>
<id>urn:sha1:72c2a68f1d833d2793ee63c626c376a054e2dfe4</id>
<content type='text'>
[ Upstream commit 922aa9bcac92b3ab6a423526a8e785b35a60b441 ]

Prevent possible crashes when cleaning up after unsuccessful
initializations.

Fixes: 893ce44df5658 ("gve: Add basic driver framework for Compute Engine Virtual NIC")
Signed-off-by: Tao Liu &lt;xliutaox@google.com&gt;
Signed-off-by: Catherine Sully &lt;csully@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 available tx qpl check</title>
<updated>2021-10-13T08:04:28+00:00</updated>
<author>
<name>Catherine Sullivan</name>
<email>csully@google.com</email>
</author>
<published>2021-10-06T02:42:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=5d903a694b087f2aec9f18b0e0dedeeebd66f7af'/>
<id>urn:sha1:5d903a694b087f2aec9f18b0e0dedeeebd66f7af</id>
<content type='text'>
[ Upstream commit d03477ee10f4bc35d3573cf1823814378ef2dca2 ]

The qpl_map_size is rounded up to a multiple of sizeof(long), but the
number of qpls doesn't have to be.

Fixes: f5cedc84a30d2 ("gve: Add transmit and receive support")
Signed-off-by: Catherine Sullivan &lt;csully@google.com&gt;
Signed-off-by: Jeroen de Borst &lt;jeroendb@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: fix the wrong AdminQ buffer overflow check</title>
<updated>2021-09-15T07:50:32+00:00</updated>
<author>
<name>Haiyue Wang</name>
<email>haiyue.wang@intel.com</email>
</author>
<published>2021-07-14T07:34:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=f1673e85254d3dae8f595c0367cd33c73530952e'/>
<id>urn:sha1:f1673e85254d3dae8f595c0367cd33c73530952e</id>
<content type='text'>
[ Upstream commit 63a9192b8fa1ea55efeba1f18fad52bb24d9bf12 ]

The 'tail' pointer is also free-running count, so it needs to be masked
as 'adminq_prod_cnt' does, to become an index value of AdminQ buffer.

Fixes: 5cdad90de62c ("gve: Batch AQ commands for creating and destroying queues.")
Signed-off-by: Haiyue Wang &lt;haiyue.wang@intel.com&gt;
Reviewed-by: Catherine Sullivan &lt;csully@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: Fix an error handling path in 'gve_probe()'</title>
<updated>2021-07-28T12:35:32+00:00</updated>
<author>
<name>Christophe JAILLET</name>
<email>christophe.jaillet@wanadoo.fr</email>
</author>
<published>2021-07-01T20:18:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=78e4baff950d9fc78752f028200f501897ff84a7'/>
<id>urn:sha1:78e4baff950d9fc78752f028200f501897ff84a7</id>
<content type='text'>
[ Upstream commit 2342ae10d1272d411a468a85a67647dd115b344f ]

If the 'register_netdev() call fails, we must release the resources
allocated by the previous 'gve_init_priv()' call, as already done in the
remove function.

Add a new label and the missing 'gve_teardown_priv_resources()' in the
error handling path.

Fixes: 893ce44df565 ("gve: Add basic driver framework for Compute Engine Virtual NIC")
Signed-off-by: Christophe JAILLET &lt;christophe.jaillet@wanadoo.fr&gt;
Reviewed-by: Catherine Sullivan &lt;csully@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: Fix swapped vars when fetching max queues</title>
<updated>2021-07-14T14:56:29+00:00</updated>
<author>
<name>Bailey Forrest</name>
<email>bcf@google.com</email>
</author>
<published>2021-06-25T02:55:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=342b06b600bf662dc10ea9b6cee107122c57f68a'/>
<id>urn:sha1:342b06b600bf662dc10ea9b6cee107122c57f68a</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:00:48+00:00</updated>
<author>
<name>David Awogbemila</name>
<email>awogbemila@google.com</email>
</author>
<published>2021-05-17T21:08:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=8e534c981d7c45ecb6702178e9ea79d10313f63e'/>
<id>urn:sha1:8e534c981d7c45ecb6702178e9ea79d10313f63e</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:00:48+00:00</updated>
<author>
<name>Catherine Sullivan</name>
<email>csully@google.com</email>
</author>
<published>2021-05-17T21:08:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=48f4ddec0ab9895fde6f2b0d8a091747043e64cd'/>
<id>urn:sha1:48f4ddec0ab9895fde6f2b0d8a091747043e64cd</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:00:48+00:00</updated>
<author>
<name>David Awogbemila</name>
<email>awogbemila@google.com</email>
</author>
<published>2021-05-17T21:08:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.radix-linux.su/kernel/linux.git/commit/?id=da21a35c00ff1a1794d4f166d3b3fa8db4d0f6fb'/>
<id>urn:sha1:da21a35c00ff1a1794d4f166d3b3fa8db4d0f6fb</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>
</feed>
