svn commit: r273377 - in head: share/man/man9 sys/amd64/amd64 sys/arm/arm sys/cam/scsi sys/cddl/contrib/opensolaris/uts/common/fs/zfs sys/cddl/dev/dtrace sys/compat/ndis sys/dev/acpi_support sys/de...
Konstantin Belousov
kostikbel at gmail.com
Tue Oct 21 16:16:09 UTC 2014
On Tue, Oct 21, 2014 at 07:31:22AM +0000, Hans Petter Selasky wrote:
> Author: hselasky
> Date: Tue Oct 21 07:31:21 2014
> New Revision: 273377
> URL: https://svnweb.freebsd.org/changeset/base/273377
>
> Log:
> Fix multiple incorrect SYSCTL arguments in the kernel:
>
> - Wrong integer type was specified.
>
> - Wrong or missing "access" specifier. The "access" specifier
> sometimes included the SYSCTL type, which it should not, except for
> procedural SYSCTL nodes.
>
> - Logical OR where binary OR was expected.
>
> - Properly assert the "access" argument passed to all SYSCTL macros,
> using the CTASSERT macro. This applies to both static- and dynamically
> created SYSCTLs.
>
> - Properly assert the the data type for both static and dynamic
> SYSCTLs. In the case of static SYSCTLs we only assert that the data
> pointed to by the SYSCTL data pointer has the correct size, hence
> there is no easy way to assert types in the C language outside a
> C-function.
>
> - Rewrote some code which doesn't pass a constant "access" specifier
> when creating dynamic SYSCTL nodes, which is now a requirement.
>
> - Updated "EXAMPLES" section in SYSCTL manual page.
>
> MFC after: 3 days
> Sponsored by: Mellanox Technologies
>
> Modified:
> head/share/man/man9/Makefile
> head/share/man/man9/sysctl.9
> head/sys/amd64/amd64/fpu.c
> head/sys/arm/arm/busdma_machdep-v6.c
> head/sys/arm/arm/busdma_machdep.c
> head/sys/cam/scsi/scsi_sa.c
> head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_znode.c
> head/sys/cddl/dev/dtrace/dtrace_sysctl.c
> head/sys/compat/ndis/kern_ndis.c
> head/sys/dev/acpi_support/acpi_asus.c
> head/sys/dev/acpi_support/acpi_asus_wmi.c
> head/sys/dev/acpi_support/acpi_hp.c
> head/sys/dev/acpi_support/acpi_ibm.c
> head/sys/dev/acpi_support/acpi_rapidstart.c
> head/sys/dev/acpi_support/acpi_sony.c
> head/sys/dev/bxe/bxe.c
> head/sys/dev/cxgb/cxgb_sge.c
> head/sys/dev/cxgbe/t4_main.c
> head/sys/dev/e1000/if_em.c
> head/sys/dev/e1000/if_igb.c
> head/sys/dev/e1000/if_lem.c
> head/sys/dev/hatm/if_hatm.c
> head/sys/dev/ixgbe/ixgbe.c
> head/sys/dev/ixgbe/ixv.c
> head/sys/dev/ixl/if_ixl.c
> head/sys/dev/mpr/mpr.c
> head/sys/dev/mps/mps.c
> head/sys/dev/mrsas/mrsas.c
> head/sys/dev/mrsas/mrsas.h
> head/sys/dev/mxge/if_mxge.c
> head/sys/dev/oce/oce_sysctl.c
> head/sys/dev/qlxgb/qla_os.c
> head/sys/dev/qlxgbe/ql_os.c
> head/sys/dev/rt/if_rt.c
> head/sys/dev/sound/pci/hda/hdaa.c
> head/sys/dev/vxge/vxge.c
> head/sys/dev/xen/netfront/netfront.c
> head/sys/fs/devfs/devfs_devs.c
> head/sys/fs/fuse/fuse_main.c
> head/sys/fs/fuse/fuse_vfsops.c
> head/sys/geom/geom_kern.c
> head/sys/kern/kern_cpuset.c
> head/sys/kern/kern_descrip.c
> head/sys/kern/kern_mib.c
> head/sys/kern/kern_synch.c
> head/sys/kern/subr_devstat.c
> head/sys/kern/subr_kdb.c
> head/sys/kern/subr_uio.c
> head/sys/kern/vfs_cache.c
> head/sys/mips/mips/busdma_machdep.c
> head/sys/net80211/ieee80211_ht.c
> head/sys/net80211/ieee80211_hwmp.c
> head/sys/net80211/ieee80211_mesh.c
> head/sys/net80211/ieee80211_superg.c
> head/sys/netgraph/bluetooth/common/ng_bluetooth.c
> head/sys/netgraph/ng_base.c
> head/sys/netgraph/ng_socket.c
> head/sys/netinet/cc/cc_chd.c
> head/sys/netinet/tcp_timer.c
> head/sys/netipsec/ipsec.h
> head/sys/netpfil/pf/pf.c
> head/sys/ofed/drivers/net/mlx4/mlx4_en.h
> head/sys/powerpc/powermac/fcu.c
> head/sys/powerpc/powermac/smu.c
> head/sys/powerpc/powerpc/cpu.c
> head/sys/sys/sysctl.h
> head/sys/vm/memguard.c
> head/sys/vm/vm_kern.c
> head/sys/x86/x86/busdma_bounce.c
This seems to break at least PowerPC 64bit, or some bits were not
committed. I have to add the following change to compile GENERIC64
kernel, otherwise I get
cc1: warnings being treated as errors
/usr/home/kostik/work/build/bsd/DEV/src/sys/powerpc/powerpc/busdma_machdep.c: In function 'alloc_bounce_zone':
/usr/home/kostik/work/build/bsd/DEV/src/sys/powerpc/powerpc/busdma_machdep.c:1030: warning: initialization from incompatible pointer type
*** [busdma_machdep.o] Error code 1
OTOH, I did not verified that 32bit PowerPC kernel is compilable with
the change applied.
diff --git a/sys/powerpc/powerpc/busdma_machdep.c b/sys/powerpc/powerpc/busdma_machdep.c
index e35ecec..b58a91b 100644
--- a/sys/powerpc/powerpc/busdma_machdep.c
+++ b/sys/powerpc/powerpc/busdma_machdep.c
@@ -1027,9 +1027,9 @@ alloc_bounce_zone(bus_dma_tag_t dmat)
SYSCTL_ADD_STRING(busdma_sysctl_tree(bz),
SYSCTL_CHILDREN(busdma_sysctl_tree_top(bz)), OID_AUTO,
"lowaddr", CTLFLAG_RD, bz->lowaddrid, 0, "");
- SYSCTL_ADD_INT(busdma_sysctl_tree(bz),
+ SYSCTL_ADD_ULONG(busdma_sysctl_tree(bz),
SYSCTL_CHILDREN(busdma_sysctl_tree_top(bz)), OID_AUTO,
- "alignment", CTLFLAG_RD, &bz->alignment, 0, "");
+ "alignment", CTLFLAG_RD, &bz->alignment, "");
return (0);
}
More information about the svn-src-all
mailing list