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...
Hans Petter Selasky
hps at selasky.org
Tue Oct 21 20:44:54 UTC 2014
On 10/21/14 18:16, Konstantin Belousov wrote:
> 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);
> }
>
>
It think it is better to have it UAUTO, so that the macro will choose
32-bit or 64-bit.
Sorry for the breakage. Thought that universe had passed. Will fix it
shortly.
--HPS
More information about the svn-src-all
mailing list