Em Qua, 2007-12-12 às 13:03 +0100, Adrian Bunk escreveu:Hmm... I should have reviewed the patch instead of trusting on my memory. Yes, you're right. Brandon didn't rename this function. What happened is that changeset 19bc5133dae9562e8824ef101464061f9854c1d8 fixed some bad locks. After this changeset, videobuf_read_stream() holds q->lock and calls videobuf_read_start(). To avoid waiting forever for the lock to be released, he removed the mutex from videobuf_read_start with this line [1]: - err = videobuf_mmap_setup(q, count, size, V4L2_MEMORY_USERPTR); + err = __videobuf_mmap_setup(q, count, size, V4L2_MEMORY_USERPTR); So, after the patch, videobuf_read_start() can't be safely called. So, just adding EXPORT_SYMBOL_GPL() breaks videobuf-dvb at runtime. The proper solution is provided by this changeset: http://git.kernel.org/?p=linux/kernel/git/mchehab/v4l-dvb.git;a=commitdiff;h=19fb14579... This renames the old videobuf_read_start() to __videobuf_read_start() and adds a newer one to be called externally, that holds the lock, before calling __videobuf_mmap_setup(). [1] After his changeset, all functions with __foo() don't touch on q->lock. -- Cheers, Mauro --
| monstr | [PATCH 11/60] microblaze_v4: cache support |
| Andrew Morton | Re: x86: 4kstacks default |
| Greg KH | [GIT PATCH] driver core patches against 2.6.24 |
| Alan Cox | Re: Dual-Licensing Linux Kernel with GPL V2 and GPL V3 |
git: | |
| Jarek Poplawski | [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| Ben Hutchings | Re: [GIT]: Networking |
| Gerrit Renker | [PATCH 03/37] dccp: List management for new feature negotiation |
| Jiri Olsa | [PATCHv5 0/2] net: fix race in the receive/select |
