summaryrefslogtreecommitdiffstats
path: root/src/interface
diff options
context:
space:
mode:
authorMichael Brown2015-09-01 17:19:08 +0200
committerMichael Brown2015-09-01 22:04:45 +0200
commit9869ee512522ce7019f8042fbc05aa02a8f60bde (patch)
treee639cce03ac68206e8f1b5f50e7a003d71b37f20 /src/interface
parent[tcpip] Allow supported address families to be detected at runtime (diff)
downloadipxe-9869ee512522ce7019f8042fbc05aa02a8f60bde.tar.gz
ipxe-9869ee512522ce7019f8042fbc05aa02a8f60bde.tar.xz
ipxe-9869ee512522ce7019f8042fbc05aa02a8f60bde.zip
[efi] Allow calls to efi_snp_claim() and efi_snp_release() to be nested
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/interface')
-rw-r--r--src/interface/efi/efi_snp.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/interface/efi/efi_snp.c b/src/interface/efi/efi_snp.c
index c2604580..b7debe7b 100644
--- a/src/interface/efi/efi_snp.c
+++ b/src/interface/efi/efi_snp.c
@@ -1231,15 +1231,16 @@ struct efi_snp_device * last_opened_snpdev ( void ) {
}
/**
- * Set SNP claimed/released state
+ * Add to SNP claimed/released count
*
- * @v claimed Network devices are claimed for use by iPXE
+ * @v delta Claim count change
*/
-void efi_snp_set_claimed ( int claimed ) {
+void efi_snp_add_claim ( int delta ) {
struct efi_snp_device *snpdev;
/* Claim SNP devices */
- efi_snp_claimed = claimed;
+ efi_snp_claimed += delta;
+ assert ( efi_snp_claimed >= 0 );
/* Update SNP mode state for each interface */
list_for_each_entry ( snpdev, &efi_snp_devices, list )