svn commit: r254799 - in head/sys: dev/cas dev/hatm dev/iscsi_initiator dev/lge dev/mwl kern sys
Glen Barber
gjb at FreeBSD.org
Sun Aug 25 06:30:58 UTC 2013
On Sat, Aug 24, 2013 at 04:57:44PM +0000, Andre Oppermann wrote:
> Author: andre
> Date: Sat Aug 24 16:57:44 2013
> New Revision: 254799
> URL: http://svnweb.freebsd.org/changeset/base/254799
>
> Log:
> Add an mbuf pointer parameter to (*ext_free) to give the external
> free function access to the mbuf the external memory was attached
> to.
>
> Mechanically adjust all users to include the mbuf parameter.
>
> This fixes a long standing annoyance for external free functions.
> Before one had to sacrifice one of the argument pointers for this.
>
> Modified: head/sys/kern/uipc_mbuf.c
> ==============================================================================
> --- head/sys/kern/uipc_mbuf.c Sat Aug 24 16:55:53 2013 (r254798)
> +++ head/sys/kern/uipc_mbuf.c Sat Aug 24 16:57:44 2013 (r254799)
> @@ -247,8 +247,8 @@ m_freem(struct mbuf *mb)
> */
> int
> m_extadd(struct mbuf *mb, caddr_t buf, u_int size,
> - void (*freef)(void *, void *), void *arg1, void *arg2, int flags, int type,
> - int wait)
> + void (*freef)(struct mbuf *, void *, void *), void *arg1, void *arg2,
> + int flags, int type, int wait)
> {
> KASSERT(type != EXT_CLUSTER, ("%s: EXT_CLUSTER not allowed", __func__));
>
I think this breaks head/.
cc -c -O2 -pipe -fno-strict-aliasing -std=c99 -Wall -Wredundant-decls
-Wnested-externs -Wstrict-prototypes -Wmissing-prototypes
-Wpointer-arith -Winline -Wcast-qual -Wundef -Wno-pointer-sign
-fformat-extensions -Wmissing-include-dirs -fdiagnostics-show-option
-Wno-error-tautological-compare -Wno-error-empty-body
-Wno-error-parentheses-equality -nostdinc -I. -I/src/sys
-I/src/sys/contrib/altq -I/src/sys/contrib/libfdt -D_KERNEL
-DHAVE_KERNEL_OPTION_HEADERS -include opt_global.h -DGPROF -DGPROF4
-DGUPROF -fno-builtin -mno-aes -mno-avx -mno-mmx -mno-sse -msoft-float
-ffreestanding -fstack-protector -Werror -pg /src/sys/kern/uipc_cow.c
/src/sys/kern/uipc_cow.c:164:2: error: incompatible pointer types
passing 'void (void *, void *)' to parameter of type 'void (*)(struct
mbuf *, void *, void *)' [-Werror,-Wincompatible-pointer-types]
MEXTADD(m0, sf_buf_kva(sf), PAGE_SIZE, socow_iodone,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/src/sys/sys/mbuf.h:760:50: note: expanded from macro 'MEXTADD'
(void )m_extadd((m), (caddr_t)(buf), (size), (free), (arg1),
(arg2),\
^~~~~~
/src/sys/sys/mbuf.h:898:14: note: passing argument to parameter here
void (*)(struct mbuf *, void *, void *), void *,
void *,
^
1 error generated.
*** Error code 1
Stop.
bmake[1]: stopped in /obj/i386.i386/src/sys/LINT
*** Error code 1
http://tinderbox.freebsd.org/tinderbox-head-build-HEAD-i386-i386.full
Glen
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 488 bytes
Desc: not available
URL: <http://lists.freebsd.org/pipermail/svn-src-all/attachments/20130825/26c9bd4b/attachment.sig>
More information about the svn-src-all
mailing list