Index: uspace/drv/bus/usb/usbmid/explore.c
===================================================================
--- uspace/drv/bus/usb/usbmid/explore.c	(revision e8d6ce2f88c815fa1db7bc2cfaa982ab53208b5a)
+++ uspace/drv/bus/usb/usbmid/explore.c	(revision feeac0d8cd6e0ce736779bc5f1dc701c5cf42ba6)
@@ -56,6 +56,5 @@
 static bool interface_in_list(const list_t *list, int interface_no)
 {
-	list_foreach(*list, l) {
-		usbmid_interface_t *iface = usbmid_interface_from_link(l);
+	list_foreach(*list, link, usbmid_interface_t, iface) {
 		if (iface->interface_no == interface_no) {
 			return true;
@@ -190,7 +189,5 @@
 
 	/* Start child function for every interface. */
-	list_foreach(usb_mid->interface_list, link) {
-		usbmid_interface_t *iface = usbmid_interface_from_link(link);
-
+	list_foreach(usb_mid->interface_list, link, usbmid_interface_t, iface) {
 		usb_log_info("Creating child for interface %d (%s).\n",
 		    iface->interface_no,
Index: uspace/drv/bus/usb/usbmid/usbmid.c
===================================================================
--- uspace/drv/bus/usb/usbmid/usbmid.c	(revision e8d6ce2f88c815fa1db7bc2cfaa982ab53208b5a)
+++ uspace/drv/bus/usb/usbmid/usbmid.c	(revision feeac0d8cd6e0ce736779bc5f1dc701c5cf42ba6)
@@ -135,6 +135,5 @@
 	}
 
-	list_foreach(match_ids.ids, link) {
-		match_id_t *match_id = list_get_instance(link, match_id_t, link);
+	list_foreach(match_ids.ids, link, match_id_t, match_id) {
 		rc = ddf_fun_add_match_id(child, match_id->id, match_id->score);
 		if (rc != EOK) {
Index: uspace/drv/bus/usb/vhc/transfer.c
===================================================================
--- uspace/drv/bus/usb/vhc/transfer.c	(revision e8d6ce2f88c815fa1db7bc2cfaa982ab53208b5a)
+++ uspace/drv/bus/usb/vhc/transfer.c	(revision feeac0d8cd6e0ce736779bc5f1dc701c5cf42ba6)
@@ -92,6 +92,5 @@
 
 	bool target_found = false;
-	list_foreach(vhc->devices, pos) {
-		vhc_virtdev_t *dev = list_get_instance(pos, vhc_virtdev_t, link);
+	list_foreach(vhc->devices, link, vhc_virtdev_t, dev) {
 		fibril_mutex_lock(&dev->guard);
 		if (dev->address == transfer->address) {
