On Fri, 08 Feb 2008 20:38:56 +0100, Robert Millan wrote:

> On Fri, Feb 08, 2008 at 07:20:31PM +0000, Sam Morris wrote:
>> On Fri, 2008-02-08 at 15:52 +0100, Robert Millan wrote:
>> > New patch to fix partmap detection in LVM/RAID.  Changes in
>> > comparison to previous patch:
>> 
>>         (gdb) run -t partmap /boot/grub/
>>         Starting program: /home/sam/grub/grub2/grub-probe -t partmap
>>         /boot/grub/
>>         
>>         Program received signal SIGSEGV, Segmentation fault. 0x0806035a
>>         in grub_raid_scan_device (name=0x806b080 "hd3,2") at
>>         disk/raid.c:442 442        if
>>         (array->device[sb.this_disk.number]->name != 0)
> 
> I didn't touch this function.  I assume this was introduced with my
> previous commit that redefined this structure.
> 
> .name used to be initialized altogether with .disk, so checking for
> .name initialization amounts to checking for .disk initialization, which
> is what we still have (but with a different name)).
> 
> So:
> 
> diff -x configure -x config.h.in -x CVS -x '*~' -x '*.mk' -urp -N
> ../grub2/disk/raid.c ./disk/raid.c --- ../grub2/disk/raid.c       
> 2008-02-08 13:35:05.000000000 +0100 +++ ./disk/raid.c       2008-02-08
> 20:36:47.000000000 +0100 @@ -419,7 +419,7 @@ grub_raid_scan_device
> (const char *name)
>           return 0;
>         }
> 
> -      if (array->device[sb.this_disk.number]->name != 0) +      if
> (array->device[sb.this_disk.number] != NULL)
>         {
>           /* We found multiple devices with the same number. Again,
>              this shouldn't happen.*/
> 
> does this work?

Looks like it!

$ sudo ./grub-probe -t partmap /boot/grub/
pc
pc

-- 
Sam Morris
http://robots.org.uk/
 
PGP key id 1024D/5EA01078
3412 EA18 1277 354B 991B  C869 B219 7FDB 5EA0 1078



_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to