From: Ferenc Wagner <wferi@niif.hu>
To: Greg KH <gregkh@suse.de>
Cc: linux-kernel@vger.kernel.org
Subject: Re: [PATCH 2/2] Replace the dangerous to_root_device macro with an inline function
Date: Thu, 06 Jan 2011 21:47:08 +0100 [thread overview]
Message-ID: <87zkrd3gkz.fsf@tac.ki.iif.hu> (raw)
In-Reply-To: <20110106162032.GA10189@suse.de> (Greg KH's message of "Thu, 6 Jan 2011 08:20:32 -0800")
Greg KH <gregkh@suse.de> writes:
> On Thu, Jan 06, 2011 at 04:24:24PM +0100, Ferenc Wagner wrote:
>
>> The original macro worked only when applied to variables named 'dev'.
>> While this could have been fixed by simply renaming the macro argument,
>> a more type-safe replacement is preferred.
>
> Preferred for what? This is a local macro, not exported to anything
> else, is it causing problems today within this single file?
No, it isn't a problem currently, because this macro is applied to
variables named 'dev' exclusively. But the macro definition is wrong,
as it uses 'dev' (the macro argument) in two places, of which the second
probably isn't intentional, as the third argument of the container_of
macro is a structure member name, which should stay fixed to the literal
string 'dev' in this case, not replaced by the actual macro argument.
So you've got the choice of leaving things as they are and happen to
work for the moment, fixing the definition of the to_root_device macro
to use some other token as the name of the free variable instead of
'dev', or to replace the macro with a function, which provides some
type-checking advantages during compilation as well. I thought this was
a general reason for preferring inline functions over preprocessor
macros in the kernel codebase, but maybe I was wrong.
--
Regards,
Feri.
next prev parent reply other threads:[~2011-01-06 20:47 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-01-06 15:24 Ferenc Wagner
2011-01-06 15:28 ` Ferenc Wagner
2011-01-06 16:20 ` Greg KH
2011-01-06 20:47 ` Ferenc Wagner [this message]
2011-01-06 20:52 ` Greg KH
2011-01-07 14:17 ` [PATCH] " Ferenc Wagner
2011-01-07 14:21 ` [PATCH 2/2] " Ferenc Wagner
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=87zkrd3gkz.fsf@tac.ki.iif.hu \
--to=wferi@niif.hu \
--cc=gregkh@suse.de \
--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
all inboxes | Powered by JetHome®