diff options
author | Michael Brown | 2015-09-01 22:22:39 +0200 |
---|---|---|
committer | Michael Brown | 2015-09-01 22:24:02 +0200 |
commit | 226d5f2cafc258b979c090b19503eafa77c9a1a2 (patch) | |
tree | 30c7ed00ad67b424f6a73fb656ffa7b98aa6695b /src/interface/efi/efi_snp.c | |
parent | [efi] Allow calls to efi_snp_claim() and efi_snp_release() to be nested (diff) | |
download | ipxe-226d5f2cafc258b979c090b19503eafa77c9a1a2.tar.gz ipxe-226d5f2cafc258b979c090b19503eafa77c9a1a2.tar.xz ipxe-226d5f2cafc258b979c090b19503eafa77c9a1a2.zip |
[efi] Fix order of events on SNP removal path
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/interface/efi/efi_snp.c')
-rw-r--r-- | src/interface/efi/efi_snp.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/interface/efi/efi_snp.c b/src/interface/efi/efi_snp.c index b7debe7b..67123849 100644 --- a/src/interface/efi/efi_snp.c +++ b/src/interface/efi/efi_snp.c @@ -1101,6 +1101,7 @@ static int efi_snp_probe ( struct net_device *netdev ) { snpdev, netdev->name, efi_handle_name ( snpdev->handle ) ); return 0; + list_del ( &snpdev->list ); if ( snpdev->package_list ) efi_snp_hii_uninstall ( snpdev ); efi_child_del ( efidev->device, snpdev->handle ); @@ -1172,10 +1173,10 @@ static void efi_snp_remove ( struct net_device *netdev ) { } /* Uninstall the SNP */ + list_del ( &snpdev->list ); if ( snpdev->package_list ) efi_snp_hii_uninstall ( snpdev ); efi_child_del ( snpdev->efidev->device, snpdev->handle ); - list_del ( &snpdev->list ); bs->UninstallMultipleProtocolInterfaces ( snpdev->handle, &efi_simple_network_protocol_guid, &snpdev->snp, |