Index: uspace/drv/nic/e1k/e1k.c
===================================================================
--- uspace/drv/nic/e1k/e1k.c	(revision 870841cf500de256e7549deb8adf082aa90a11ce)
+++ uspace/drv/nic/e1k/e1k.c	(revision 1ec732aab0ba8690739aa05157e7fe75269a7829)
@@ -175,4 +175,5 @@
 	/** Lock for EEPROM access */
 	fibril_mutex_t eeprom_lock;
+
 } e1000_t;
 
@@ -1192,4 +1193,5 @@
 		if (frame != NULL) {
 			memcpy(frame->data, e1000->rx_frame_virt[next_tail], frame_size);
+
 			nic_received_frame(nic, frame);
 		} else {
@@ -2201,12 +2203,12 @@
 		goto err_fun_bind;
 
-	rc = ddf_fun_add_to_category(fun, DEVICE_CATEGORY_NIC);
-	if (rc != EOK)
-		goto err_add_to_cat;
-
+	rc = nic_fun_add_to_cats(fun);
+	if (rc != EOK) {
+		ddf_msg(LVL_ERROR, "Failed adding function to categories");
+		ddf_fun_unbind(fun);
+		return rc;
+	}
 	return EOK;
 
-err_add_to_cat:
-	ddf_fun_unbind(fun);
 err_fun_bind:
 err_rx_structure:
@@ -2388,5 +2390,4 @@
 
 	memcpy(e1000->tx_frame_virt[tdt], data, size);
-
 	tx_descriptor_addr->phys_addr = PTR_TO_U64(e1000->tx_frame_phys[tdt]);
 	tx_descriptor_addr->length = size;
Index: uspace/drv/nic/e1k/meson.build
===================================================================
--- uspace/drv/nic/e1k/meson.build	(revision 870841cf500de256e7549deb8adf082aa90a11ce)
+++ uspace/drv/nic/e1k/meson.build	(revision 1ec732aab0ba8690739aa05157e7fe75269a7829)
@@ -27,4 +27,4 @@
 #
 
-deps = [ 'nic' ]
+deps = [ 'nic' , 'pcap' ]
 src = files('e1k.c')
Index: uspace/drv/nic/ne2k/ne2k.c
===================================================================
--- uspace/drv/nic/ne2k/ne2k.c	(revision 870841cf500de256e7549deb8adf082aa90a11ce)
+++ uspace/drv/nic/ne2k/ne2k.c	(revision 1ec732aab0ba8690739aa05157e7fe75269a7829)
@@ -44,4 +44,5 @@
 #include <str_error.h>
 #include <async.h>
+#include <ddf/log.h>
 #include "dp8390.h"
 
@@ -450,8 +451,8 @@
 	}
 
-	rc = ddf_fun_add_to_category(fun, DEVICE_CATEGORY_NIC);
+	rc = nic_fun_add_to_cats(fun);
 	if (rc != EOK) {
+		ddf_msg(LVL_ERROR, "Failed adding function to categories");
 		ddf_fun_unbind(fun);
-		ddf_fun_destroy(fun);
 		return rc;
 	}
@@ -497,4 +498,5 @@
 	nic_driver_implement(&ne2k_driver_ops, &ne2k_dev_ops, &ne2k_nic_iface);
 
+	ddf_log_init(NAME);
 	return ddf_driver_main(&ne2k_driver);
 }
Index: uspace/drv/nic/rtl8139/driver.c
===================================================================
--- uspace/drv/nic/rtl8139/driver.c	(revision 870841cf500de256e7549deb8adf082aa90a11ce)
+++ uspace/drv/nic/rtl8139/driver.c	(revision 1ec732aab0ba8690739aa05157e7fe75269a7829)
@@ -1313,8 +1313,10 @@
 		goto err_fun_create;
 	}
-	rc = ddf_fun_add_to_category(fun, DEVICE_CATEGORY_NIC);
+
+	rc = nic_fun_add_to_cats(fun);
 	if (rc != EOK) {
-		ddf_msg(LVL_ERROR, "Failed adding function to category");
-		goto err_fun_bind;
+		ddf_msg(LVL_ERROR, "Failed adding function to categories");
+		ddf_fun_unbind(fun);
+		return rc;
 	}
 
@@ -1324,6 +1326,6 @@
 	return EOK;
 
-err_fun_bind:
-	ddf_fun_unbind(fun);
+	// err_fun_bind:
+	// ddf_fun_unbind(fun);
 err_fun_create:
 	ddf_fun_destroy(fun);
Index: uspace/drv/nic/rtl8169/driver.c
===================================================================
--- uspace/drv/nic/rtl8169/driver.c	(revision 870841cf500de256e7549deb8adf082aa90a11ce)
+++ uspace/drv/nic/rtl8169/driver.c	(revision 1ec732aab0ba8690739aa05157e7fe75269a7829)
@@ -461,8 +461,9 @@
 	}
 
-	rc = ddf_fun_add_to_category(fun, DEVICE_CATEGORY_NIC);
+	rc = nic_fun_add_to_cats(fun);
 	if (rc != EOK) {
-		ddf_msg(LVL_ERROR, "Failed adding function to category");
-		goto err_fun_bind;
+		ddf_msg(LVL_ERROR, "Failed adding function to categories");
+		ddf_fun_unbind(fun);
+		return rc;
 	}
 
@@ -471,6 +472,6 @@
 	return EOK;
 
-err_fun_bind:
-	ddf_fun_unbind(fun);
+	// err_fun_bind:
+	// ddf_fun_unbind(fun);
 err_fun_create:
 	ddf_fun_destroy(fun);
Index: uspace/drv/nic/virtio-net/virtio-net.c
===================================================================
--- uspace/drv/nic/virtio-net/virtio-net.c	(revision 870841cf500de256e7549deb8adf082aa90a11ce)
+++ uspace/drv/nic/virtio-net/virtio-net.c	(revision 1ec732aab0ba8690739aa05157e7fe75269a7829)
@@ -428,8 +428,9 @@
 	}
 
-	rc = ddf_fun_add_to_category(fun, DEVICE_CATEGORY_NIC);
+	rc = nic_fun_add_to_cats(fun);
 	if (rc != EOK) {
-		ddf_msg(LVL_ERROR, "Failed adding function to category");
-		goto unbind;
+		ddf_msg(LVL_ERROR, "Failed adding function to categories");
+		ddf_fun_unbind(fun);
+		return rc;
 	}
 
@@ -439,6 +440,6 @@
 	return EOK;
 
-unbind:
-	ddf_fun_unbind(fun);
+	// unbind:
+	// ddf_fun_unbind(fun);
 destroy:
 	ddf_fun_destroy(fun);
