tech-kern archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: sysctl_createv: sysctl_create(no_sa_support) returned 22
On 22.07.2011 21:30, Peter Tworek wrote:
> Hi,
Hi,
> Some time ago I've noticed that my current kernel prints this message
> when booting. As far as I understand no_sa_support syscall is only
> required for NetBSD 4.0 binary compatibility, which I've disabled. I've
> made a small patch which takes care of this message by putting
> sysctl_createv call in COMPAT_40 ifdefs? Can this patch be included in
> current sources?
IMHO, the EINVAL (22) is due to KERN_SA being undefined. The sysctl(7)
value is always hardcoded to 1 here but without the CTLFLAG_IMMEDIATE
flag set (and without any pointer to a valid storage address); this
looks rather invalid to me.
Could you give a try to the attached patch instead, please? I made the
KERN_SA macro reverse so the thing looks more evident.
As a side note: we try to avoid putting COMPAT_* macros everywhere in
kernel code and prefer to keep these in a small number of files; this
simplifies modularity as it avoids a complete kernel recompilation to
add/remove support for compat modules.
Thanks for reporting!
--
Jean-Yves Migeon
jeanyves.migeon%free.fr@localhost
Index: sys/kern/init_sysctl.c
===================================================================
RCS file: /cvsroot/src/sys/kern/init_sysctl.c,v
retrieving revision 1.181
diff -u -p -r1.181 init_sysctl.c
--- sys/kern/init_sysctl.c 24 May 2011 16:39:56 -0000 1.181
+++ sys/kern/init_sysctl.c 22 Jul 2011 23:46:27 -0000
@@ -735,15 +735,18 @@ SYSCTL_SETUP(sysctl_kern_setup, "sysctl
0,
CTL_CREATE, CTL_EOL);
sysctl_createv(clog, 0, NULL, NULL,
+#ifndef KERN_SA
+ CTLFLAG_IMMEDIATE|
+#endif
CTLFLAG_PERMANENT|CTLFLAG_READWRITE,
CTLTYPE_INT, "no_sa_support",
SYSCTL_DESCR("0 if the kernel supports SA, otherwise "
"it doesn't"),
NULL,
-#ifdef KERN_SA
- 0, &sa_system_disabled,
-#else
+#ifndef KERN_SA
1, NULL,
+#else
+ 0, &sa_system_disabled,
#endif
0,
CTL_KERN, CTL_CREATE, CTL_EOL);
Home |
Main Index |
Thread Index |
Old Index