[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH -next] xen-netback: fix some error return code



On 12/16/2013 09:40 PM, Ian Campbell wrote:
> On Mon, 2013-12-16 at 13:13 +0000, Wei Liu wrote:
>> On Mon, Dec 16, 2013 at 01:49:29PM +0800, Wei Yongjun wrote:
>>> From: Wei Yongjun <yongjun_wei@xxxxxxxxxxxxxxxxx>
>>>
>>> Fix to return -EPROTO error code instead of 0(overwrite by 
>>> maybe_pull_tail())
>>> if skb_partial_csum_set() return false.
>>>
>>> Signed-off-by: Wei Yongjun <yongjun_wei@xxxxxxxxxxxxxxxxx>
>>> ---
>>>  drivers/net/xen-netback/netback.c | 16 ++++++++++++----
>>>  1 file changed, 12 insertions(+), 4 deletions(-)
>>>
>>> diff --git a/drivers/net/xen-netback/netback.c 
>>> b/drivers/net/xen-netback/netback.c
>>> index 800496b..b16daa7 100644
>>> --- a/drivers/net/xen-netback/netback.c
>>> +++ b/drivers/net/xen-netback/netback.c
>>> @@ -1108,8 +1108,10 @@ static int checksum_setup_ip(struct xenvif *vif, 
>>> struct sk_buff *skb,
>>>                     goto out;
>>>  
>>>             if (!skb_partial_csum_set(skb, off,
>>> -                                     offsetof(struct tcphdr, check)))
>>> +                                     offsetof(struct tcphdr, check))) {
>>> +                   err = -EPROTO;
>> Why is this needed? It is set to -EPROTO before the 'switch'.
> Agreed.

As I said in the description, err is overwrited to 0 by the above
'err = maybe_pull_tail(...)' call in the same 'case XXX'.
Refer to the source code:

1104                 err = maybe_pull_tail(skb,
1105                                       off + sizeof(struct tcphdr),
1106                                       MAX_IP_HDR_LEN);
1107                 if (err < 0)
1108                         goto out;
1109 
1110                 if (!skb_partial_csum_set(skb, off,
1111                                           offsetof(struct tcphdr, check)))
1112                         goto out;




_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.