From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-9.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_PASS,URIBL_BLOCKED, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 966CBC10F10 for ; Thu, 21 Mar 2019 22:20:16 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 6D20C2192B for ; Thu, 21 Mar 2019 22:20:16 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727451AbfCUWUO (ORCPT ); Thu, 21 Mar 2019 18:20:14 -0400 Received: from mail-pf1-f193.google.com ([209.85.210.193]:42489 "EHLO mail-pf1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727374AbfCUWUB (ORCPT ); Thu, 21 Mar 2019 18:20:01 -0400 Received: by mail-pf1-f193.google.com with SMTP id r15so50919pfn.9 for ; Thu, 21 Mar 2019 15:20:00 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=wnDwKxSGOOHg7HXphyoh5VAy7k314G2wLERcSPS3C/I=; b=BhRh/fxzz59YkURU6MtukHSjRD9Pnw4TlRMEBrHsBWtAht91oBGst633Wj9yavHrYj CWjfRi0DLgod1xafxZ7bjR5B7CnQUlfu0iEkT16MYqlQxmEwAWAICaLou0dULvJWJiKd wKllSjz3RQFctrfQnf1uAuOYMAX0KVoW1a6bdXU9+kNhxDIem+LC6+95a+2X3suJc4Il yhtpDqmA3jxQ+K4ktxswHBd4Rl/lZhVLILpL5YFJerxxovEZX7oPC+mzCaZ/XAakxA/u thligBtQZFqTuhegiBmVj1G640pg6ZokW4R0HMLIMHq5ost8VUduowBk8xcG/okikdqe ZErw== X-Gm-Message-State: APjAAAW5vODTQzr5UFEHZp5tfj/LXK7+Ruj+Pn842ldpeoglB3/e2ms1 glsraDJBO0T1dKq3qcRmJyg= X-Google-Smtp-Source: APXvYqyua20FpmYNgh6c+Mxabuz/+/ZLh+cHNzxNC9e0oaTtw++hfIwYxpAhp5w4lTQkVM+mQDn3ZA== X-Received: by 2002:a17:902:848e:: with SMTP id c14mr5987718plo.339.1553206800079; Thu, 21 Mar 2019 15:20:00 -0700 (PDT) Received: from desktop-bart.svl.corp.google.com ([2620:15c:2cd:203:5cdc:422c:7b28:ebb5]) by smtp.gmail.com with ESMTPSA id l7sm16862892pfj.162.2019.03.21.15.19.58 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 21 Mar 2019 15:19:59 -0700 (PDT) From: Bart Van Assche To: David Miller Cc: netdev@vger.kernel.org, Bart Van Assche , Willem de Bruijn Subject: [PATCH 5/7] net/core: Allow the compiler to verify declaration and definition consistency Date: Thu, 21 Mar 2019 15:19:44 -0700 Message-Id: <20190321221946.163803-6-bvanassche@acm.org> X-Mailer: git-send-email 2.20.GIT In-Reply-To: <20190321221946.163803-1-bvanassche@acm.org> References: <20190321221946.163803-1-bvanassche@acm.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Instead of declaring a function in a .c file, declare it in a header file and include that header file from the source files that define and that use the function. That allows the compiler to verify consistency of declaration and definition. See also commit 52267790ef52 ("sock: add MSG_ZEROCOPY") # v4.14. Cc: Willem de Bruijn Signed-off-by: Bart Van Assche --- net/core/datagram.c | 2 ++ net/core/datagram.h | 15 +++++++++++++++ net/core/skbuff.c | 5 ++--- 3 files changed, 19 insertions(+), 3 deletions(-) create mode 100644 net/core/datagram.h diff --git a/net/core/datagram.c b/net/core/datagram.c index b2651bb6d2a3..c42f1f0e62b6 100644 --- a/net/core/datagram.c +++ b/net/core/datagram.c @@ -61,6 +61,8 @@ #include #include +#include "datagram.h" + /* * Is a socket 'connection oriented' ? */ diff --git a/net/core/datagram.h b/net/core/datagram.h new file mode 100644 index 000000000000..bcfb75bfa3b2 --- /dev/null +++ b/net/core/datagram.h @@ -0,0 +1,15 @@ +/* SPDX-License-Identifier: GPL-2.0 */ + +#ifndef _NET_CORE_DATAGRAM_H_ +#define _NET_CORE_DATAGRAM_H_ + +#include + +struct sock; +struct sk_buff; +struct iov_iter; + +int __zerocopy_sg_from_iter(struct sock *sk, struct sk_buff *skb, + struct iov_iter *from, size_t length); + +#endif /* _NET_CORE_DATAGRAM_H_ */ diff --git a/net/core/skbuff.c b/net/core/skbuff.c index 2415d9cb9b89..4782f9354dd1 100644 --- a/net/core/skbuff.c +++ b/net/core/skbuff.c @@ -77,6 +77,8 @@ #include #include +#include "datagram.h" + struct kmem_cache *skbuff_head_cache __ro_after_init; static struct kmem_cache *skbuff_fclone_cache __ro_after_init; #ifdef CONFIG_SKB_EXTENSIONS @@ -1105,9 +1107,6 @@ void sock_zerocopy_put_abort(struct ubuf_info *uarg, bool have_uref) } EXPORT_SYMBOL_GPL(sock_zerocopy_put_abort); -extern int __zerocopy_sg_from_iter(struct sock *sk, struct sk_buff *skb, - struct iov_iter *from, size_t length); - int skb_zerocopy_iter_dgram(struct sk_buff *skb, struct msghdr *msg, int len) { return __zerocopy_sg_from_iter(skb->sk, skb, &msg->msg_iter, len); -- 2.21.0.155.ge902e9bcae20