]> git.ipfire.org Git - thirdparty/ipxe.git/commitdiff
[efi] Ensure that each HII package list and formset has a unique GUID
authorMichael Brown <mcb30@ipxe.org>
Tue, 3 May 2011 17:52:56 +0000 (18:52 +0100)
committerMichael Brown <mcb30@ipxe.org>
Tue, 3 May 2011 17:55:05 +0000 (18:55 +0100)
Signed-off-by: Michael Brown <mcb30@ipxe.org>
src/interface/efi/efi_snp.c

index f40bfff94bdf1172662197bb373b4e869e851848..bc6c0919138f3041a7fca0858584e447dee95609 100644 (file)
@@ -769,8 +769,8 @@ static EFI_GUID efi_hii_config_access_protocol_guid
 static EFI_HII_DATABASE_PROTOCOL *efihii;
 EFI_REQUIRE_PROTOCOL ( EFI_HII_DATABASE_PROTOCOL, &efihii );
 
-/** Local GUID used for our EFI SNP formset */
-#define EFI_SNP_FORMSET_GUID                                           \
+/** Local base GUID used for our EFI SNP formset */
+#define EFI_SNP_FORMSET_GUID_BASE                                      \
        { 0xc4f84019, 0x6dfd, 0x4a27,                                   \
          { 0x9b, 0x94, 0xb7, 0x2e, 0x1f, 0xbc, 0xad, 0xca } }
 
@@ -815,7 +815,7 @@ struct efi_snp_formset {
                .Length = sizeof ( efi_snp_formset ),
                .Type = EFI_HII_PACKAGE_FORMS,
        },
-       .FormSet = EFI_IFR_FORM_SET ( EFI_SNP_FORMSET_GUID,
+       .FormSet = EFI_IFR_FORM_SET ( EFI_SNP_FORMSET_GUID_BASE,
                                      EFI_SNP_FORMSET_TITLE,
                                      EFI_SNP_FORMSET_HELP,
                                      typeof ( efi_snp_formset.FormSet ),
@@ -992,6 +992,9 @@ efi_snp_package_list ( struct efi_snp_device *snpdev ) {
        if ( ! package_list )
                return NULL;
 
+       /* Create a unique GUID for this package list and formset */
+       efi_snp_formset.FormSet.FormSet.Guid.Data1++;
+
        /* Populate package list */
        memcpy ( &package_list->header.PackageListGuid,
                 &efi_snp_formset.FormSet.FormSet.Guid,