make libustcomm into a static lib
[ust.git] / libust / buffers.c
index c487cbfdb57f978021c01cdd04ba2a63f8dd64c4..776823ea2789e718c1a82ea11de93f8bcb7d215a 100644 (file)
@@ -27,6 +27,7 @@
 #include <fcntl.h>
 #include <ust/kernelcompat.h>
 #include <kcompat/kref.h>
+#include <stdlib.h>
 #include "buffers.h"
 #include "channels.h"
 #include "tracer.h"
@@ -48,26 +49,24 @@ static int get_n_cpus(void)
        int result;
        static int n_cpus = 0;
 
-       if(n_cpus) {
-               return n_cpus;
-       }
+       if(!n_cpus) {
+               /* On Linux, when some processors are offline
+                * _SC_NPROCESSORS_CONF counts the offline
+                * processors, whereas _SC_NPROCESSORS_ONLN
+                * does not. If we used _SC_NPROCESSORS_ONLN,
+                * getcpu() could return a value greater than
+                * this sysconf, in which case the arrays
+                * indexed by processor would overflow.
+                */
+               result = sysconf(_SC_NPROCESSORS_CONF);
+               if(result == -1) {
+                       return -1;
+               }
 
-       /* On Linux, when some processors are offline
-        * _SC_NPROCESSORS_CONF counts the offline
-        * processors, whereas _SC_NPROCESSORS_ONLN
-        * does not. If we used _SC_NPROCESSORS_ONLN,
-        * getcpu() could return a value greater than
-        * this sysconf, in which case the arrays
-        * indexed by processor would overflow.
-        */
-       result = sysconf(_SC_NPROCESSORS_CONF);
-       if(result == -1) {
-               return -1;
+               n_cpus = result;
        }
 
-       n_cpus = result;
-
-       return result;
+       return n_cpus;
 }
 
 /* _ust_buffers_write()
@@ -751,7 +750,7 @@ static void ust_buffers_destroy_buffer(struct ust_channel *ltt_chan, int cpu)
                ltt_release_transport);
        ltt_relay_print_buffer_errors(ltt_chan, cpu);
 //ust//        free(ltt_buf->commit_seq);
-       kfree(ltt_buf->commit_count);
+       free(ltt_buf->commit_count);
        ltt_buf->commit_count = NULL;
        kref_put(&ltt_chan->kref, ltt_relay_release_channel);
        kref_put(&trace->kref, ltt_release_trace);
This page took 0.047309 seconds and 4 git commands to generate.