grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] fix disk->id abuse


From: Pavel Roskin
Subject: Re: [PATCH] fix disk->id abuse
Date: Mon, 01 Sep 2008 19:39:29 -0400

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 <address@hidden>:
> > 
> > >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.

>   - 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.

-- 
Regards,
Pavel Roskin




reply via email to

[Prev in Thread] Current Thread [Next in Thread]