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); -
| Bart Van Assche | Integration of SCST in the mainstream Linux kernel |
| Hiten Pandya | Re: up? (emacs docbook xml ide) |
| Greg KH | [GIT PATCH] driver core patches against 2.6.24 |
| David Miller | Slow DOWN, please!!! |
git: | |
| Evgeniy Polyakov | Re: [BUG] New Kernel Bugs |
| Gerrit Renker | [PATCH 14/37] dccp: Tidy up setsockopt calls |
| David Woodhouse | tun: add tun_flags, owner, group attributes in sysfs |
| Jarek Poplawski | Re: [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
