From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932681AbbDNS1U (ORCPT ); Tue, 14 Apr 2015 14:27:20 -0400 Received: from shards.monkeyblade.net ([149.20.54.216]:36658 "EHLO shards.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753952AbbDNS1L convert rfc822-to-8bit (ORCPT ); Tue, 14 Apr 2015 14:27:11 -0400 Date: Tue, 14 Apr 2015 14:27:07 -0400 (EDT) Message-Id: <20150414.142707.472821254273583286.davem@davemloft.net> To: linus.luessing@c0d3.blue Cc: b.a.t.m.a.n@lists.open-mesh.org, netdev@vger.kernel.org, bridge@lists.linux-foundation.org, linux-kernel@vger.kernel.org, yoshfuji@linux-ipv6.org, stephen@networkplumber.org, herbert@gondor.apana.org.au, therbert@google.com Subject: Re: [PATCHv2 net-next 2/2] net: Export IGMP/MLD message validation code From: David Miller In-Reply-To: <1428993462-6079-3-git-send-email-linus.luessing@c0d3.blue> References: <1428993462-6079-1-git-send-email-linus.luessing@c0d3.blue> <1428993462-6079-3-git-send-email-linus.luessing@c0d3.blue> X-Mailer: Mew version 6.6 on Emacs 24.4 / Mule 6.0 (HANACHIRUSATO) Mime-Version: 1.0 Content-Type: Text/Plain; charset=iso-8859-1 Content-Transfer-Encoding: 8BIT X-Greylist: Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.5.12 (shards.monkeyblade.net [149.20.54.216]); Tue, 14 Apr 2015 11:27:10 -0700 (PDT) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Linus Lüssing Date: Tue, 14 Apr 2015 08:37:42 +0200 > +int skb_checksum_trimmed(struct sk_buff *skb, unsigned int transport_len, > + __sum16(*skb_check_func)(struct sk_buff *skb), > + struct sk_buff **skb_trimmed) > +{ This is a really terrible interface. It is designed in such a way that it is completely ambiguous who is resonsible for managing the lifetimes of 'skb' and 'skb_trimmed'. I would suggest changing this such that: 1) If you clone successfully, 'skb' is released. 2) whatever SKB ends up being used is returned as an error pointer. 3) The caller is responsible for freeing or grabbing a reference to the skb returned. Also, this is taking too long to finalize and we are past the openning of the merge window so you will have to submit a fixed up version when the net-next tree opens up for submissions as it is very strongly closed right now. Thanks.