static void xpad_irq_in(struct urb *urb)
 {
        struct usb_xpad *xpad = urb->context;
-       int retval;
+       int retval, status;
 
-       switch (urb->status) {
+       status = urb->status;
+
+       switch (status) {
        case 0:
                /* success */
                break;
        case -ESHUTDOWN:
                /* this urb is terminated, clean up */
                dbg("%s - urb shutting down with status: %d",
-                       __FUNCTION__, urb->status);
+                       __FUNCTION__, status);
                return;
        default:
                dbg("%s - nonzero urb status received: %d",
-                       __FUNCTION__, urb->status);
+                       __FUNCTION__, status);
                goto exit;
        }
 
 #if defined(CONFIG_JOYSTICK_XPAD_FF) || defined(CONFIG_JOYSTICK_XPAD_LEDS)
 static void xpad_irq_out(struct urb *urb)
 {
-       int retval;
+       int retval, status;
+
+       status = urb->status;
 
-       switch (urb->status) {
+       switch (status) {
                case 0:
                /* success */
                break;
                case -ESHUTDOWN:
                        /* this urb is terminated, clean up */
                        dbg("%s - urb shutting down with status: %d",
-                               __FUNCTION__, urb->status);
+                               __FUNCTION__, status);
                        return;
                default:
                        dbg("%s - nonzero urb status received: %d",
-                               __FUNCTION__, urb->status);
+                               __FUNCTION__, status);
                        goto exit;
        }