Hello community,

here is the log from the commit of package ovmf for openSUSE:Factory:NonFree 
checked in at 2016-03-17 16:36:23
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory:NonFree/ovmf (Old)
 and      /work/SRC/openSUSE:Factory:NonFree/.ovmf.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "ovmf"

Changes:
--------
--- /work/SRC/openSUSE:Factory:NonFree/ovmf/ovmf.changes        2016-02-26 
22:21:55.000000000 +0100
+++ /work/SRC/openSUSE:Factory:NonFree/.ovmf.new/ovmf.changes   2016-03-17 
16:49:52.000000000 +0100
@@ -1,0 +2,60 @@
+Wed Mar 16 02:52:06 UTC 2016 - g...@suse.com
+
+- Update to 2015+git1458029440.db27e9f
+  + OvmfPkg/LegacyRegion: Support legacy region manipulation of Q35
+  + CryptoPkg: Fix the potential system hang issue
+  + CryptoPkg/OpensslLib: Upgrade OpenSSL version to 1.0.2g
+  + ArmVirtPkg/VirtFdtDxe: set /chosen/linux,pci-probe-only to 1
+    in DTB
+  + OvmfPkg: match PCI config access to machine type
+    (if not USE_OLD_PCI_HOST)
+  + OvmfPkg: add DxePciLibI440FxQ35
+  + OvmfPkg: Enable Network2 Shell Commands for IPv6
+  + MdeModulePkg AcpiTableDxe: Use Rsdt to check against NULL
+  + MdePkg: Fix ACPI NFIT GUID definitions
+  + NetworkPkg: Add URI configuration form to HTTP boot driver 
+  + CryptoPkg/OpensslLib: Switch to upstream fix for OpenSSL
+    RT#3628, RT#3674, RT#3951, RT#3955, RT#3964, RT#3969, RT#3992,
+    RT#4175, RT#4310
+  + CryptoPkg/OpensslLib: Include complete copy of opensslconf.h
+  + SecurityPkg/SecureBootConfigDxe: Handle allocation failure
+    gracefully
+  + MdeModulePkg/Bds: Support booting from remote file system
+  + MdeModulePkg/Bds: Wide match HTTP boot option
+  + MdeModulePkg: Fix IPv4 double free
+  + UefiCpuPkg: Add dynamic type for PcdCpuMaxLogicalProcessorNumber
+  + ArmPkg: Configure TTBCR register
+  + OvmfPkg: switch to MdeModulePkg/Bus/Pci/PciHostBridgeDxe
+  + MdeModulePkg: PciHostBridgeDxe: don't assume extended config
+    space
+  + ShellPkg: Update 'ifconfig -r' implementation
+  + NetworkPkg: Change the default IPv6 config policy
+  + MdeModulePkg: Change the default IPv4 config policy
+  + OvmfPkg: copy log level comments from DebugLib.h
+  + ArmVirtPkg: sync log level comments to DebugLib.h
+  + MdeModulePkg: DxeCore: fully initialize image context before
+    passing it on
+  + MdeModulePkg/NvmExpress: Fix uninitialized field used in NVMe
+    DiskInfo
+  + MdeModulePkg: Add new API HttpUrlGetPath() to HttpLib.h
+  + MdeModulePkg: Add RamDiskDxe driver implementation
+  + SecurityPkg: Tcg2Smm: Change TPM2.0 MMIO range attribute
+  + MdeModulePkg:Fix a robustness issue of Mnp Driver
+  + MdeModulePkg: RegularExpressionDxe: support free(NULL)
+  + MdeModulePkg/PciHostBridge: Don't assume resources are fully
+    NonExistent
+  + SecurityPkg: Use FileExplorerLib in SecureBootConfigDxe
+  + MdeModulePkg: Add ASSERT to make sure pointer 'OptionalData'
+    not be NULL
+  + MdeModulePkg: Add ASSERT to make sure pointer 'MemoryMap' is
+    not NULL
+- Update openssl to 1.0.2g
+- Add ovmf-fix-httpboot-driver-model.patch to fix the crash caused
+  by the httpboot driver.
+
+-------------------------------------------------------------------
+Wed Mar  2 04:47:55 UTC 2016 - g...@suse.com
+
+- Add ovmf-tools to package EfiRom (FATE#319531)
+
+-------------------------------------------------------------------

Old:
----
  openssl-1.0.2f.tar.gz
  openssl-1.0.2f.tar.gz.asc
  ovmf-2015+git1456452471.ba33c80.tar.xz

New:
----
  openssl-1.0.2g.tar.gz
  openssl-1.0.2g.tar.gz.asc
  ovmf-2015+git1458029440.db27e9f.tar.xz
  ovmf-fix-httpboot-driver-model.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ ovmf.spec ++++++
--- /var/tmp/diff_new_pack.AY4Jtv/_old  2016-03-17 16:49:53.000000000 +0100
+++ /var/tmp/diff_new_pack.AY4Jtv/_new  2016-03-17 16:49:53.000000000 +0100
@@ -18,14 +18,14 @@
 # needssslcertforbuild
 
 %undefine _build_create_debug
-%define   openssl_version 1.0.2f
+%define   openssl_version 1.0.2g
 
 Name:           ovmf
 Url:            
http://sourceforge.net/apps/mediawiki/tianocore/index.php?title=EDK2
 Summary:        Open Virtual Machine Firmware
 License:        BSD-2-Clause
 Group:          System/Emulators/PC
-Version:        2015+git1456452471.ba33c80
+Version:        2015+git1458029440.db27e9f
 Release:        0
 Source0:        %{name}-%{version}.tar.xz
 Source1:        
https://www.openssl.org/source/openssl-%{openssl_version}.tar.gz
@@ -47,6 +47,7 @@
 Source101:      gdb_uefi.py.in
 Patch2:         %{name}-embed-default-keys.patch
 Patch3:         %{name}-gdb-symbols.patch
+Patch4:         %{name}-fix-httpboot-driver-model.patch
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 BuildRequires:  libuuid-devel
 BuildRequires:  fdupes
@@ -72,6 +73,16 @@
 The Open Virtual Machine Firmware (OVMF) project aims to support
 firmware for Virtual Machines using the edk2 code base.
 
+%package tools
+Summary:        The BaseTools from edk2
+Group:          System/Emulators/PC
+
+%description tools
+The Open Virtual Machine Firmware (OVMF) project aims to support
+firmware for Virtual Machines using the edk2 code base.
+
+This package contains the tools from edk2.
+
 %ifarch %ix86
 %package -n qemu-ovmf-ia32
 Summary:        Open Virtual Machine Firmware - QEMU rom images (IA32)
@@ -144,9 +155,10 @@
 %patch2 -p1
 %endif
 %patch3 -p1
+%patch4 -p1
 # Intel has special patches for openssl
 pushd CryptoPkg/Library/OpensslLib/openssl-%{openssl_version}
-patch -p0 -i ../EDKII_openssl-%{openssl_version}.patch
+patch -p1 -i ../EDKII_openssl-%{openssl_version}.patch
 cd ..
 ./Install.sh
 popd
@@ -307,6 +319,10 @@
 cp %{SOURCE2} README
 tr -d '\r' < FatBinPkg/License.txt > License-fat-driver.txt
 
+# Install BaseTools
+install -d %{buildroot}/%{_bindir}
+install -m 0755 --strip BaseTools/Source/C/bin/EfiRom %{buildroot}/%{_bindir}
+
 %ifarch %ix86
 tr -d '\r' < OvmfPkg/License.txt > License.txt
 install -m 0644 -D ovmf-ia32.bin %{buildroot}/%{_datadir}/qemu/ovmf-ia32.bin
@@ -344,6 +360,11 @@
 %defattr(-,root,root,-)
 %doc README
 
+%files tools
+%defattr(-,root,root,-)
+%doc BaseTools/UserManuals/EfiRom_Utility_Man_Page.rtf
+%{_bindir}/EfiRom
+
 %ifarch %ix86
 %files -n qemu-ovmf-ia32
 %defattr(-,root,root,-)






++++++ ovmf-2015+git1456452471.ba33c80.tar.xz -> 
ovmf-2015+git1458029440.db27e9f.tar.xz ++++++
/work/SRC/openSUSE:Factory:NonFree/ovmf/ovmf-2015+git1456452471.ba33c80.tar.xz 
/work/SRC/openSUSE:Factory:NonFree/.ovmf.new/ovmf-2015+git1458029440.db27e9f.tar.xz
 differ: char 27, line 1

++++++ ovmf-fix-httpboot-driver-model.patch ++++++
>From 2a7ec07da602a72c678df3d09b8ed0c78d5388cf Mon Sep 17 00:00:00 2001
From: Fu Siyuan <siyuan...@intel.com>
Date: Tue, 15 Mar 2016 09:41:25 +0800
Subject: [PATCH] NetworkPkg: Fix the driver model issue in HTTP Boot driver.

The HTTP Boot driver have some UEFI driver model problems which will make the
code ASSERT when it's disconnected.
First, the driver opens the HttpSb protocol BY_CHILD without BY_DRIVER 
attribute.
So the driver binding stop won't be called when HTTP driver is disconnected, and
a child handle is left which made HTTP driver binding stop function goes into 
error.
This patch remove this unnecessary OpenProtocol and only unload the Hii from 
when
both the IP4 and IP6 stack have been stopped completely.
The second issue is the HTTP boot driver always use the driver's image handle as
it's driver binding handle, it's not correct. HTTP Boot driver provides 2 
separate
driver binding protocols for IP4 and IP6 stack, so it has 2 driver binding 
handles.
This patch fix the code to use correct driver binding handle when create/open
a HTTP child handle.

Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Fu Siyuan <siyuan...@intel.com>
Cc: Gary Lin <g...@suse.com>
CC: Laszlo Ersek <ler...@redhat.com>
Cc: Wu Jiaxin <jiaxin...@intel.com>
Cc: Zhang Lubo <lubo.zh...@intel.com>
---
 NetworkPkg/HttpBootDxe/HttpBootClient.c  |  5 ++++-
 NetworkPkg/HttpBootDxe/HttpBootConfig.c  | 36 +++++++++-----------------------
 NetworkPkg/HttpBootDxe/HttpBootConfig.h  |  1 +
 NetworkPkg/HttpBootDxe/HttpBootDxe.c     | 18 ++++++++--------
 NetworkPkg/HttpBootDxe/HttpBootDxe.h     |  2 +-
 NetworkPkg/HttpBootDxe/HttpBootSupport.c |  8 +++----
 6 files changed, 29 insertions(+), 41 deletions(-)

diff --git a/NetworkPkg/HttpBootDxe/HttpBootClient.c 
b/NetworkPkg/HttpBootDxe/HttpBootClient.c
index aae4527..0c47293 100644
--- a/NetworkPkg/HttpBootDxe/HttpBootClient.c
+++ b/NetworkPkg/HttpBootDxe/HttpBootClient.c
@@ -447,6 +447,7 @@ HttpBootCreateHttpIo (
 {
   HTTP_IO_CONFIG_DATA          ConfigData;
   EFI_STATUS                   Status;
+  EFI_HANDLE                   ImageHandle;
 
   ASSERT (Private != NULL);
 
@@ -456,14 +457,16 @@ HttpBootCreateHttpIo (
     ConfigData.Config4.RequestTimeOut = HTTP_BOOT_REQUEST_TIMEOUT;
     IP4_COPY_ADDRESS (&ConfigData.Config4.LocalIp, &Private->StationIp.v4);
     IP4_COPY_ADDRESS (&ConfigData.Config4.SubnetMask, &Private->SubnetMask.v4);
+    ImageHandle = Private->Ip4Nic->ImageHandle;
   } else {
     ConfigData.Config6.HttpVersion    = HttpVersion11;
     ConfigData.Config6.RequestTimeOut = HTTP_BOOT_REQUEST_TIMEOUT;
     IP6_COPY_ADDRESS (&ConfigData.Config6.LocalIp, &Private->StationIp.v6);
+    ImageHandle = Private->Ip6Nic->ImageHandle;
   }
 
   Status = HttpIoCreateIo (
-             Private->Image,
+             ImageHandle,
              Private->Controller,
              Private->UsingIpv6 ? IP_VERSION_6 : IP_VERSION_4,
              &ConfigData,
diff --git a/NetworkPkg/HttpBootDxe/HttpBootConfig.c 
b/NetworkPkg/HttpBootDxe/HttpBootConfig.c
index 5971923..0c1ff43 100644
--- a/NetworkPkg/HttpBootDxe/HttpBootConfig.c
+++ b/NetworkPkg/HttpBootDxe/HttpBootConfig.c
@@ -553,7 +553,6 @@ HttpBootConfigFormInit (
   EFI_STATUS                        Status;
   HTTP_BOOT_FORM_CALLBACK_INFO      *CallbackInfo;
   VENDOR_DEVICE_PATH                VendorDeviceNode;
-  EFI_SERVICE_BINDING_PROTOCOL      *HttpSb;
   CHAR16                            *MacString;
   CHAR16                            *OldMenuString;
   CHAR16                            MenuString[128];
@@ -600,20 +599,6 @@ HttpBootConfigFormInit (
                   &CallbackInfo->ConfigAccess,
                   NULL
                   );
-  if (!EFI_ERROR (Status)) {
-    //
-    // Open the Parent Handle for the child
-    //
-    Status = gBS->OpenProtocol (
-                    Private->Controller,
-                    &gEfiHttpServiceBindingProtocolGuid,
-                    (VOID **) &HttpSb,
-                    Private->Image,
-                    CallbackInfo->ChildHandle,
-                    EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER
-                    );
-  }
-
   if (EFI_ERROR (Status)) {
     goto Error;
   }
@@ -636,7 +621,7 @@ HttpBootConfigFormInit (
   //
   // Append MAC string in the menu help string
   //
-  Status = NetLibGetMacString (Private->Controller, Private->Image, 
&MacString);
+  Status = NetLibGetMacString (Private->Controller, NULL, &MacString);
   if (!EFI_ERROR (Status)) {
     OldMenuString = HiiGetString (
                       CallbackInfo->RegisteredHandle, 
@@ -654,6 +639,7 @@ HttpBootConfigFormInit (
     FreePool (MacString);
     FreePool (OldMenuString);
 
+    CallbackInfo->Initilized = TRUE;
     return EFI_SUCCESS;
   }
   
@@ -666,6 +652,7 @@ Error:
 /**
   Unload the configuration form, this includes: delete all the configuration
   entries, uninstall the form callback protocol, and free the resources used.
+  The form will only be unload completely when both IP4 and IP6 stack are 
stopped.
 
   @param[in]  Private             Pointer to the driver private data.
 
@@ -680,18 +667,15 @@ HttpBootConfigFormUnload (
 {
   HTTP_BOOT_FORM_CALLBACK_INFO      *CallbackInfo;
 
-  CallbackInfo = &Private->CallbackInfo;
-  if (CallbackInfo->ChildHandle != NULL) {
+  if (Private->Ip4Nic != NULL || Private->Ip6Nic != NULL) {
     //
-    // Close the child handle
+    // Only unload the configuration form when both IP4 and IP6 stack are 
stopped.
     //
-    gBS->CloseProtocol (
-           Private->Controller,
-           &gEfiHttpServiceBindingProtocolGuid,
-           Private->Image,
-           CallbackInfo->ChildHandle
-           );
-    
+    return EFI_SUCCESS;
+  }
+
+  CallbackInfo = &Private->CallbackInfo;
+  if (CallbackInfo->ChildHandle != NULL) {
     //
     // Uninstall EFI_HII_CONFIG_ACCESS_PROTOCOL
     //
diff --git a/NetworkPkg/HttpBootDxe/HttpBootConfig.h 
b/NetworkPkg/HttpBootDxe/HttpBootConfig.h
index a2afd18..e610fe8 100644
--- a/NetworkPkg/HttpBootDxe/HttpBootConfig.h
+++ b/NetworkPkg/HttpBootDxe/HttpBootConfig.h
@@ -63,6 +63,7 @@ HttpBootConfigFormInit (
 /**
   Unload the configuration form, this includes: delete all the configuration
   entries, uninstall the form callback protocol, and free the resources used.
+  The form will only be unload completely when both IP4 and IP6 stack are 
stopped.
 
   @param[in]  Private             Pointer to the driver private data.
 
diff --git a/NetworkPkg/HttpBootDxe/HttpBootDxe.c 
b/NetworkPkg/HttpBootDxe/HttpBootDxe.c
index 6a3033d..642e0fe 100644
--- a/NetworkPkg/HttpBootDxe/HttpBootDxe.c
+++ b/NetworkPkg/HttpBootDxe/HttpBootDxe.c
@@ -321,7 +321,7 @@ HttpBootIp4DxeDriverBindingStart (
                   );
 
   if (!EFI_ERROR (Status)) {
-      Private = HTTP_BOOT_PRIVATE_DATA_FROM_ID(Id);
+    Private = HTTP_BOOT_PRIVATE_DATA_FROM_ID(Id);
   } else {
     //
     // Initialize the private data structure.
@@ -332,7 +332,6 @@ HttpBootIp4DxeDriverBindingStart (
     }
     Private->Signature = HTTP_BOOT_PRIVATE_DATA_SIGNATURE;
     Private->Controller = ControllerHandle;
-    Private->Image = This->ImageHandle;
     InitializeListHead (&Private->CacheList);
     //
     // Get the NII interface if it exists, it's not required.
@@ -399,8 +398,9 @@ HttpBootIp4DxeDriverBindingStart (
   if (Private->Ip4Nic == NULL) {
     return EFI_OUT_OF_RESOURCES;
   }
-  Private->Ip4Nic->Private   = Private;
-  Private->Ip4Nic->Signature = HTTP_BOOT_VIRTUAL_NIC_SIGNATURE;
+  Private->Ip4Nic->Private     = Private;
+  Private->Ip4Nic->ImageHandle = This->DriverBindingHandle;
+  Private->Ip4Nic->Signature   = HTTP_BOOT_VIRTUAL_NIC_SIGNATURE;
   
   //
   // Create DHCP4 child instance.
@@ -793,7 +793,7 @@ HttpBootIp6DxeDriverBindingStart (
                   );
   
   if (!EFI_ERROR (Status)) {
-      Private = HTTP_BOOT_PRIVATE_DATA_FROM_ID(Id);
+    Private = HTTP_BOOT_PRIVATE_DATA_FROM_ID(Id);
   } else {
     //
     // Initialize the private data structure.
@@ -804,7 +804,6 @@ HttpBootIp6DxeDriverBindingStart (
     }
     Private->Signature = HTTP_BOOT_PRIVATE_DATA_SIGNATURE;
     Private->Controller = ControllerHandle;
-    Private->Image = This->ImageHandle;
     InitializeListHead (&Private->CacheList);
     //
     // Get the NII interface if it exists, it's not required.
@@ -871,9 +870,10 @@ HttpBootIp6DxeDriverBindingStart (
   if (Private->Ip6Nic == NULL) {
     return EFI_OUT_OF_RESOURCES;
   }
-  Private->Ip6Nic->Private   = Private;
-  Private->Ip6Nic->Signature = HTTP_BOOT_VIRTUAL_NIC_SIGNATURE;
-
+  Private->Ip6Nic->Private     = Private;
+  Private->Ip6Nic->ImageHandle = This->DriverBindingHandle;
+  Private->Ip6Nic->Signature   = HTTP_BOOT_VIRTUAL_NIC_SIGNATURE;
+  
   //
   // Create Dhcp6 child and open Dhcp6 protocol
   Status = NetLibCreateServiceChild (
diff --git a/NetworkPkg/HttpBootDxe/HttpBootDxe.h 
b/NetworkPkg/HttpBootDxe/HttpBootDxe.h
index 7cb4b2c..b3e2576 100644
--- a/NetworkPkg/HttpBootDxe/HttpBootDxe.h
+++ b/NetworkPkg/HttpBootDxe/HttpBootDxe.h
@@ -102,6 +102,7 @@ typedef union {
 struct _HTTP_BOOT_VIRTUAL_NIC {
   UINT32                                    Signature;
   EFI_HANDLE                                Controller;
+  EFI_HANDLE                                ImageHandle;
   EFI_LOAD_FILE_PROTOCOL                    LoadFile;
   EFI_DEVICE_PATH_PROTOCOL                  *DevicePath;
   HTTP_BOOT_PRIVATE_DATA                    *Private;
@@ -118,7 +119,6 @@ struct _HTTP_BOOT_VIRTUAL_NIC {
 struct _HTTP_BOOT_PRIVATE_DATA {
   UINT32                                    Signature;
   EFI_HANDLE                                Controller;
-  EFI_HANDLE                                Image;
 
   HTTP_BOOT_VIRTUAL_NIC                     *Ip4Nic;
   HTTP_BOOT_VIRTUAL_NIC                     *Ip6Nic;
diff --git a/NetworkPkg/HttpBootDxe/HttpBootSupport.c 
b/NetworkPkg/HttpBootDxe/HttpBootSupport.c
index 758c49b..bd99a91 100644
--- a/NetworkPkg/HttpBootDxe/HttpBootSupport.c
+++ b/NetworkPkg/HttpBootDxe/HttpBootSupport.c
@@ -372,7 +372,7 @@ HttpBootDns (
   //
   Status = NetLibCreateServiceChild (
              Private->Controller,
-             Private->Image,
+             Private->Ip6Nic->ImageHandle,
              &gEfiDns6ServiceBindingProtocolGuid,
              &Dns6Handle
              );
@@ -384,7 +384,7 @@ HttpBootDns (
                   Dns6Handle,
                   &gEfiDns6ProtocolGuid,
                   (VOID **) &Dns6,
-                  Private->Image,
+                  Private->Ip6Nic->ImageHandle,
                   Private->Controller,
                   EFI_OPEN_PROTOCOL_BY_DRIVER
                   );
@@ -474,7 +474,7 @@ Exit:
     gBS->CloseProtocol (
            Dns6Handle,
            &gEfiDns6ProtocolGuid,
-           Private->Image,
+           Private->Ip6Nic->ImageHandle,
            Private->Controller
            );
   }
@@ -482,7 +482,7 @@ Exit:
   if (Dns6Handle != NULL) {
     NetLibDestroyServiceChild (
       Private->Controller,
-      Private->Image,
+      Private->Ip6Nic->ImageHandle,
       &gEfiDns6ServiceBindingProtocolGuid,
       Dns6Handle
       );
-- 
2.7.2


Reply via email to