Fix: unregister cpu hotplug notifier on buffer alloc error
[deliverable/lttng-modules.git] / lib / ringbuffer / ring_buffer_backend.c
index f34c7ccc4ce7e6096171ba5cd55877a0e39fa908..c7f2fe9d7b6226b33738d2fbabb379b42999ef93 100644 (file)
@@ -422,6 +422,7 @@ free_bufs:
                }
 #ifdef CONFIG_HOTPLUG_CPU
                put_online_cpus();
+               unregister_hotcpu_notifier(&chanb->cpu_hp_notifier);
 #endif
                free_percpu(chanb->buf);
        } else
@@ -693,8 +694,7 @@ void _lib_ring_buffer_copy_from_user_inatomic(struct lib_ring_buffer_backend *bu
                                                        + (offset & ~PAGE_MASK),
                                                        src, pagecpy) != 0;
                if (ret > 0) {
-                       offset += (pagecpy - ret);
-                       len -= (pagecpy - ret);
+                       /* Copy failed. */
                        _lib_ring_buffer_memset(bufb, offset, 0, len, 0);
                        break; /* stop copy */
                }
This page took 0.025108 seconds and 5 git commands to generate.