From: Leif Lindholm <leif.lindholm@linaro.org>
To: Marcin Wojtas <mw@semihalf.com>
Cc: edk2-devel-01 <edk2-devel@lists.01.org>,
Ard Biesheuvel <ard.biesheuvel@linaro.org>,
nadavh@marvell.com, "jsd@semihalf.com" <jsd@semihalf.com>,
Grzegorz Jaszczyk <jaz@semihalf.com>,
Kostya Porotchkin <kostap@marvell.com>
Subject: Re: [platforms: PATCH v2 06/12] Marvell/Drivers: MvBoardDesc: Extend protocol with GPIO support
Date: Tue, 15 Jan 2019 10:26:08 +0000 [thread overview]
Message-ID: <20190115102608.5th6c4adyuksofh3@bivouac.eciton.net> (raw)
In-Reply-To: <CAPv3WKdMON_52e54L2y7dN0tWNrFFiA_RFL51p_v0buAnWbFRg@mail.gmail.com>
On Tue, Jan 15, 2019 at 11:14:16AM +0100, Marcin Wojtas wrote:
> wt., 15 sty 2019 o 11:12 Leif Lindholm <leif.lindholm@linaro.org> napisał(a):
> >
> > On Tue, Jan 15, 2019 at 11:05:12AM +0100, Marcin Wojtas wrote:
> > > > > Anyway, I tried to play with the MV_BOARD_GPIO_DESCRIPTION to be the
> > > > > global variable, but was not convinced by the outcome. My biggest
> > > > > objection to the global variable and checking whether it's NULL in the
> > > > > consumer driver is following - until now all users of the
> > > > > BoardDescProtocol 'know' and call only the relevant protocol routine,
> > > > > everything what happens underneath (PCDs, variable names, etc) is
> > > > > transparent.
> > > > >
> > > > > The consumers should be responsible for avoiding the memory leaks and
> > > > > this was an improvement of v2. Both MvGpioDxe and MvPca9xxxDxe have
> > > > > now fixed error path an properly take care of freeing the memory after
> > > > > using protocol.
> > > >
> > > > But the call sites don't keep track of freeing it when error handling.
> > > >
> > > > Which I think serves as a clear demonstrator of how magically
> > > > allocating buffers makes for difficult code to keep correct. (Which is
> > > > why the UEFI intefaces all require you to allocate a buffer and then
> > > > pass that and a size as parameters.)
> > > >
> > > > So, since we are dealing with data that isn't changing, I prefer the
> > > > original design - just not the original implemenation.
> > > >
> > > > So how about sticking with that, but moving the STATIC struct global
> > > > in that source file (but keeping it STATIC)?
> > > >
> > >
> > > Good, keeping the global variable inside MvBoardDescDxe and checking
> > > it there is a clean and easy solution (consumers won't have to bother
> > > about the stuff additional to calling the protocol and error handling
> > > will be simpler).
> > >
> > > How about on top of the file I add a section for global varibles (IMO
> > > it's worth to modify other interfaces to that scheme later) and call
> > > it:
> > >
> > > STATIC MV_BOARD_GPIO_DESCRIPTION gGpioDescription;
> > > ?
> >
> > Static, so 'm', not 'g', but yeah.
>
> Effectively it will be global to other files :) But I will change to
> 'm' prefix of course.
Global is about visibility, not accessibility. This will not be
globally visible.
/
Leif
next prev parent reply other threads:[~2019-01-15 10:26 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-01-10 1:44 [platforms: PATCH v2 00/12] Armada 7k8k GPIO support Marcin Wojtas
2019-01-10 1:44 ` [platforms: PATCH v2 01/12] Marvell/Library: ArmadaSoCDescLib: Add GPIO information Marcin Wojtas
2019-01-14 23:45 ` Leif Lindholm
2019-01-10 1:44 ` [platforms: PATCH v2 02/12] Marvell/Library: ArmadaBoardDescLib: " Marcin Wojtas
2019-01-14 23:46 ` Leif Lindholm
2019-01-10 1:44 ` [platforms: PATCH v2 03/12] SolidRun/Armada80x0McBin: Extend board description library with GPIO Marcin Wojtas
2019-01-14 23:46 ` Leif Lindholm
2019-01-10 1:44 ` [platforms: PATCH v2 04/12] Marvell/Armada70x0Db: " Marcin Wojtas
2019-01-14 22:41 ` Leif Lindholm
2019-01-15 5:48 ` Marcin Wojtas
2019-01-10 1:44 ` [platforms: PATCH v2 05/12] Marvell/Armada80x0Db: " Marcin Wojtas
2019-01-14 22:44 ` Leif Lindholm
2019-01-10 1:44 ` [platforms: PATCH v2 06/12] Marvell/Drivers: MvBoardDesc: Extend protocol with GPIO support Marcin Wojtas
2019-01-14 22:58 ` Leif Lindholm
2019-01-15 6:05 ` Marcin Wojtas
2019-01-15 9:56 ` Leif Lindholm
2019-01-15 10:05 ` Marcin Wojtas
2019-01-15 10:12 ` Leif Lindholm
2019-01-15 10:14 ` Marcin Wojtas
2019-01-15 10:26 ` Leif Lindholm [this message]
2019-01-10 1:44 ` [platforms: PATCH v2 07/12] Marvell/Protocol: Introduce GPIO helper header Marcin Wojtas
2019-01-14 23:12 ` Leif Lindholm
2019-01-15 6:12 ` Marcin Wojtas
2019-01-10 1:44 ` [platforms: PATCH v2 08/12] Marvell/Drivers: MvGpioDxe: Introduce platform GPIO driver Marcin Wojtas
2019-01-14 23:32 ` Leif Lindholm
2019-01-15 6:19 ` Marcin Wojtas
2019-01-15 10:04 ` Leif Lindholm
2019-01-15 10:06 ` Marcin Wojtas
2019-01-10 1:44 ` [platforms: PATCH v2 09/12] Marvell/Drivers: I2c: Use common header for macros Marcin Wojtas
2019-01-10 1:44 ` [platforms: PATCH v2 10/12] Marvell/Drivers: MvPca95xxDxe: Introduce GPIO expander driver Marcin Wojtas
2019-01-14 23:40 ` Leif Lindholm
2019-01-10 1:44 ` [platforms: PATCH v2 11/12] Marvell/Armada7k8k: Enable GPIO drivers compilation Marcin Wojtas
2019-01-10 1:44 ` [platforms: PATCH v2 12/12] Marvell/Armada7k8k: Introduce NonDiscoverable device init routines Marcin Wojtas
2019-01-14 23:44 ` Leif Lindholm
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190115102608.5th6c4adyuksofh3@bivouac.eciton.net \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox