USB: cdc-wdm: updating desc->length must be protected by spin_lock
[pandora-kernel.git] / drivers / usb / class / cdc-wdm.c
index efe6849..7e5e822 100644 (file)
@@ -467,7 +467,9 @@ retry:
        for (i = 0; i < desc->length - cntr; i++)
                desc->ubuf[i] = desc->ubuf[i + cntr];
 
+       spin_lock_irq(&desc->iuspin);
        desc->length -= cntr;
+       spin_unlock_irq(&desc->iuspin);
        /* in case we had outstanding data */
        if (!desc->length)
                clear_bit(WDM_READ, &desc->flags);