From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751359AbdKHJ5p (ORCPT ); Wed, 8 Nov 2017 04:57:45 -0500 Received: from mail-ot0-f196.google.com ([74.125.82.196]:47588 "EHLO mail-ot0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751278AbdKHJ5m (ORCPT ); Wed, 8 Nov 2017 04:57:42 -0500 X-Google-Smtp-Source: AGs4zMbvAaH+/7XbMwVtXl5WUmVCceEiXTWiv/JNttXWe/qyDjXwUVOZSN8UitxyLU6Igk+VrV0x+6UU6XCc5h5VhfQ= MIME-Version: 1.0 In-Reply-To: <6f3f5675b73bc7fe895c615b0d48f93966499782.1510118606.git.green.hu@gmail.com> References: <6f3f5675b73bc7fe895c615b0d48f93966499782.1510118606.git.green.hu@gmail.com> From: Arnd Bergmann Date: Wed, 8 Nov 2017 10:57:41 +0100 X-Google-Sender-Auth: 1neYxwFGH7UpOpz9G0nXK3LOD2k Message-ID: Subject: Re: [PATCH 24/31] nds32: Miscellaneous header files To: Greentime Hu Cc: greentime@andestech.com, Linux Kernel Mailing List , linux-arch , Thomas Gleixner , Jason Cooper , Marc Zyngier , Rob Herring , Networking , Vincent Chen Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Nov 8, 2017 at 6:55 AM, Greentime Hu wrote: > + > +static inline void __delay(unsigned long loops) > +{ > + __asm__ __volatile__(".align 2\n" > + "1:\n" > + "\taddi\t%0, %0, -1\n" > + "\tbgtz\t%0, 1b\n" > + :"=r"(loops) > + :"0"(loops)); > +} Does the architecture define a high-resolution clock source? If yes, then it's better to use that to get exact timing than to rely on the loop calibration. > +/* > + * This file is generally used by user-level software, so you need to > + * be a little careful about namespace pollution etc. Also, we cannot > + * assume GCC is being used. > + */ > + > +typedef unsigned short __kernel_mode_t; > +#define __kernel_mode_t __kernel_mode_t > + > +typedef unsigned short __kernel_ipc_pid_t; > +#define __kernel_ipc_pid_t __kernel_ipc_pid_t > + > +typedef unsigned short __kernel_uid_t; > +typedef unsigned short __kernel_gid_t; > +#define __kernel_uid_t __kernel_uid_t > + > +typedef unsigned short __kernel_old_dev_t; > +#define __kernel_old_dev_t __kernel_old_dev_t > + > +#include I don't understand why you would want to override any of those. Changing them unfortunately means rebuilding all of your user space, but I think it would be better to do that now than to suffer from this later on. Arnd