From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752795AbbCQILL (ORCPT ); Tue, 17 Mar 2015 04:11:11 -0400 Received: from mail-wg0-f46.google.com ([74.125.82.46]:35042 "EHLO mail-wg0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751268AbbCQILG (ORCPT ); Tue, 17 Mar 2015 04:11:06 -0400 Date: Tue, 17 Mar 2015 09:11:00 +0100 From: Ingo Molnar To: "H. Peter Anvin" Cc: Ross Zwisler , Borislav Petkov , linux-kernel@vger.kernel.org, Thomas Gleixner , Linus Torvalds , Andrew Morton Subject: Re: [PATCH] x86: Add kerneldoc for pcommit_sfence() Message-ID: <20150317081100.GA28383@gmail.com> References: <1426097961-24921-1-git-send-email-ross.zwisler@linux.intel.com> <20150311201830.GD3359@pd.tnic> <20150312105843.GA6812@gmail.com> <1426276993.3737.3.camel@theros.lm.intel.com> <20150316083510.GA19634@gmail.com> <55071B6B.3010102@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <55071B6B.3010102@intel.com> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org * H. Peter Anvin wrote: > On 03/16/2015 01:35 AM, Ingo Molnar wrote: > > > > :-/ > > > > Not sure what hpa's problem with 'void *' was: especially in MM code > > we are using 'void *' rather widely. > > > > All compilers that aim for being able to build the Linux kernel > > implement 'void *' as well, so that 'standard C' argument is > > pretty weak IMHO - unlike some of the more esoteric GCC > > extensions, this one is actually pretty well done and widely used > > in and outside of the kernel. > > > >> It seems like both have arguments for them. Char pointer > >> arithmetic has the advantage that its behavior is standard in C, > >> so it's not specific to gcc. I agree that void* has the > >> advantage that it fits more naturally with the types of the > >> parameters passed in, requiring no casting. > > > > It's also a bonus property of 'void *' that unlike 'char *' it > > cannot be dereferenced. So we use it for opaque buffers wherever > > we can. > > The issue isn't void *, it is doing arithmetic on void *. Mind explaining it to me a bit more verbosely, because I don't think I get your point? In my experience arithmetics on void * works just fine in the cases I tried. Thanks, Ingo