diff
 static ssize_t disable_show(struct device *dev,
 			      struct device_attribute *attr, char *buf)
 {
     // ... (existing code) ...
     if (rc < 0)
-		goto out_hub_get;
+		goto out;
     // ... (existing code) ...
  out_hdev_lock:
 	usb_unlock_device(hdev);
+	sysfs_unbreak_active_protection(kn);
+ out_autopm:
+	usb_autopm_put_interface(intf);
+ out:
+	hub_put(hub);
+	return rc;
 }
