On 09/09/2017 01:01 AM, Alexei Starovoitov wrote:
On Fri, Sep 08, 2017 at 01:19:23PM +0200, Thomas Meyer wrote:
The current implementation fails to work on uniprocessor systems.
Fix the parser to also handle the uniprocessor case.

Signed-off-by: Thomas Meyer <tho...@m3y3r.de>

Thanks for the fix. lgtm
Acked-by: Alexei Starovoitov <a...@kernel.org>

Looks good from here as well:

Acked-by: Daniel Borkmann <dan...@iogearbox.net>

This time it's ok to go via selftest tree, but next time please use net-next/net
to avoid conflicts.

+1

Thanks

---
  tools/testing/selftests/bpf/bpf_util.h | 17 +++++++++--------
  1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/tools/testing/selftests/bpf/bpf_util.h 
b/tools/testing/selftests/bpf/bpf_util.h
index 20ecbaa0d85d..6c53a8906eff 100644
--- a/tools/testing/selftests/bpf/bpf_util.h
+++ b/tools/testing/selftests/bpf/bpf_util.h
@@ -12,6 +12,7 @@ static inline unsigned int bpf_num_possible_cpus(void)
        unsigned int start, end, possible_cpus = 0;
        char buff[128];
        FILE *fp;
+       int n;

        fp = fopen(fcpu, "r");
        if (!fp) {
@@ -20,17 +21,17 @@ static inline unsigned int bpf_num_possible_cpus(void)
        }

        while (fgets(buff, sizeof(buff), fp)) {
-               if (sscanf(buff, "%u-%u", &start, &end) == 2) {
-                       possible_cpus = start == 0 ? end + 1 : 0;
-                       break;
+               n = sscanf(buff, "%u-%u", &start, &end);
+               if (n == 0) {
+                       printf("Failed to retrieve # possible CPUs!\n");
+                       exit(1);
+               } else if (n == 1) {
+                       end = start;
                }
+               possible_cpus = start == 0 ? end + 1 : 0;
+               break;
        }
-
        fclose(fp);
-       if (!possible_cpus) {
-               printf("Failed to retrieve # possible CPUs!\n");
-               exit(1);
-       }

        return possible_cpus;
  }
--
2.11.0


Reply via email to