struct hid_device *hdev)
 {
        int rc;
-       struct usb_device *udev = hid_to_usb_dev(hdev);
-       __u8  bNumInterfaces = udev->config->desc.bNumInterfaces;
-       struct usb_interface *iface = to_usb_interface(hdev->dev.parent);
-       __u8 bInterfaceNumber = iface->cur_altsetting->desc.bInterfaceNumber;
+       struct usb_device *udev;
+       __u8  bNumInterfaces;
+       struct usb_interface *iface;
+       __u8 bInterfaceNumber;
        bool found;
        /* The resulting parameters (noop) */
        struct uclogic_params p = {0, };
                goto cleanup;
        }
 
+       udev = hid_to_usb_dev(hdev);
+       bNumInterfaces = udev->config->desc.bNumInterfaces;
+       iface = to_usb_interface(hdev->dev.parent);
+       bInterfaceNumber = iface->cur_altsetting->desc.bInterfaceNumber;
+
        /*
         * Set replacement report descriptor if the original matches the
         * specified size. Otherwise keep interface unchanged.