xen-netback: correct success/error reporting for the SKB-with-fraglist case
authorJan Beulich <jbeulich@suse.com>
Fri, 17 Sep 2021 06:27:10 +0000 (08:27 +0200)
committerDavid S. Miller <davem@davemloft.net>
Sun, 19 Sep 2021 11:10:26 +0000 (12:10 +0100)
When re-entering the main loop of xenvif_tx_check_gop() a 2nd time, the
special considerations for the head of the SKB no longer apply. Don't
mistakenly report ERROR to the frontend for the first entry in the list,
even if - from all I can tell - this shouldn't matter much as the overall
transmit will need to be considered failed anyway.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Paul Durrant <paul@xen.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/xen-netback/netback.c

index 39a01c2a3058d6a8628d9dc47a7520b5f969cabe..32d5bc4919d8cc10216c625833b892385d40849a 100644 (file)
@@ -499,7 +499,7 @@ check_frags:
                                 * the header's copy failed, and they are
                                 * sharing a slot, send an error
                                 */
-                               if (i == 0 && sharedslot)
+                               if (i == 0 && !first_shinfo && sharedslot)
                                        xenvif_idx_release(queue, pending_idx,
                                                           XEN_NETIF_RSP_ERROR);
                                else