1. 15 5月, 2012 2 次提交
  2. 20 5月, 2011 1 次提交
  3. 22 3月, 2011 1 次提交
    • I
      [media] double mutex lock in drivers/media/radio/si470x/radio-si470x- · 2b97e220
      iceberg 提交于
      KERNEL_VERSION: 2.6.37
      common.c in function ssize_t si470x_fops_read.
      
      1. First mutex_lock on &radio->lock in line 441
      2. Second in line 462
      
      I think that mutex in line 462 is not needed.
      
       433static ssize_t si470x_fops_read(struct file *file, char __user *buf,
       434                size_t count, loff_t *ppos)
       435{
      ....
       441        mutex_lock(&radio->lock);
       442        if ((radio->registers[SYSCONFIG1] & SYSCONFIG1_RDS) == 0)
       443                si470x_rds_on(radio);
       444
       445        /* block if no new data available */
       446        while (radio->wr_index == radio->rd_index) {
       447                if (file->f_flags & O_NONBLOCK) {
       448                        retval = -EWOULDBLOCK;
       449                        goto done;
       450                }
       451                if (wait_event_interruptible(radio->read_queue,
       452                        radio->wr_index != radio->rd_index) < 0) {
       453                        retval = -EINTR;
       454                        goto done;
       455                }
       456        }
       457
       458        /* calculate block count from byte count */
       459        count /= 3;
       460
       461        /* copy RDS block out of internal buffer and to user buffer */
       462        mutex_lock(&radio->lock);
      
      Found by Linux Device Drivers Verification Project
      
      Remove second mutex.
      Signed-off-by: NAlexander Strakh <strakh@ispras.ru>
      Signed-off-by: NMauro Carvalho Chehab <mchehab@redhat.com>
      2b97e220
  4. 19 1月, 2011 2 次提交
  5. 23 10月, 2010 1 次提交
  6. 21 10月, 2010 1 次提交
  7. 03 8月, 2010 1 次提交
  8. 27 2月, 2010 1 次提交
  9. 16 12月, 2009 1 次提交
  10. 12 9月, 2009 4 次提交