From: Mathieu Desnoyers Date: Fri, 7 Sep 2018 21:55:32 +0000 (-0400) Subject: Fix: out of memory error handling X-Git-Tag: v2.10.8~9 X-Git-Url: http://git.liburcu.org/?p=lttng-modules.git;a=commitdiff_plain;h=fbbb0005efb47a518b8cecbaad5556c4f526074f 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 3efa1d12..7394c860 100644 --- a/lib/ringbuffer/ring_buffer_backend.c +++ b/lib/ringbuffer/ring_buffer_backend.c @@ -468,9 +468,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();