From: Tejun Heo <htejun@gmail.com>
To: Catalin Marinas <catalin.marinas@arm.com>
Cc: linux-kernel@vger.kernel.org
Subject: Re: [PATCH] Use a zero-size array in the struct devres
Date: Tue, 06 Mar 2007 21:44:17 +0900 [thread overview]
Message-ID: <45ED6221.5090003@gmail.com> (raw)
In-Reply-To: <20070306095241.28180.76390.stgit@localhost.localdomain>
Hello, Catalin.
Catalin Marinas wrote:
> Commit 9ac7849e35f705830f7b016ff272b0ff1f7ff759 adds the devres
> structure containing a flexible unsigned long long array, with a
> comment about the guaranteed alignment. According to the gcc manual,
> flexible arrays are considered incomplete types and it is an error to
> ask for their alignment. This patch makes data[] a zero-size array.
The gcc manual says nothing about alignment. What it says is sizeof()
doesn't work. If flexible array doesn't honor the alignment of the
declared type, it would be useless for its designed purpose of
supporting *array* of dynamically-determined length.
> I came across this when trying to build kmemleak as the modified
> container_of macro tries to get the size of the devres.data member and
> sizeof cannot be applied to incomplete types.
If kmemleak's container_of cannot deal with the current struct devres,
it means it can't deal with flexible arrays at all. Flexible array
being the standard as opposed to 0 size array gcc extension, I guess a
lot of people would prefer flexible array.
It would be best if kmemleak's container_of can be modified to work with
flexible arrays. If that's not possible, I guess it needs wider
discussion to determine whether to ditch flexible array for kmemleak.
Thanks.
--
tejun
next prev parent reply other threads:[~2007-03-06 12:44 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-03-06 9:54 [PATCH] Use a zero-size array in the struct devres Catalin Marinas
2007-03-06 12:44 ` Tejun Heo [this message]
2007-03-06 14:40 ` Catalin Marinas
2007-03-06 14:58 ` Tejun Heo
2007-03-06 15:21 ` Catalin Marinas
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-all 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=45ED6221.5090003@gmail.com \
--to=htejun@gmail.com \
--cc=catalin.marinas@arm.com \
--cc=linux-kernel@vger.kernel.org \
/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