From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Subject: Re: [PATCH v10 03/12] peci: Add support for PECI bus driver core References: <20190107214136.5256-1-jae.hyun.yoo@linux.intel.com> <20190107214136.5256-4-jae.hyun.yoo@linux.intel.com> <20190122132047.GA12357@kroah.com> <0826ef5c-c919-cdd7-5e2a-fc056d41756e@linux.intel.com> <20190124065714.GA28194@kroah.com> <20190125071823.GC11891@kroah.com> From: Jae Hyun Yoo Message-ID: <22d2e334-b792-1047-87fb-abce2ea87e2a@linux.intel.com> Date: Fri, 25 Jan 2019 10:51:54 -0800 MIME-Version: 1.0 In-Reply-To: <20190125071823.GC11891@kroah.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit To: Greg Kroah-Hartman Cc: Lee Jones , Rob Herring , Jean Delvare , Guenter Roeck , Mark Rutland , Joel Stanley , Andrew Jeffery , Jonathan Corbet , Gustavo Pimentel , Kishon Vijay Abraham I , Lorenzo Pieralisi , "Darrick J . Wong" , Eric Sandeen , Arnd Bergmann , Wu Hao , Tomohiro Kusumi , "Bryant G . Ly" , Frederic Barrat , "David S . Miller" , Mauro Carvalho Chehab , Andrew Morton , Randy Dunlap , Philippe Ombredanne , Vinod Koul , Stephen Boyd , David Kershner , Uwe Kleine-Konig , Sagar Dharia , Johan Hovold , Thomas Gleixner , Juergen Gross , Cyrille Pitchen , linux-hwmon@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-doc@vger.kernel.org, openbmc@lists.ozlabs.org, Gavin Schenk , Viresh Kumar , Cyrille Pitchen , Alan Cox , Andrew Lunn , Andy Shevchenko , Benjamin Herrenschmidt , Fengguang Wu , Jason M Biils , Julia Cartwright , Haiyue Wang , James Feist , Vernon Mauery List-ID: Hi Greg, On 1/24/2019 11:18 PM, Greg Kroah-Hartman wrote: > On Thu, Jan 24, 2019 at 02:01:10PM -0800, Jae Hyun Yoo wrote: >> On 1/23/2019 10:57 PM, Greg Kroah-Hartman wrote: >>> On Wed, Jan 23, 2019 at 01:38:24PM -0800, Jae Hyun Yoo wrote: >>>>> What about the un-initialized fields in this structure? Can you >>>>> properly handle that, and also, is this ok to be on the stack? >>>> >>>> It's fully initialized at here because the peci_ping_msg struct has only >>>> one member: >>>> >>>> struct peci_ping_msg { >>>> __u8 addr; >>>> }; >>> >>> Ok. But my question about "can you do this off the stack" remains. >> >> I'll add 3 bytes of dummy padding into this structure. Also, I'll check >> again u32 boundary alignment for all struct defines in peci_ioctl.h. >> Would it be okay to be on stack then? > > The issue of being on the stack has nothing to do with alignment, and > everything to do with, "can your controller handle data from the stack". > Lots of busses and controllers can not (i.e. all USB devices), so you > have to properly allocate all memory that is used for data transfers > from areas that are able to do DMA properly (i.e. by using kmalloc). > > That is why I asked here about that, if this is a USB driver, having the > data you wish to send from a stack variable is not allowed. I don't > know how your hardware works, which is why I was asking this. > > Note, some architectures (like x86), hide this fact as their stack > memory is able to be DMA, so you do not run into any errors. Other > arches that Linux supports are not like that, which is why we have those > types of restrictions. Thanks for your detailed explanation. In this core driver, all PECI command messages will be translated into the raw PECI message structure (peci_xfer_msg) and it is the actual data which will be delivered to an adapter driver through adapter->xfer(). I'll fix the translation logic to use heap instead of stack for handling the peci_xfer_msg structure. Thanks, Jae