|
@@ -177,10 +177,10 @@ mptctl_syscall_down(MPT_ADAPTER *ioc, int nonblock)
|
|
|
dctlprintk((KERN_INFO MYNAM "::mptctl_syscall_down(%p,%d) called\n", ioc, nonblock));
|
|
|
|
|
|
if (nonblock) {
|
|
|
- if (down_trylock(&ioc->ioctl->sem_ioc))
|
|
|
+ if (!mutex_trylock(&ioc->ioctl->ioctl_mutex))
|
|
|
rc = -EAGAIN;
|
|
|
} else {
|
|
|
- if (down_interruptible(&ioc->ioctl->sem_ioc))
|
|
|
+ if (mutex_lock_interruptible(&ioc->ioctl->ioctl_mutex))
|
|
|
rc = -ERESTARTSYS;
|
|
|
}
|
|
|
dctlprintk((KERN_INFO MYNAM "::mptctl_syscall_down return %d\n", rc));
|
|
@@ -557,7 +557,7 @@ __mptctl_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
|
|
|
else
|
|
|
ret = -EINVAL;
|
|
|
|
|
|
- up(&iocp->ioctl->sem_ioc);
|
|
|
+ mutex_unlock(&iocp->ioctl->ioctl_mutex);
|
|
|
|
|
|
return ret;
|
|
|
}
|
|
@@ -2619,7 +2619,7 @@ compat_mptfwxfer_ioctl(struct file *filp, unsigned int cmd,
|
|
|
|
|
|
ret = mptctl_do_fw_download(kfw.iocnum, kfw.bufp, kfw.fwlen);
|
|
|
|
|
|
- up(&iocp->ioctl->sem_ioc);
|
|
|
+ mutex_unlock(&iocp->ioctl->ioctl_mutex);
|
|
|
|
|
|
return ret;
|
|
|
}
|
|
@@ -2673,7 +2673,7 @@ compat_mpt_command(struct file *filp, unsigned int cmd,
|
|
|
*/
|
|
|
ret = mptctl_do_mpt_command (karg, &uarg->MF);
|
|
|
|
|
|
- up(&iocp->ioctl->sem_ioc);
|
|
|
+ mutex_unlock(&iocp->ioctl->ioctl_mutex);
|
|
|
|
|
|
return ret;
|
|
|
}
|
|
@@ -2743,7 +2743,7 @@ mptctl_probe(struct pci_dev *pdev, const struct pci_device_id *id)
|
|
|
memset(mem, 0, sz);
|
|
|
ioc->ioctl = (MPT_IOCTL *) mem;
|
|
|
ioc->ioctl->ioc = ioc;
|
|
|
- sema_init(&ioc->ioctl->sem_ioc, 1);
|
|
|
+ mutex_init(&ioc->ioctl->ioctl_mutex);
|
|
|
return 0;
|
|
|
|
|
|
out_fail:
|