소스 검색

staging: comedi vmk80xx: lock held on error path

If the user passes an invalid command, then we don't drop the lock
before returning.  The check for invalid commands doesn't need to be
done under lock so I moved it forward a couple lines.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Dan Carpenter 13 년 전
부모
커밋
8f9064a8a3
1개의 변경된 파일2개의 추가작업 그리고 2개의 파일을 삭제
  1. 2 2
      drivers/staging/comedi/drivers/vmk80xx.c

+ 2 - 2
drivers/staging/comedi/drivers/vmk80xx.c

@@ -1020,12 +1020,12 @@ static int vmk80xx_cnt_cinsn(struct comedi_device *cdev,
 	if (n)
 	if (n)
 		return n;
 		return n;
 
 
-	down(&dev->limit_sem);
-
 	insn_cmd = data[0];
 	insn_cmd = data[0];
 	if (insn_cmd != INSN_CONFIG_RESET && insn_cmd != GPCT_RESET)
 	if (insn_cmd != INSN_CONFIG_RESET && insn_cmd != GPCT_RESET)
 		return -EINVAL;
 		return -EINVAL;
 
 
+	down(&dev->limit_sem);
+
 	chan = CR_CHAN(insn->chanspec);
 	chan = CR_CHAN(insn->chanspec);
 
 
 	if (dev->board.model == VMK8055_MODEL) {
 	if (dev->board.model == VMK8055_MODEL) {