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); free_page((unsigned long)usrdata->mcctrl_doorbell_va);
destroy_peer_channel_registry(usrdata);
kfree(usrdata->channels); kfree(usrdata->channels);
kfree(usrdata); kfree(usrdata);
} }

View File

@ -226,6 +226,7 @@ int reserve_user_space(struct mcctrl_usrdata *usrdata, unsigned long *startp,
/* syscall.c */ /* syscall.c */
int init_peer_channel_registry(struct mcctrl_usrdata *ud); 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 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); 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); 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; 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 register_peer_channel(struct mcctrl_usrdata *ud, void *key, struct mcctrl_channel *ch)
{ {
int cpu; int cpu;