Hi Larry,

We are very sorry about the impact you suffered today. We made the change in 
early 2013 to support the existing NVRAM variable when firmware image was 
updated from IA32 to X64. Unfortunately we introduced an incompatibility issue 
as you raised. Now we prefer to keep the existing definition, since if we 
change it back that would introduce another similar incompatibility issue. What 
do you think about this?

Best Regards,
Ye Ting

-----Original Message-----
From: edk2-devel [mailto:[email protected]] On Behalf Of Larry 
Cleeton
Sent: Wednesday, August 03, 2016 4:55 AM
To: [email protected]
Subject: [edk2] Breaking change issue with NetworkPkg/Ip6Dxe/Ip6ConfigImlp.[c, 
h]

This commit (fdc4b0b147b386e966e99893526181dfae9eaeef) changed a data structure 
that is stored in an NVRAM variable. 
See NetworkPkg/Ip6Dxe/Ip6ConfigImpl.[c,h]

This data structure:

typedef struct {
  UINT16                    Offset;
  UINTN                     DataSize;
  EFI_IP6_CONFIG_DATA_TYPE  DataType;
} IP6_CONFIG_DATA_RECORD;

Is now:

typedef struct {
  UINT16                    Offset;
  UINT32                     DataSize;    <---------------- changed size in 
64bit environments
  EFI_IP6_CONFIG_DATA_TYPE  DataType;
} IP6_CONFIG_DATA_RECORD;

Unfortunately with a 64bit implementation this current structure is now *not* 
compatible with an existing NVRAM variable written with the previous version of 
the structure. It's causing me considerable grief so I'm just sharing the 
discovery.  It would only impact you if you update some 64bit machine's 
firmware with a new version containing this change.

--Larry
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to