Am Mittwoch 24 Oktober 2007 schrieb Pete Zaitcev:But you are leaving a function while still on a waitqueue left on the stack. Here's a patch on top of yours. Regards Oliver ---- --- work/drivers/usb/misc/adutux.c.alt 2007-10-24 16:36:02.000000000 +0200 +++ work/drivers/usb/misc/adutux.c 2007-10-24 16:36:06.000000000 +0200 @@ -567,19 +567,21 @@ static ssize_t adu_write(struct file *fi retval = mutex_lock_interruptible(&dev->mtx); if (retval) - goto exit_nolock; + goto exit_nolock_intr; /* verify that the device wasn't unplugged */ if (dev->udev == NULL) { + mutex_unlock(&dev->mtx); retval = -ENODEV; err("No device or device unplugged %d", retval); - goto exit; + goto exit_nolock_intr; } /* verify that we actually have some data to write */ if (count == 0) { + mutex_unlock(&dev->mtx); dbg(1," %s : write request of 0 bytes", __FUNCTION__); - goto exit; + goto exit_nolock_intr; } add_wait_queue(&dev->write_wait, &waita); @@ -649,13 +651,14 @@ static ssize_t adu_write(struct file *fi bytes_written += bytes_to_write; } } - remove_wait_queue(&dev->write_wait, &waita); retval = bytes_written; exit: mutex_unlock(&dev->mtx); exit_nolock: + remove_wait_queue(&dev->write_wait, &waita); +exit_nolock_intr: dbg(2," %s : leave, return value %d", __FUNCTION__, retval); -
| David Newall | Re: Slow DOWN, please!!! |
| Greg Kroah-Hartman | [PATCH 001/196] Chinese: Add the known_regression URI to the HOWTO |
| Fernando Luis | [PATCH] affinity is not defined in non-smp kernels - x86_64 |
git: | |
| David Miller | [GIT]: Networking |
| Jarek Poplawski | Re: [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| Gerrit Renker | [PATCH 28/37] dccp: Integration of dynamic feature activation - part 3 (client side) |
| Jean-Louis Dupond | tg3 driver not advertising 1000mbit |
