summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2015-03-30 09:52:17 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2015-04-01 09:15:28 +0200
commit4ccf797155d9be95129c5bc51c8e73faead6bcfd (patch)
tree3b6bb497ce3fa120a4ac4f1d265f9e163e93ce50
parentftpd: Fairplay (diff)
downloadrtems-libbsd-4ccf797155d9be95129c5bc51c8e73faead6bcfd.tar.bz2
Fix maxid and maxcpus sysctls
This prevents an infinte loop in netstat -m on SMP configurations.
-rw-r--r--rtemsbsd/rtems/rtems-bsd-init.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/rtemsbsd/rtems/rtems-bsd-init.c b/rtemsbsd/rtems/rtems-bsd-init.c
index 43c19529..f7fcd270 100644
--- a/rtemsbsd/rtems/rtems-bsd-init.c
+++ b/rtemsbsd/rtems/rtems-bsd-init.c
@@ -77,13 +77,13 @@ struct timeval boottime;
static SYSCTL_NODE(_kern, OID_AUTO, smp, CTLFLAG_RD|CTLFLAG_CAPRD, NULL,
"Kernel SMP");
-static int one = 1;
+static int maxid_maxcpus;
-SYSCTL_INT(_kern_smp, OID_AUTO, maxid, CTLFLAG_RD|CTLFLAG_CAPRD, &one, 0,
- "Max CPU ID.");
+SYSCTL_INT(_kern_smp, OID_AUTO, maxid, CTLFLAG_RD|CTLFLAG_CAPRD,
+ &maxid_maxcpus, 0, "Max CPU ID.");
-SYSCTL_INT(_kern_smp, OID_AUTO, maxcpus, CTLFLAG_RD|CTLFLAG_CAPRD, &one,
- 0, "Max number of CPUs that the system was compiled for.");
+SYSCTL_INT(_kern_smp, OID_AUTO, maxcpus, CTLFLAG_RD|CTLFLAG_CAPRD,
+ &maxid_maxcpus, 0, "Max number of CPUs that the system was compiled for.");
rtems_status_code
rtems_bsd_initialize(void)
@@ -94,6 +94,7 @@ rtems_bsd_initialize(void)
hz = (int) rtems_clock_get_ticks_per_second();
tick = 1000000 / hz;
maxusers = 1;
+ maxid_maxcpus = (int) rtems_get_processor_count();
gettimeofday(&boottime, NULL);
timeval2bintime(&boottime, &boottimebin);