summaryrefslogtreecommitdiff
path: root/arch/x86/machine/pmap.c
diff options
context:
space:
mode:
authorRichard Braun <rbraun@sceen.net>2014-05-20 23:01:48 +0200
committerRichard Braun <rbraun@sceen.net>2014-05-20 23:01:48 +0200
commit6c55454c1302c2128eb1b274f68a19633555e19e (patch)
treed98acf884de5d3184781ad8da27d8babbd2dd67b /arch/x86/machine/pmap.c
parent6777bd2cbd900bfb563a57814b6691996d808d1a (diff)
x86/pmap: free syncer threads oplists
Diffstat (limited to 'arch/x86/machine/pmap.c')
-rw-r--r--arch/x86/machine/pmap.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/x86/machine/pmap.c b/arch/x86/machine/pmap.c
index 0928280..0f3efd9 100644
--- a/arch/x86/machine/pmap.c
+++ b/arch/x86/machine/pmap.c
@@ -1005,6 +1005,7 @@ void __init
pmap_mp_setup(void)
{
char name[THREAD_NAME_SIZE];
+ struct pmap_update_oplist *oplist;
struct thread_attr attr;
struct pmap_syncer *syncer;
struct cpumap *cpumap;
@@ -1032,6 +1033,10 @@ pmap_mp_setup(void)
if (error)
panic("pmap: unable to create syncer thread");
+
+ oplist = thread_tsd_get(syncer->thread, pmap_oplist_tsd_key);
+ thread_tsd_set(syncer->thread, pmap_oplist_tsd_key, NULL);
+ kmem_cache_free(&pmap_update_oplist_cache, oplist);
}
cpumap_destroy(cpumap);