The patch titled
drivers/usb/misc/auerswald.c: convert ccp->mutex into a mutex
has been added to the -mm tree. Its filename is
drivers-usb-misc-auerswaldc-convert-ccp-mutex-into-a-mutex.patch
Before you just go and hit "reply", please:
a) Consider who else should be cc'ed
b) Prefer to cc a suitable mailing list as well
c) Ideally: find the original patch on the mailing list and do a
reply-to-all to that, adding suitable additional cc's
*** Remember to use Documentation/SubmitChecklist when testing your code ***
See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find
out what to do about this
The current -mm tree may be found at http://userweb.kernel.org/~akpm/mmotm/
------------------------------------------------------
Subject: drivers/usb/misc/auerswald.c: convert ccp->mutex into a mutex
From: Matthias Kaehlcke <[EMAIL PROTECTED]>
The semaphore ccp->mutex is used as mutex, convert it to the mutex API
Signed-off-by: Matthias Kaehlcke <[EMAIL PROTECTED]>
Cc: Greg KH <[EMAIL PROTECTED]>
Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
---
drivers/usb/misc/auerswald.c | 52 ++++++++++++++++-----------------
1 file changed, 26 insertions(+), 26 deletions(-)
diff -puN
drivers/usb/misc/auerswald.c~drivers-usb-misc-auerswaldc-convert-ccp-mutex-into-a-mutex
drivers/usb/misc/auerswald.c
---
a/drivers/usb/misc/auerswald.c~drivers-usb-misc-auerswaldc-convert-ccp-mutex-into-a-mutex
+++ a/drivers/usb/misc/auerswald.c
@@ -254,7 +254,7 @@ typedef struct
/* character device context */
typedef struct
{
- struct semaphore mutex; /* protection in user context */
+ struct mutex mutex; /* protection in user context */
pauerswald_t auerdev; /* context pointer of assigned device */
auerbufctl_t bufctl; /* controls the buffer chain */
auerscon_t scontext; /* service context */
@@ -1390,7 +1390,7 @@ static int auerchar_open (struct inode *
}
/* Initialize device descriptor */
- init_MUTEX( &ccp->mutex);
+ mutex_init(&ccp->mutex);
mutex_init(&ccp->readmutex);
auerbuf_init (&ccp->bufctl);
ccp->scontext.id = AUH_UNASSIGNED;
@@ -1433,23 +1433,23 @@ static int auerchar_ioctl (struct inode
dbg ("ioctl");
/* get the mutexes */
- if (down_interruptible (&ccp->mutex)) {
+ if (mutex_lock_interruptible(&ccp->mutex)) {
return -ERESTARTSYS;
}
cp = ccp->auerdev;
if (!cp) {
- up (&ccp->mutex);
+ mutex_unlock(&ccp->mutex);
return -ENODEV;
}
if (mutex_lock_interruptible(&cp->mutex)) {
- up(&ccp->mutex);
+ mutex_unlock(&ccp->mutex);
return -ERESTARTSYS;
}
/* Check for removal */
if (!cp->usbdev) {
mutex_unlock(&cp->mutex);
- up(&ccp->mutex);
+ mutex_unlock(&ccp->mutex);
return -ENODEV;
}
@@ -1552,7 +1552,7 @@ static int auerchar_ioctl (struct inode
}
/* release the mutexes */
mutex_unlock(&cp->mutex);
- up(&ccp->mutex);
+ mutex_unlock(&ccp->mutex);
return ret;
}
@@ -1575,18 +1575,18 @@ static ssize_t auerchar_read (struct fil
return 0;
/* get the mutex */
- if (down_interruptible (&ccp->mutex))
+ if (mutex_lock_interruptible(&ccp->mutex))
return -ERESTARTSYS;
/* Can we expect to read something? */
if (ccp->scontext.id == AUH_UNASSIGNED) {
- up (&ccp->mutex);
+ mutex_unlock(&ccp->mutex);
return -EIO;
}
/* only one reader per device allowed */
if (mutex_lock_interruptible(&ccp->readmutex)) {
- up (&ccp->mutex);
+ mutex_unlock(&ccp->mutex);
return -ERESTARTSYS;
}
@@ -1604,7 +1604,7 @@ doreadbuf:
if (copy_to_user (buf, bp->bufp+ccp->readoffset,
count)) {
dbg ("auerswald_read: copy_to_user failed");
mutex_unlock(&ccp->readmutex);
- up (&ccp->mutex);
+ mutex_unlock(&ccp->mutex);
return -EFAULT;
}
}
@@ -1619,7 +1619,7 @@ doreadbuf:
/* return with number of bytes read */
if (count) {
mutex_unlock(&ccp->readmutex);
- up (&ccp->mutex);
+ mutex_unlock(&ccp->mutex);
return count;
}
}
@@ -1656,12 +1656,12 @@ doreadlist:
set_current_state (TASK_RUNNING);
remove_wait_queue (&ccp->readwait, &wait);
mutex_unlock(&ccp->readmutex);
- up (&ccp->mutex);
+ mutex_unlock(&ccp->mutex);
return -EAGAIN; /* nonblocking, no data available */
}
/* yes, we should wait! */
- up (&ccp->mutex); /* allow other operations while we wait */
+ mutex_unlock(&ccp->mutex); /* allow other operations while we wait */
schedule();
remove_wait_queue (&ccp->readwait, &wait);
if (signal_pending (current)) {
@@ -1676,7 +1676,7 @@ doreadlist:
return -EIO;
}
- if (down_interruptible (&ccp->mutex)) {
+ if (mutex_lock_interruptible(&ccp->mutex)) {
mutex_unlock(&ccp->readmutex);
return -ERESTARTSYS;
}
@@ -1708,27 +1708,27 @@ static ssize_t auerchar_write (struct fi
write_again:
/* get the mutex */
- if (down_interruptible (&ccp->mutex))
+ if (mutex_lock_interruptible(&ccp->mutex))
return -ERESTARTSYS;
/* Can we expect to write something? */
if (ccp->scontext.id == AUH_UNASSIGNED) {
- up (&ccp->mutex);
+ mutex_unlock(&ccp->mutex);
return -EIO;
}
cp = ccp->auerdev;
if (!cp) {
- up (&ccp->mutex);
+ mutex_unlock(&ccp->mutex);
return -ERESTARTSYS;
}
if (mutex_lock_interruptible(&cp->mutex)) {
- up (&ccp->mutex);
+ mutex_unlock(&ccp->mutex);
return -ERESTARTSYS;
}
if (!cp->usbdev) {
mutex_unlock(&cp->mutex);
- up (&ccp->mutex);
+ mutex_unlock(&ccp->mutex);
return -EIO;
}
/* Prepare for sleep */
@@ -1752,7 +1752,7 @@ write_again:
/* are there any buffers left? */
if (!bp) {
mutex_unlock(&cp->mutex);
- up (&ccp->mutex);
+ mutex_unlock(&ccp->mutex);
/* NONBLOCK: don't wait */
if (file->f_flags & O_NONBLOCK) {
@@ -1785,7 +1785,7 @@ write_again:
/* Wake up all processes waiting for a buffer */
wake_up (&cp->bufferwait);
mutex_unlock(&cp->mutex);
- up (&ccp->mutex);
+ mutex_unlock(&ccp->mutex);
return -EFAULT;
}
@@ -1810,12 +1810,12 @@ write_again:
auerbuf_releasebuf (bp);
/* Wake up all processes waiting for a buffer */
wake_up (&cp->bufferwait);
- up (&ccp->mutex);
+ mutex_unlock(&ccp->mutex);
return -EIO;
}
else {
dbg ("auerchar_write: Write OK");
- up (&ccp->mutex);
+ mutex_unlock(&ccp->mutex);
return len;
}
}
@@ -1828,7 +1828,7 @@ static int auerchar_release (struct inod
pauerswald_t cp;
dbg("release");
- down(&ccp->mutex);
+ mutex_lock(&ccp->mutex);
cp = ccp->auerdev;
if (cp) {
mutex_lock(&cp->mutex);
@@ -1845,7 +1845,7 @@ static int auerchar_release (struct inod
cp = NULL;
ccp->auerdev = NULL;
}
- up (&ccp->mutex);
+ mutex_unlock(&ccp->mutex);
auerchar_delete (ccp);
return 0;
_
Patches currently in -mm which might be from [EMAIL PROTECTED] are
cosa-srp-convert-channel_datarsem-to-mutex.patch
drivers-usb-misc-auerswaldc-convert-stats_sem-into-a-mutex.patch
drivers-usb-misc-auerswaldc-convert-ccp-readmutex-into-a-mutex.patch
drivers-usb-misc-auerswaldc-convert-ccp-mutex-into-a-mutex.patch
convert-acl-sem-in-a-mutex.patch
convert-stats_sem-in-a-mutex.patch
convert-wpa_sem-in-a-mutex.patch
-
To unsubscribe from this list: send the line "unsubscribe mm-commits" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html