Merge remote-tracking branch 'stable/linux-4.19.y' into rpi-4.19.y
authorpopcornmix <popcornmix@gmail.com>
Mon, 10 Jun 2019 14:08:23 +0000 (15:08 +0100)
committerpopcornmix <popcornmix@gmail.com>
Mon, 10 Jun 2019 14:08:23 +0000 (15:08 +0100)
1  2 
drivers/media/common/videobuf2/videobuf2-core.c
drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c
drivers/net/wireless/broadcom/brcm80211/brcmfmac/core.c
drivers/spi/spi.c
drivers/staging/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c
drivers/usb/core/hub.c
drivers/usb/dwc2/gadget.c
include/media/videobuf2-core.h

@@@ -654,9 -668,23 +654,14 @@@ int vb2_core_reqbufs(struct vb2_queue *
                return -EBUSY;
        }
  
+       if (q->waiting_in_dqbuf && *count) {
+               dprintk(1, "another dup()ped fd is waiting for a buffer\n");
+               return -EBUSY;
+       }
        if (*count == 0 || q->num_buffers != 0 ||
            (q->memory != VB2_MEMORY_UNKNOWN && q->memory != memory)) {
 -              /*
 -               * We already have buffers allocated, so first check if they
 -               * are not in use and can be freed.
 -               */
                mutex_lock(&q->mmap_lock);
 -              if (q->memory == VB2_MEMORY_MMAP && __buffers_in_use(q)) {
 -                      mutex_unlock(&q->mmap_lock);
 -                      dprintk(1, "memory in use, cannot free\n");
 -                      return -EBUSY;
 -              }
  
                /*
                 * Call queue_cancel to clean up any buffers in the PREPARED or
Simple merge
Simple merge
Simple merge
Simple merge