management->link_up.interface_id);
                        return;
                }
-               ret = gb_bundle_init(intf,
-                               management->link_up.interface_id,
-                               management->link_up.device_id);
+               ret = gb_bundles_init(intf, management->link_up.device_id);
                if (ret) {
                        dev_err(hd->parent,
                                "error %d initializing bundles for interface %hhu\n",
 
        }
 }
 
-int gb_bundle_init(struct gb_interface *intf, u8 bundle_id, u8 device_id)
+int gb_bundle_init(struct gb_bundle *bundle, u8 device_id)
 {
-       struct gb_bundle *bundle;
+       struct gb_interface *intf = bundle->intf;
        int ret;
 
-       bundle = gb_bundle_find(intf, bundle_id);
-       if (!bundle) {
-               dev_err(intf->hd->parent, "bundle %hhu not found\n", bundle_id);
-               return -ENOENT;
-       }
        bundle->device_id = device_id;
 
        ret = svc_set_route_send(bundle, intf->hd);
        return 0;
 }
 
+int gb_bundles_init(struct gb_interface *intf, u8 device_id)
+{
+       struct gb_bundle *bundle;
+       int ret = 0;
+
+       list_for_each_entry(bundle, &intf->bundles, links) {
+               ret = gb_bundle_init(bundle, device_id);
+               if (ret) {
+                       dev_err(intf->hd->parent,
+                               "Failed to initialize bundle %hhu\n",
+                               bundle->id);
+                       break;
+               }
+       }
+
+       return ret;
+}
+
 struct gb_bundle *gb_bundle_find(struct gb_interface *intf, u8 bundle_id)
 {
        struct gb_bundle *bundle;
 
 struct gb_bundle *gb_bundle_create(struct gb_interface *intf, u8 bundle_id,
                                   u8 class_type);
 void gb_bundle_destroy(struct gb_interface *intf);
-int gb_bundle_init(struct gb_interface *intf, u8 module_id, u8 device_id);
+int gb_bundle_init(struct gb_bundle *bundle, u8 device_id);
+int gb_bundles_init(struct gb_interface *intf, u8 device_id);
 
 struct gb_bundle *gb_bundle_find(struct gb_interface *intf, u8 bundle_id);
 void gb_bundle_bind_protocols(void);