Changeset 80721 in vbox for trunk/src/VBox/Devices/EFI/FirmwareNew/NetworkPkg/Ip6Dxe/Ip6Driver.c
- Timestamp:
- Sep 11, 2019 8:46:37 AM (5 years ago)
- Location:
- trunk/src/VBox/Devices/EFI/FirmwareNew
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Devices/EFI/FirmwareNew
-
Property svn:mergeinfo
changed from (toggle deleted branches)
to (toggle deleted branches)/vendor/edk2/current 103735-103757,103769-103776,129194-129237 /vendor/edk2/current 103735-103757,103769-103776,129194-133213
-
Property svn:mergeinfo
changed from (toggle deleted branches)
-
trunk/src/VBox/Devices/EFI/FirmwareNew/NetworkPkg/Ip6Dxe/Ip6Driver.c
r77662 r80721 2 2 The driver binding and service binding protocol for IP6 driver. 3 3 4 Copyright (c) 2009 - 201 7, Intel Corporation. All rights reserved.<BR>4 Copyright (c) 2009 - 2019, Intel Corporation. All rights reserved.<BR> 5 5 (C) Copyright 2015 Hewlett-Packard Development Company, L.P.<BR> 6 6 7 This program and the accompanying materials 8 are licensed and made available under the terms and conditions of the BSD License 9 which accompanies this distribution. The full text of the license may be found at 10 http://opensource.org/licenses/bsd-license.php. 11 12 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 13 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 7 SPDX-License-Identifier: BSD-2-Clause-Patent 14 8 15 9 **/ … … 565 559 ); 566 560 if (EFI_ERROR (Status)) { 567 goto ON_ERROR;561 goto FREE_SERVICE; 568 562 } 569 563 … … 574 568 Status = Ip6ConfigReadConfigData (IpSb->MacString, &IpSb->Ip6ConfigInstance); 575 569 if (EFI_ERROR (Status)) { 576 goto ON_ERROR;570 goto UNINSTALL_PROTOCOL; 577 571 } 578 572 … … 588 582 DataItem->Data.Ptr 589 583 ); 590 if (EFI_ERROR(Status) && Status != EFI_NOT_READY) { 591 goto ON_ERROR; 584 if (Status == EFI_INVALID_PARAMETER || Status == EFI_BAD_BUFFER_SIZE) { 585 // 586 // Clean the invalid ManualAddress configuration. 587 // 588 Status = Ip6Cfg->SetData ( 589 Ip6Cfg, 590 Ip6ConfigDataTypeManualAddress, 591 0, 592 NULL 593 ); 594 DEBUG ((EFI_D_WARN, "Ip6DriverBindingStart: Clean the invalid ManualAddress configuration.\n")); 592 595 } 593 596 } … … 604 607 DataItem->Data.Ptr 605 608 ); 606 if (EFI_ERROR(Status)) { 607 goto ON_ERROR; 609 if (Status == EFI_INVALID_PARAMETER || Status == EFI_BAD_BUFFER_SIZE) { 610 // 611 // Clean the invalid Gateway configuration. 612 // 613 Status = Ip6Cfg->SetData ( 614 Ip6Cfg, 615 Ip6ConfigDataTypeGateway, 616 0, 617 NULL 618 ); 619 DEBUG ((EFI_D_WARN, "Ip6DriverBindingStart: Clean the invalid Gateway configuration.\n")); 608 620 } 609 621 } … … 614 626 Status = Ip6ReceiveFrame (Ip6AcceptFrame, IpSb); 615 627 if (EFI_ERROR (Status)) { 616 goto ON_ERROR;628 goto UNINSTALL_PROTOCOL; 617 629 } 618 630 … … 626 638 ); 627 639 if (EFI_ERROR (Status)) { 628 goto ON_ERROR;640 goto UNINSTALL_PROTOCOL; 629 641 } 630 642 … … 638 650 ); 639 651 if (EFI_ERROR (Status)) { 640 goto ON_ERROR;652 goto UNINSTALL_PROTOCOL; 641 653 } 642 654 … … 648 660 return EFI_SUCCESS; 649 661 650 ON_ERROR: 662 UNINSTALL_PROTOCOL: 663 gBS->UninstallMultipleProtocolInterfaces ( 664 ControllerHandle, 665 &gEfiIp6ServiceBindingProtocolGuid, 666 &IpSb->ServiceBinding, 667 &gEfiIp6ConfigProtocolGuid, 668 Ip6Cfg, 669 NULL 670 ); 671 672 FREE_SERVICE: 651 673 Ip6CleanService (IpSb); 652 674 FreePool (IpSb);
Note:
See TracChangeset
for help on using the changeset viewer.