From: Robert Millan <rmh@aybabtu.com>
To: The development of GRUB 2 <grub-devel@gnu.org>
Subject: Re: [PATCH] fix disk->id abuse
Date: Tue, 2 Sep 2008 15:40:45 +0200 [thread overview]
Message-ID: <20080902134045.GB31165@thorin> (raw)
In-Reply-To: <1220312369.21219.18.camel@dv>
On Mon, Sep 01, 2008 at 07:39:29PM -0400, Pavel Roskin wrote:
> On Sun, 2008-08-31 at 15:33 +0200, Robert Millan wrote:
> > On Sat, Aug 30, 2008 at 11:41:18AM -0400, Pavel Roskin wrote:
> > > Quoting Robert Millan <rmh@aybabtu.com>:
> > >
> > > >So this patch means to solve both issues; makes single-disk drivers use a
> > > >constant directly (since a pointer to string is meaningless and confusing),
> > > >and disk/scsi.c use LUNs which (I believe) will work as unique identifiers.
> > >
> > > Multi-character constants cause warnings.
> >
> > Can we silence them?
>
> I don't think so. Besides, strings are just as good as multi-character
> constants. In fact, strings are better, as they won't clash with any
> pointers, simply because strings are pointers too, and they point to
> areas in memory not used by other drivers.
>
> > > That's why I changed them
> > > to strings. Pointers to different strings are different, and that's
> > > all we need.
> >
> > For single-disk drivers, yes. But that has two problems:
> >
> > - People tend to think the string itself has a meaning. We could avoid
> > this by using "dummy" or so.
>
> There is a chance that pointers to "dummy" will be consolidated by the
> linker. I believe GNU ld won't do it, but it's not impossible.
Ok then.
> > - People tend to think it's fine to do the same for multi-disk drivers.
> > We could avoid this by adding a short comment in each of them.
>
> Maybe we could rename "id" to something more descriptive. But I don't
> think it's a big concern. Somebody writing a disk driver will need to
> check the meaning of the disk structure.
>
> We could write a macro for ID comparison that would compare both the
> "driver ID" (disk->dev->id) and "device ID" (disk->id). In this case,
> we can omit disk->id initialization in the drivers supporting only one
> device (e.g. memdisk) and only leave it where it's indeed needed for
> identifying separate devices, thus removing potentially confusing code.
Sounds fine, although what worries me most if the current usage of 'id' in
scsi.c, which can lead to collision already.
I assume using LUNs is a proper solution for that one?
--
Robert Millan
The DRM opt-in fallacy: "Your data belongs to us. We will decide when (and
how) you may access your data; but nobody's threatening your freedom: we
still allow you to remove your data and not access it at all."
next prev parent reply other threads:[~2008-09-02 13:42 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-08-30 12:26 [PATCH] fix disk->id abuse Robert Millan
2008-08-30 15:41 ` Pavel Roskin
2008-08-31 13:33 ` Robert Millan
2008-09-01 23:39 ` Pavel Roskin
2008-09-02 13:40 ` Robert Millan [this message]
2008-09-02 13:55 ` Marco Gerards
2008-09-02 19:12 ` Christian Franke
2008-09-02 19:24 ` Robert Millan
2008-09-02 19:43 ` Christian Franke
2008-09-02 19:21 ` Robert Millan
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=20080902134045.GB31165@thorin \
--to=rmh@aybabtu.com \
--cc=grub-devel@gnu.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.