From: Mathieu Desnoyers Date: Fri, 7 Sep 2018 21:55:32 +0000 (-0400) Subject: Fix: out of memory error handling X-Git-Tag: v2.11.0-rc2~11 X-Git-Url: https://git.lttng.org./?a=commitdiff_plain;h=9837fedce98e9cf83b1ffc0ec8ecd90d7c070c07;p=lttng-modules.git Fix: out of memory error handling CPU hotplug handles teardown on failure to complete adding an instance of CPU hotplug. Trying to remove after a failed "add" on that instance triggers a NULL pointer dereference OOPS. Fixes: #1167 Signed-off-by: Mathieu Desnoyers --- diff --git a/lib/ringbuffer/ring_buffer_backend.c b/lib/ringbuffer/ring_buffer_backend.c index 54c62a99..9d199e51 100644 --- a/lib/ringbuffer/ring_buffer_backend.c +++ b/lib/ringbuffer/ring_buffer_backend.c @@ -455,9 +455,11 @@ int channel_backend_init(struct channel_backend *chanb, free_bufs: if (config->alloc == RING_BUFFER_ALLOC_PER_CPU) { #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)) - ret = cpuhp_state_remove_instance(lttng_rb_hp_prepare, - &chanb->cpuhp_prepare.node); - WARN_ON(ret); + /* + * Teardown of lttng_rb_hp_prepare instance + * on "add" error is handled within cpu hotplug, + * no teardown to do from the caller. + */ #else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(4,10,0)) */ #ifdef CONFIG_HOTPLUG_CPU put_online_cpus();