From: Matt Helsley Simplify get_undo_list() by dropping the unnecessary cast, removing the size variable, and switching to kzalloc() instead of a kmalloc() followed by a memset(). This cleanup was split then modified from Jes Sorenson's Task Notifiers patches. Signed-off-by: Matt Helsley Cc: Jes Sorensen Signed-off-by: Andrew Morton --- ipc/sem.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff -puN ipc/sem.c~ipc-replace-kmalloc-and-memset-in-get_undo_list-with-kzalloc ipc/sem.c --- a/ipc/sem.c~ipc-replace-kmalloc-and-memset-in-get_undo_list-with-kzalloc +++ a/ipc/sem.c @@ -1021,7 +1021,6 @@ static inline void unlock_semundo(void) static inline int get_undo_list(struct sem_undo_list **undo_listp) { struct sem_undo_list *undo_list; - int size; struct notifier_block *semun_nb; int retval; @@ -1029,8 +1028,7 @@ static inline int get_undo_list(struct s if (!undo_list) { semun_nb = NULL; retval = -ENOMEM; - size = sizeof(struct sem_undo_list); - undo_list = (struct sem_undo_list *) kmalloc(size, GFP_KERNEL); + undo_list = kzalloc(sizeof(*undo_list), GFP_KERNEL); if (undo_list == NULL) goto err; semun_nb = kzalloc(sizeof(*semun_nb), GFP_KERNEL); @@ -1040,7 +1038,6 @@ static inline int get_undo_list(struct s retval = register_per_task_watcher(semun_nb); if (retval) goto err; - memset(undo_list, 0, size); spin_lock_init(&undo_list->lock); atomic_set(&undo_list->refcnt, 1); current->sysvsem.undo_list = undo_list; _