From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751234Ab2AXVpO (ORCPT ); Tue, 24 Jan 2012 16:45:14 -0500 Received: from mail.linuxfoundation.org ([140.211.169.12]:38030 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751093Ab2AXVpM (ORCPT ); Tue, 24 Jan 2012 16:45:12 -0500 Date: Tue, 24 Jan 2012 13:45:10 -0800 From: Andrew Morton To: Cyrill Gorcunov , "Eric W. Biederman" , KOSAKI Motohiro , "H. Peter Anvin" , KAMEZAWA Hiroyuki , linux-kernel@vger.kernel.org, Pavel Emelyanov , Serge Hallyn , Kees Cook , Tejun Heo , Andrew Vagin , Alexey Dobriyan , Ingo Molnar , Thomas Gleixner , Glauber Costa , Andi Kleen , Matt Helsley , Pekka Enberg , Eric Dumazet , Vasiliy Kulikov , Valdis.Kletnieks@vt.edu Subject: Re: [patch 2/4] [RFC] syscalls, x86: Add __NR_kcmp syscall v4 Message-Id: <20120124134510.75f2c63f.akpm@linux-foundation.org> In-Reply-To: <20120124132222.d78bc0d4.akpm@linux-foundation.org> References: <20120124064719.GA29735@moon> <4F1E57F3.6020607@zytor.com> <20120124071716.GC29735@moon> <20120124162031.a3956058.kamezawa.hiroyu@jp.fujitsu.com> <20120124073842.GE29735@moon> <20120124164008.aa1714bd.kamezawa.hiroyu@jp.fujitsu.com> <20120124084823.GF29735@moon> <20120124202606.GC2546@moon> <20120124205039.GB2278@moon> <20120124132222.d78bc0d4.akpm@linux-foundation.org> X-Mailer: Sylpheed 3.0.2 (GTK+ 2.20.1; x86_64-pc-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, 24 Jan 2012 13:22:22 -0800 Andrew Morton wrote: > static int kcmp_task_pointers(void *task1, void *task2, size_t field_offset, > enum you_forgot_to_name_the_enum type) > { > void **field1 = t1 + field_offset; /* points to a pointer in the task_struct */ > void **field2 = t1 + field_offset; On reflection, this was being too cute. It would be better to make the function type-safer and just put up with the local typecasts: static int kcmp_task_pointers(struct task_struct *task1, struct task_struct *task2, size_t field_offset, enum you_forgot_to_name_the_enum type) { void **field1 = (void *)t1 + field_offset; void **field2 = (void *)t2 + field_offset;