From patchwork Sat Mar 21 03:14:03 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Herbert Xu X-Patchwork-Id: 452891 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 023F114010F for ; Sat, 21 Mar 2015 14:14:29 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751219AbbCUDOO (ORCPT ); Fri, 20 Mar 2015 23:14:14 -0400 Received: from ringil.hengli.com.au ([178.18.16.133]:55091 "EHLO ringil.hengli.com.au" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750977AbbCUDON (ORCPT ); Fri, 20 Mar 2015 23:14:13 -0400 Received: from gondolin.me.apana.org.au ([192.168.0.6]) by norbury.hengli.com.au with esmtp (Exim 4.80 #3 (Debian)) id 1YZ9rS-0003KX-CB; Sat, 21 Mar 2015 14:14:06 +1100 Received: from herbert by gondolin.me.apana.org.au with local (Exim 4.80) (envelope-from ) id 1YZ9rP-0006jD-QY; Sat, 21 Mar 2015 14:14:03 +1100 Date: Sat, 21 Mar 2015 14:14:03 +1100 From: Herbert Xu To: David Miller Cc: tgraf@suug.ch, eric.dumazet@gmail.com, kaber@trash.net, netdev@vger.kernel.org Subject: Re: [v1 PATCH 0/7] rhashtable: Introduce inlined interface Message-ID: <20150321031403.GA25793@gondor.apana.org.au> References: <20150320212844.GC23301@gondor.apana.org.au> <20150320.181715.477950273744674777.davem@davemloft.net> <20150320222106.GA24241@gondor.apana.org.au> <20150320.183701.615035998227406804.davem@davemloft.net> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20150320.183701.615035998227406804.davem@davemloft.net> User-Agent: Mutt/1.5.21 (2010-09-15) Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org On Fri, Mar 20, 2015 at 06:37:01PM -0400, David Miller wrote: > > Yep, but I'm saying this alternative expression allows to remove the > trailer which even made me say "what's this for?" OK, this patch removes trailer. ---8<--- netlink: Remove netlink_compare_arg.trailer Instead of computing the offset from trailer, this patch computes netlink_compare_arg_len from the offset of portid and then adds 4 to it. This allows trailer to be removed. Reported-by: David Miller Signed-off-by: Herbert Xu diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c index 72c6b55..6517921 100644 --- a/net/netlink/af_netlink.c +++ b/net/netlink/af_netlink.c @@ -974,10 +974,11 @@ struct netlink_compare_arg { possible_net_t pnet; u32 portid; - char trailer[]; }; -#define netlink_compare_arg_len offsetof(struct netlink_compare_arg, trailer) +/* Doing sizeof directly may yield 4 extra bytes on 64-bit. */ +#define netlink_compare_arg_len \ + (offsetof(struct netlink_compare_arg, portid) + sizeof(u32)) static inline int netlink_compare(struct rhashtable_compare_arg *arg, const void *ptr)