Messages in this thread | | | Date | Thu, 21 Feb 2013 10:58:37 +0800 | From | Zhenzhong Duan <> | Subject | Re: [PATCH] DMI: Always call dmi_present with DMI structure |
| |
Hi Ben had sent a patch fixing this issue. Would you like to test his patch? https://lkml.org/lkml/2013/2/16/102 zduan On 2013-02-21 02:12, H.J. Lu wrote: > Hi, > > This patch: > > commit 9f9c9cbb60576a1518d0bf93fb8e499cffccf377 > Author: Zhenzhong Duan <zhenzhong.duan@oracle.com> > Date: Thu Dec 20 15:05:14 2012 -0800 > > drivers/firmware/dmi_scan.c: fetch dmi version from SMBIOS if it exists > > The right dmi version is in SMBIOS if it's zero in DMI region > > This issue was originally found from an oracle bug. > One customer noticed system UUID doesn't match between dmidecode & uek2. > > - HP ProLiant BL460c G6 : > # cat /sys/devices/virtual/dmi/id/product_uuid > 00000000-0000-4C48-3031-4D5030333531 > # dmidecode | grep -i uuid drivers/firmware/dmi_scan.c: > fetch dmi version from SMBIOS if it exists > > The right dmi version is in SMBIOS if it's zero in DMI region > > This issue was originally found from an oracle bug. > One customer noticed system UUID doesn't match between dmidecode & uek2. > > - HP ProLiant BL460c G6 : > # cat /sys/devices/virtual/dmi/id/product_uuid > 00000000-0000-4C48-3031-4D5030333531 > # dmidecode | grep -i uuid > UUID: 00000000-0000-484C-3031-4D5030333531 > > From SMBIOS 2.6 on, spec use little-endian encoding for UUID other than > network byte order. > > So we need to get dmi version to distinguish. If version is 0.0, the > real version is taken from the SMBIOS version. This is part of original > kernel comment in code. > > UUID: 00000000-0000-484C-3031-4D5030333531 > > From SMBIOS 2.6 on, spec use little-endian encoding for UUID other than > network byte order. > > So we need to get dmi version to distinguish. If version is 0.0, the > real version is taken from the SMBIOS version. This is part of original > kernel comment in code. > > causes a regression in 3.7, 3.8 and 3.9 kernels. Before the change, > we only scan DMI structure. Now smbios_present scans SMBIOS > entry point. I have a machine which has invalid checksum in > SMBIOS entry point. We wind up calling dmi_present with SMBIOS > entry point instead of DMI structure. This patch changes smbios_present > to always call dmi_present with DMI structure. > >
| |