add missing kfree() for channel lookup table

This commit is contained in:
NAKAMURA Gou
2016-01-06 14:56:52 +09:00
parent 75c6a94839
commit 914faf042d
3 changed files with 9 additions and 0 deletions

View File

@ -388,6 +388,7 @@ void destroy_ikc_channels(ihk_os_t os)
}
free_page((unsigned long)usrdata->mcctrl_doorbell_va);
destroy_peer_channel_registry(usrdata);
kfree(usrdata->channels);
kfree(usrdata);
}

View File

@ -226,6 +226,7 @@ int reserve_user_space(struct mcctrl_usrdata *usrdata, unsigned long *startp,
/* syscall.c */
int init_peer_channel_registry(struct mcctrl_usrdata *ud);
void destroy_peer_channel_registry(struct mcctrl_usrdata *ud);
int register_peer_channel(struct mcctrl_usrdata *ud, void *key, struct mcctrl_channel *ch);
int deregister_peer_channel(struct mcctrl_usrdata *ud, void *key, struct mcctrl_channel *ch);
struct mcctrl_channel *get_peer_channel(struct mcctrl_usrdata *ud, void *key);

View File

@ -83,6 +83,13 @@ int init_peer_channel_registry(struct mcctrl_usrdata *ud)
return 0;
}
void destroy_peer_channel_registry(struct mcctrl_usrdata *ud)
{
kfree(ud->keys);
ud->keys = NULL;
return;
}
int register_peer_channel(struct mcctrl_usrdata *ud, void *key, struct mcctrl_channel *ch)
{
int cpu;