Index: uspace/lib/usbhost/src/hcd.c
===================================================================
--- uspace/lib/usbhost/src/hcd.c	(revision 944f8fdd006b2359954cee16ede3ed01c2d88b24)
+++ uspace/lib/usbhost/src/hcd.c	(revision 1a2227dd48e5aa6c8c9a405d3d2af5380b443736)
@@ -100,9 +100,6 @@
 	hc_device_t *hcd = dev_to_hcd(dev);
 
-	const bus_ops_t *ops = BUS_OPS_LOOKUP(hcd->bus->ops, interrupt);
-	assert(ops);
-
 	const uint32_t status = IPC_GET_ARG1(*call);
-	ops->interrupt(hcd->bus, status);
+	hcd->bus->ops->interrupt(hcd->bus, status);
 }
 
@@ -115,12 +112,10 @@
 	assert(bus);
 
-	const bus_ops_t *interrupt_ops = BUS_OPS_LOOKUP(bus->ops, interrupt);
-	const bus_ops_t *status_ops = BUS_OPS_LOOKUP(bus->ops, status);
-	if (!interrupt_ops || !status_ops)
+	if (!bus->ops->interrupt || !bus->ops->status)
 		return ENOTSUP;
 
 	uint32_t status = 0;
-	while (status_ops->status(bus, &status) == EOK) {
-		interrupt_ops->interrupt(bus, status);
+	while (bus->ops->status(bus, &status) == EOK) {
+		bus->ops->interrupt(bus, status);
 		status = 0;
 		/* We should wait 1 frame - 1ms here, but this polling is a
@@ -265,8 +260,8 @@
 	}
 
-	const bus_ops_t *ops = BUS_OPS_LOOKUP(hcd->bus->ops, status);
+	const bus_ops_t *ops = hcd->bus->ops;
 
 	/* Need working irq replacement to setup root hub */
-	if (hcd->irq_cap < 0 && ops) {
+	if (hcd->irq_cap < 0 && ops->status) {
 		hcd->polling_fibril = fibril_create(interrupt_polling, hcd->bus);
 		if (!hcd->polling_fibril) {
