From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751793AbdISUIC (ORCPT ); Tue, 19 Sep 2017 16:08:02 -0400 Received: from mout.gmx.net ([212.227.15.18]:58026 "EHLO mout.gmx.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751484AbdISUH7 (ORCPT ); Tue, 19 Sep 2017 16:07:59 -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> From: Helge Deller Message-ID: Date: Tue, 19 Sep 2017 22:07:31 +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: <063D6719AE5E284EB5DD2968C1650D6DD007A0D0@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:5D74uQQEyTAfMr25zbg/O8eS4OrjnVk8S7Yxslxgt+BH/R9D8tK JesMpa990WhUza/JO2xrVH7nrRquAzH/zGmmOWbz+KCBEPXKIEMA6AEdqQBMzy0z6ATKHJC ipl7NDAAaFqfFIS4L2Tz6c6EKSrUUU+uvvFYusHWxwL8xztD5MyQON31N1jTyN0wsAUJwNA Vdy+FoN1wUqImFxyndqPA== X-UI-Out-Filterresults: notjunk:1;V01:K0:QlWbCJ5Cacg=:dHOKVBaGTvsiuXjmOeVs/c SPyi55BqsbYf/eILgIYvBqcH2M/qrrW6NURimPyH81UeNwS4vLJxYzW36fsce07idomnwvlD4 w54nEInf4EMWOPeBYrGg2fl1zePGY16LUMIf/ITZJz7buCjo0CQX27y3FbmgUmfdCTCs/WjL1 vRz501BXhdm1m9wUcJic+fragTZ3iWHKo5df5f4a8MZ8r0rlrpQqKfjrHponb8FJiUoQjnQWl y/riFC/0Cr6wUT8Yp7F+WRJEI5VHlKHFgCjdNQgzg+r8SIARtpTu4lE5Et7hHeFIbVtqjkSrC 933DpUAppYPIpxi56mWFRd8zdJL4GHVBO3swcbVmEgUaLG8Sgv4KriB8W1b+Spye1r4xzwbGo j3rqj2eHx8yzh8tEeQI77GvpY0QJZEHyE7/Tc6FuQSrtv01pwkeqqI7zOKv4PipawqsOIKpNl Ol2b9Iknnog66gAoqkbUyaWjDS2qKvLN1yS2ps18YWYl+jWwj11VRZs0HzAXTYRBp05d9d2Gv T55acjxDz+4eiaGtgpGrK6oAi4Q0eceWulhh7oZmTYDvXqXSC2AmJAHh+sqAw+74RQq0VTltD AZsh9mUDql8p82PJGwtvci2RrP+ZBNTE5EY69WS5YSnIrbK+VrnBvGSK7KNBttt0cayI5/qDm mkizaBAqqXOQ3py87Eaa1e+qoEOZfC2K0+dtqrv7URWJqi1uOWTqDTBxJuJ7LxuQySKGa9gMn YETOZohzT2skecpjXB7riJzZ7bkCY5up3ul6s03FseFtSRZUVP/ptMX3xAb9dXXXyLPN7t9qb jMfh24Gy+rHwZjGXqg52t1b/RaNddMMYtsY/qb+TFyYiQZ6y+0= Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 19.09.2017 15:38, David Laight wrote: > From: Sergey Senozhatsky >> Sent: 19 September 2017 03:06 > ... >> I'll simply convert everything to `unsigned long'. including the >> dereference_function_descriptor() function [I believe there are >> still some casts happening when we pass addr from kernel/module >> dereference functions to dereference_function_descriptor(), or >> when we return `void *' back to symbol resolution code, etc.) >> besides, it seems that everything that uses >> dereference_function_descriptor() wants `unsigned long' anyway: > > 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. Helge From mboxrd@z Thu Jan 1 00:00:00 1970 From: Helge Deller Date: Tue, 19 Sep 2017 20:07:31 +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> In-Reply-To: <063D6719AE5E284EB5DD2968C1650D6DD007A0D0@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 19.09.2017 15:38, David Laight wrote: > From: Sergey Senozhatsky >> Sent: 19 September 2017 03:06 > ... >> I'll simply convert everything to `unsigned long'. including the >> dereference_function_descriptor() function [I believe there are >> still some casts happening when we pass addr from kernel/module >> dereference functions to dereference_function_descriptor(), or >> when we return `void *' back to symbol resolution code, etc.) >> besides, it seems that everything that uses >> dereference_function_descriptor() wants `unsigned long' anyway: > > 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. Helge