Index: uspace/lib/drv/generic/driver.c
===================================================================
--- uspace/lib/drv/generic/driver.c	(revision fe8961db047fff7f6f3e5cb6cd8dd148c78821e6)
+++ uspace/lib/drv/generic/driver.c	(revision 53a309ecb415a7ff296b01590de2f9ff2e5714cd)
@@ -599,29 +599,16 @@
 }
 
-/** Create session with the parent function.
- *
- * The session will be automatically closed when @a dev is destroyed.
- *
- * @param dev Device
- *
- * @return New session or NULL if session could not be created
- *
- */
-async_sess_t *ddf_dev_parent_sess_create(ddf_dev_t *dev)
-{
-	assert(dev->parent_sess == NULL);
-	dev->parent_sess = devman_parent_device_connect(dev->handle,
-	    IPC_FLAG_BLOCKING);
-
-	return dev->parent_sess;
-}
-
 /** Return existing session with the parent function.
  *
  * @param dev	Device
- * @return	Existing session or NULL if there is no session
+ * @return	Session with parent function or NULL upon failure
  */
 async_sess_t *ddf_dev_parent_sess_get(ddf_dev_t *dev)
 {
+	if (dev->parent_sess == NULL) {
+		dev->parent_sess = devman_parent_device_connect(dev->handle,
+		    IPC_FLAG_BLOCKING);
+	}
+
 	return dev->parent_sess;
 }
Index: uspace/lib/drv/include/ddf/driver.h
===================================================================
--- uspace/lib/drv/include/ddf/driver.h	(revision fe8961db047fff7f6f3e5cb6cd8dd148c78821e6)
+++ uspace/lib/drv/include/ddf/driver.h	(revision 53a309ecb415a7ff296b01590de2f9ff2e5714cd)
@@ -117,5 +117,4 @@
 extern devman_handle_t ddf_dev_get_handle(ddf_dev_t *);
 extern const char *ddf_dev_get_name(ddf_dev_t *);
-extern async_sess_t *ddf_dev_parent_sess_create(ddf_dev_t *);
 extern async_sess_t *ddf_dev_parent_sess_get(ddf_dev_t *);
 extern ddf_fun_t *ddf_fun_create(ddf_dev_t *, fun_type_t, const char *);
Index: uspace/lib/nic/src/nic_driver.c
===================================================================
--- uspace/lib/nic/src/nic_driver.c	(revision fe8961db047fff7f6f3e5cb6cd8dd148c78821e6)
+++ uspace/lib/nic/src/nic_driver.c	(revision 53a309ecb415a7ff296b01590de2f9ff2e5714cd)
@@ -249,7 +249,7 @@
 	
 	/* Connect to the parent's driver. */
-	parent_sess = ddf_dev_parent_sess_create(dev);
+	parent_sess = ddf_dev_parent_sess_get(dev);
 	if (parent_sess == NULL)
-		return EPARTY;
+		return EIO;
 	
 	return hw_res_get_list_parsed(parent_sess, resources, 0);
