Messages in this thread | | | Date | Wed, 7 Dec 2022 11:18:58 +0100 | Subject | Re: [PATCH] xen/netback: fix build warning | From | Juergen Gross <> |
| |
On 07.12.22 10:25, Jan Beulich wrote: > On 07.12.2022 08:23, Juergen Gross wrote: >> Commit ad7f402ae4f4 ("xen/netback: Ensure protocol headers don't fall in >> the non-linear area") introduced a (valid) build warning. >> >> Fix it. >> >> Fixes: ad7f402ae4f4 ("xen/netback: Ensure protocol headers don't fall in the non-linear area") >> Signed-off-by: Juergen Gross <jgross@suse.com> > > Reviewed-by: Jan Beulich <jbeulich@suse.com> > >> --- a/drivers/net/xen-netback/netback.c >> +++ b/drivers/net/xen-netback/netback.c >> @@ -530,7 +530,7 @@ static int xenvif_tx_check_gop(struct xenvif_queue *queue, >> const bool sharedslot = nr_frags && >> frag_get_pending_idx(&shinfo->frags[0]) == >> copy_pending_idx(skb, copy_count(skb) - 1); >> - int i, err; >> + int i, err = 0; >> >> for (i = 0; i < copy_count(skb); i++) { >> int newerr; > > I'm afraid other logic (below here) is now slightly wrong as well, in > particular > > /* If the mapping of the first frag was OK, but > * the header's copy failed, and they are > * sharing a slot, send an error > */ > if (i == 0 && !first_shinfo && sharedslot) > xenvif_idx_release(queue, pending_idx, > XEN_NETIF_RSP_ERROR); > else > xenvif_idx_release(queue, pending_idx, > XEN_NETIF_RSP_OKAY); > > which looks to be intended to deal with _only_ failure of the one shared > part of the header, whereas "err" now can indicate an error on any earlier > part as well.
The comment at the end of that loop seems to imply this is the desired behavior:
/* Remember the error: invalidate all subsequent fragments. */ err = newerr; }
Juergen
[unhandled content-type:application/pgp-keys][unhandled content-type:application/pgp-signature] | |