diff options
author | kpfleming <kpfleming@5390a7c7-147a-4af0-8ec9-7488f05a26cb> | 2006-08-22 21:03:03 +0000 |
---|---|---|
committer | kpfleming <kpfleming@5390a7c7-147a-4af0-8ec9-7488f05a26cb> | 2006-08-22 21:03:03 +0000 |
commit | 75ab849ee34300f1b748fe391a4a8a2949681e95 (patch) | |
tree | bd72aac6d36365071c012c12b8478efd3860e245 /zttranscode.c | |
parent | 89424e2a50727e68642652a00ee0613519ac9da7 (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.c | 8 |
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); |