From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751794AbdITKVe (ORCPT ); Wed, 20 Sep 2017 06:21:34 -0400 Received: from mout.gmx.net ([212.227.15.15]:56174 "EHLO mout.gmx.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751488AbdITKVc (ORCPT ); Wed, 20 Sep 2017 06:21:32 -0400 Subject: Re: [PATCH 0/5] [RFC] printk/ia64/ppc64/parisc64: let's deprecate %pF/%pf printk specifiers To: David Laight , "'Sergey Senozhatsky'" Cc: Fenghua Yu , "Luck, Tony" , "linux-ia64@vger.kernel.org" , Petr Mladek , Jessica Yu , "James E . J . Bottomley" , Steven Rostedt , Alexei Starovoitov , Sergey Senozhatsky , Paul Mackerras , Andrew Morton , "linuxppc-dev@lists.ozlabs.org" , "linux-kernel@vger.kernel.org" References: <20170916035347.19705-1-sergey.senozhatsky@gmail.com> <20170918174432.4fksyzco2g6gczwe@intel.com> <20170918183902.GA30752@p100.box> <20170919020537.GA16991@jagdpanzerIV.localdomain> <063D6719AE5E284EB5DD2968C1650D6DD007A0D0@AcuExch.aculab.com> <063D6719AE5E284EB5DD2968C1650D6DD007AF31@AcuExch.aculab.com> From: Helge Deller Message-ID: Date: Wed, 20 Sep 2017 12:20:56 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0 MIME-Version: 1.0 In-Reply-To: <063D6719AE5E284EB5DD2968C1650D6DD007AF31@AcuExch.aculab.com> Content-Type: text/plain; charset=windows-1252; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit X-Provags-ID: V03:K0:xR/cC1MKBKOs+N77qewqMET/QVGMeIcDq7IGPI0F2F/VcgB3Y4B x34z+ph/wRg5uFzTMdTfZ+j6IxOXk+BInxNgThOP8XtvAZ9om4TTJo/oaT2+VU2jr5xA7vp XnwqFM0M53SXustGqpOVIc0MOAVY7eKaT235n/f9jJGiM+cRik+ovDm8K7bdTR2m83qHqEH 9dHA+RpLvP9TfT5SNgXig== X-UI-Out-Filterresults: notjunk:1;V01:K0:L3hgo3ezFuI=:gXVgNOoav/LLo/bTU6PdWD rN01afnY8HBAcb4nWG2ubn4EQLOmf1mxwjPMCnxBMID1yg5+ysgMtaINf6K+cNCWv59RTFcTZ lBUWP9ftitbJq35qR7XeC6ehvRCvrtJM9M9y20UQc48vB8vgNlPvpzaVqSOdBYm/rQnEOIIM6 rw/IZHrARb+MsaDVJHw3MGjoy3eh03U7lGPnLynvsbm5AGBQNXDCf8iLMSNghz3QDGrBE6n0u nD6LJDtmKSeI4yKpORtwQPjpinLodj9+ZnFEJRy72bzJStRLnQEbGWfDIGF2uQkgOXigCbr0j r7xSIZukSltNAkVBJiRXRF54uVrMK0UcIJDGve5RFBW4tUnFKLokSUkNXtbpM2uTPZMm57tCw YTNBenNsCDsPYXKCG2U9AbPYXLyEscVhoLo/+ydcTaKVTgvfiQjBQ3mWuo6GBsYD/DhU7fDrm kgVynXLW5W82cATB+QXqSp3DUQmzyE0bHbcmiVmsyXVd6kLrHIEQSDAAwE3+rjr9nI+bjuVPI UkuRqSMU2iLz7YoYXyrOhKG8pjC31Nv7gsFXRmE7+SmWKUn0UT2G3RDBNVwTxGZmS3TzQMhQm Lj7g08C1q1N4qHFTJVyD2+IMc6w/d35Rkc9Xwx4uAnZYrxa+fgVnSmmqgXWTkcvmJnaJS1Vnh MyyE83MsHkbYQoRBLSiBgE6wE6pB4mX1Mlh1XsPzcW2brH1pgF9/aZjAB+DnKSwU6Ey0qz6cg FeipyBcJ94135tKntn8o+dEKUvIuNehbDmKEHkXGkqR6vxRg5NGrqKEYd5Coq+GihQ+I15zZN Kdovs7QYtKQQZaFqPFQSQRN6DAR965/MVGyC4g7pUsVtEsQb0Q= Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 20.09.2017 10:41, David Laight wrote: > From: Helge Deller >> Sent: 19 September 2017 21:08 > ... >>> Using 'unsigned long' for any kind of pointer is an accident >>> waiting do happen. >>> It also makes it difficult to typecheck the function calls. >>> Using 'void *' isn't any better. >>> Either a pointer to an undefined struct, or a struct containing >>> a single 'char' member, is likely to be safest. >> >> David, you might be right in most cases, but in this case I'd prefer >> unsigned long too. I think this will create the least amount of >> typecasts here. > > I've not looked at the specifics case... > > Another option is using a struct with a single member and > passing it by value. Actually, we do already have correct structs which could be referenced: parisc: struct Elf64_Fdesc ia64: struct fdesc ppc64: struct ppc64_opd_entry One could "#define platform_opd_entry" to each of those depending on the platform and use it. It might be misleading though, because the pointer which is handed over to dereference_function_descriptor() can be such a pointer but isn't necessary. I'll leave it up to Sergey to decide. Helge From mboxrd@z Thu Jan 1 00:00:00 1970 From: Helge Deller Date: Wed, 20 Sep 2017 10:20:56 +0000 Subject: Re: [PATCH 0/5] [RFC] printk/ia64/ppc64/parisc64: let's deprecate %pF/%pf printk specifiers Message-Id: List-Id: References: <20170916035347.19705-1-sergey.senozhatsky@gmail.com> <20170918174432.4fksyzco2g6gczwe@intel.com> <20170918183902.GA30752@p100.box> <20170919020537.GA16991@jagdpanzerIV.localdomain> <063D6719AE5E284EB5DD2968C1650D6DD007A0D0@AcuExch.aculab.com> <063D6719AE5E284EB5DD2968C1650D6DD007AF31@AcuExch.aculab.com> In-Reply-To: <063D6719AE5E284EB5DD2968C1650D6DD007AF31@AcuExch.aculab.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: David Laight , 'Sergey Senozhatsky' Cc: Fenghua Yu , "Luck, Tony" , "linux-ia64@vger.kernel.org" , Petr Mladek , Jessica Yu , "James E . J . Bottomley" , Steven Rostedt , Alexei Starovoitov , Sergey Senozhatsky , Paul Mackerras , Andrew Morton , "linuxppc-dev@lists.ozlabs.org" , "linux-kernel@vger.kernel.org" On 20.09.2017 10:41, David Laight wrote: > From: Helge Deller >> Sent: 19 September 2017 21:08 > ... >>> Using 'unsigned long' for any kind of pointer is an accident >>> waiting do happen. >>> It also makes it difficult to typecheck the function calls. >>> Using 'void *' isn't any better. >>> Either a pointer to an undefined struct, or a struct containing >>> a single 'char' member, is likely to be safest. >> >> David, you might be right in most cases, but in this case I'd prefer >> unsigned long too. I think this will create the least amount of >> typecasts here. > > I've not looked at the specifics case... > > Another option is using a struct with a single member and > passing it by value. Actually, we do already have correct structs which could be referenced: parisc: struct Elf64_Fdesc ia64: struct fdesc ppc64: struct ppc64_opd_entry One could "#define platform_opd_entry" to each of those depending on the platform and use it. It might be misleading though, because the pointer which is handed over to dereference_function_descriptor() can be such a pointer but isn't necessary. I'll leave it up to Sergey to decide. Helge