Messages in this thread | | | Subject | RE: [PATCH rev2 1/4] dmaengine: enable mutliple clients and operations | Date | Tue, 1 Aug 2006 11:03:28 -0700 | From | "Leech, Christopher" <> |
| |
Sorry Dave,
The delay on that issue is my fault. While Dan is an Intel employee, he's in a totally separate part of the company (and a different state) from me and the other networking folks.
I was trying to determine if reordering so that the spin_lock was inside the lock_cpu_hotplug would work, or if something else was needed, Dan suggested making the net_dma_event_lock a mutex, but then as Andrew pointed out as long as a lock is being held preemption is disabled and we're safe from cpu hotplug.
Simple patch to remove the lock_cpu_hotplug/unlock_cpu_hotplug calls as Andrew suggested coming up.
- Chris
> -----Original Message----- > From: David Miller [mailto:davem@davemloft.net] > Sent: Monday, July 31, 2006 11:12 PM > To: Williams, Dan J > Cc: linux-kernel@vger.kernel.org; neilb@suse.de; > galak@kernel.crashing.org; Leech, Christopher; > alan@lxorguk.ukuu.org.uk > Subject: Re: [PATCH rev2 1/4] dmaengine: enable mutliple > clients and operations > > > > Can I ask that the known bugs in the I/O AT DMA code be fixed > before we start adding new features to it? > > Specifically, the lock_cpu_hotplug() call in net_dma_rebalance() > is still there and being invoked with a spinlock held. The > spinlock is grabbed by the caller, netdev_dma_event() which > grabs the net_dma_event_lock spinlock. > > You cannot invoke lock_cpu_hotplug() while holding a spinlock > because lock_cpu_hotplug(), as seen in kernel/cpu.c, takes > a semaphore which can sleep. Sleeping while holding a spinlock > is not allowed. > > This is the second time I have tried to make the Intel developers > aware of this bug. So please fix this problem. > > Thanks a lot. > - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |