summaryrefslogtreecommitdiff
path: root/zttranscode.c
diff options
context:
space:
mode:
authorkpfleming <kpfleming@5390a7c7-147a-4af0-8ec9-7488f05a26cb>2006-08-22 21:03:03 +0000
committerkpfleming <kpfleming@5390a7c7-147a-4af0-8ec9-7488f05a26cb>2006-08-22 21:03:03 +0000
commit75ab849ee34300f1b748fe391a4a8a2949681e95 (patch)
treebd72aac6d36365071c012c12b8478efd3860e245 /zttranscode.c
parent89424e2a50727e68642652a00ee0613519ac9da7 (diff)
fix for kernel weirdness when transcode devices are closed
git-svn-id: http://svn.digium.com/svn/zaptel/trunk@1342 5390a7c7-147a-4af0-8ec9-7488f05a26cb
Diffstat (limited to 'zttranscode.c')
-rw-r--r--zttranscode.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/zttranscode.c b/zttranscode.c
index 334304b..5c9f26b 100644
--- a/zttranscode.c
+++ b/zttranscode.c
@@ -199,9 +199,17 @@ static int zt_tc_open(struct inode *inode, struct file *file)
static void ztc_release(struct zt_transcoder_channel *ztc)
{
+ struct zt_transcode_header *zth = ztc->tch;
+ struct page *page;
+
if (!ztc)
return;
+ for (page = virt_to_page(zth);
+ page < virt_to_page((unsigned long) zth + sizeof(*zth));
+ page++)
+ ClearPageReserved(page);
+
ztc->flags &= ~(ZT_TC_FLAG_BUSY);
if (ztc->tch)
kfree(ztc->tch);