static int flexcop_usb_transfer_init(struct flexcop_usb *fc_usb)
 {
-       u16 frame_size = le16_to_cpu(
-               fc_usb->uintf->cur_altsetting->endpoint[0].desc.wMaxPacketSize);
-       int bufsize = B2C2_USB_NUM_ISO_URB * B2C2_USB_FRAMES_PER_ISO *
-               frame_size, i, j, ret;
+       struct usb_host_interface *alt = fc_usb->uintf->cur_altsetting;
+       u16 frame_size;
+       int bufsize, i, j, ret;
        int buffer_offset = 0;
 
+       frame_size = le16_to_cpu(alt->endpoint[0].desc.wMaxPacketSize);
+       bufsize = B2C2_USB_NUM_ISO_URB * B2C2_USB_FRAMES_PER_ISO * frame_size;
+
        deb_ts("creating %d iso-urbs with %d frames each of %d bytes size = %d.\n",
               B2C2_USB_NUM_ISO_URB,
                        B2C2_USB_FRAMES_PER_ISO, frame_size, bufsize);