|
@@ -1053,7 +1053,10 @@ static int efi_snp_probe ( struct net_device *netdev ) {
|
1053
|
1053
|
if ( ( rc = efi_snp_hii_install ( snpdev ) ) != 0 ) {
|
1054
|
1054
|
DBGC ( snpdev, "SNPDEV %p could not install HII: %s\n",
|
1055
|
1055
|
snpdev, strerror ( rc ) );
|
1056
|
|
- goto err_hii_install;
|
|
1056
|
+ /* HII fails on several platforms. It's
|
|
1057
|
+ * non-essential, so treat this as a non-fatal
|
|
1058
|
+ * error.
|
|
1059
|
+ */
|
1057
|
1060
|
}
|
1058
|
1061
|
|
1059
|
1062
|
/* Add to list of SNP devices */
|
|
@@ -1064,8 +1067,8 @@ static int efi_snp_probe ( struct net_device *netdev ) {
|
1064
|
1067
|
efi_devpath_text ( &snpdev->path ) );
|
1065
|
1068
|
return 0;
|
1066
|
1069
|
|
1067
|
|
- efi_snp_hii_uninstall ( snpdev );
|
1068
|
|
- err_hii_install:
|
|
1070
|
+ if ( snpdev->package_list )
|
|
1071
|
+ efi_snp_hii_uninstall ( snpdev );
|
1069
|
1072
|
efidev_child_del ( efidev, snpdev->handle );
|
1070
|
1073
|
err_efidev_child_add:
|
1071
|
1074
|
bs->UninstallMultipleProtocolInterfaces (
|
|
@@ -1130,7 +1133,8 @@ static void efi_snp_remove ( struct net_device *netdev ) {
|
1130
|
1133
|
}
|
1131
|
1134
|
|
1132
|
1135
|
/* Uninstall the SNP */
|
1133
|
|
- efi_snp_hii_uninstall ( snpdev );
|
|
1136
|
+ if ( snpdev->package_list )
|
|
1137
|
+ efi_snp_hii_uninstall ( snpdev );
|
1134
|
1138
|
efidev_child_del ( snpdev->efidev, snpdev->handle );
|
1135
|
1139
|
list_del ( &snpdev->list );
|
1136
|
1140
|
bs->UninstallMultipleProtocolInterfaces (
|