Author: dchagin
Date: Sun May 24 16:14:41 2015
New Revision: 283427
URL: https://svnweb.freebsd.org/changeset/base/283427

Log:
  Where possible we will use M_LINUX malloc(9) type.
  Move M_FUTEX defines to the linux_common.ko.
  
  Differential Revision:        https://reviews.freebsd.org/D1077
  Reviewed by:  emaste

Modified:
  head/sys/compat/linux/linux_emul.c
  head/sys/compat/linux/linux_file.c
  head/sys/compat/linux/linux_futex.c
  head/sys/compat/linux/linux_getcwd.c
  head/sys/compat/linux/linux_misc.c
  head/sys/compat/linux/linux_socket.c
  head/sys/compat/linux/linux_sysctl.c
  head/sys/compat/linux/linux_uid16.c
  head/sys/compat/linux/linux_util.c
  head/sys/compat/linux/linux_util.h

Modified: head/sys/compat/linux/linux_emul.c
==============================================================================
--- head/sys/compat/linux/linux_emul.c  Sun May 24 16:11:30 2015        
(r283426)
+++ head/sys/compat/linux/linux_emul.c  Sun May 24 16:14:41 2015        
(r283427)
@@ -98,7 +98,7 @@ linux_proc_init(struct thread *td, struc
 
                        em->em_tid = newtd->td_proc->p_pid;
 
-                       pem = malloc(sizeof(*pem), M_TEMP, M_WAITOK | M_ZERO);
+                       pem = malloc(sizeof(*pem), M_LINUX, M_WAITOK | M_ZERO);
                        sx_init(&pem->pem_sx, "lpemlk");
                        newtd->td_proc->p_emuldata = pem;
                }
@@ -134,7 +134,7 @@ linux_proc_exit(void *arg __unused, stru
        p->p_emuldata = NULL;
 
        sx_destroy(&pem->pem_sx);
-       free(pem, M_TEMP);
+       free(pem, M_LINUX);
 }
 
 int 
@@ -181,7 +181,7 @@ linux_common_execve(struct thread *td, s
                PROC_UNLOCK(p);
 
                free(em, M_TEMP);
-               free(pem, M_TEMP);
+               free(pem, M_LINUX);
        }
        return (0);
 }

Modified: head/sys/compat/linux/linux_file.c
==============================================================================
--- head/sys/compat/linux/linux_file.c  Sun May 24 16:11:30 2015        
(r283426)
+++ head/sys/compat/linux/linux_file.c  Sun May 24 16:14:41 2015        
(r283427)
@@ -369,8 +369,8 @@ getdents_common(struct thread *td, struc
 
        buflen = max(LINUX_DIRBLKSIZ, nbytes);
        buflen = min(buflen, MAXBSIZE);
-       buf = malloc(buflen, M_TEMP, M_WAITOK);
-       lbuf = malloc(LINUX_MAXRECLEN, M_TEMP, M_WAITOK | M_ZERO);
+       buf = malloc(buflen, M_LINUX, M_WAITOK);
+       lbuf = malloc(LINUX_MAXRECLEN, M_LINUX, M_WAITOK | M_ZERO);
        vn_lock(vp, LK_SHARED | LK_RETRY);
 
        aiov.iov_base = buf;
@@ -521,8 +521,8 @@ out:
        VOP_UNLOCK(vp, 0);
        foffset_unlock(fp, off, 0);
        fdrop(fp, td);
-       free(buf, M_TEMP);
-       free(lbuf, M_TEMP);
+       free(buf, M_LINUX);
+       free(lbuf, M_LINUX);
        return (error);
 }
 

Modified: head/sys/compat/linux/linux_futex.c
==============================================================================
--- head/sys/compat/linux/linux_futex.c Sun May 24 16:11:30 2015        
(r283426)
+++ head/sys/compat/linux/linux_futex.c Sun May 24 16:14:41 2015        
(r283427)
@@ -184,9 +184,6 @@ LIN_SDT_PROBE_DEFINE2(futex, release_fut
 LIN_SDT_PROBE_DEFINE1(futex, release_futexes, copyin_error, "int");
 LIN_SDT_PROBE_DEFINE0(futex, release_futexes, return);
 
-static MALLOC_DEFINE(M_FUTEX, "futex", "Linux futexes");
-static MALLOC_DEFINE(M_FUTEX_WP, "futex wp", "Linux futexes wp");
-
 struct futex;
 
 struct waiting_proc {

Modified: head/sys/compat/linux/linux_getcwd.c
==============================================================================
--- head/sys/compat/linux/linux_getcwd.c        Sun May 24 16:11:30 2015        
(r283426)
+++ head/sys/compat/linux/linux_getcwd.c        Sun May 24 16:14:41 2015        
(r283427)
@@ -74,7 +74,7 @@ linux_getcwd(struct thread *td, struct l
        if (args->bufsize < 2)
                return (ERANGE);
 
-       path = malloc(LINUX_PATH_MAX, M_TEMP, M_WAITOK);
+       path = malloc(LINUX_PATH_MAX, M_LINUX, M_WAITOK);
 
        error = kern___getcwd(td, path, UIO_SYSSPACE, args->bufsize,
            LINUX_PATH_MAX);
@@ -85,6 +85,6 @@ linux_getcwd(struct thread *td, struct l
                        td->td_retval[0] = lenused;
        }
 
-       free(path, M_TEMP);
+       free(path, M_LINUX);
        return (error);
 }

Modified: head/sys/compat/linux/linux_misc.c
==============================================================================
--- head/sys/compat/linux/linux_misc.c  Sun May 24 16:11:30 2015        
(r283426)
+++ head/sys/compat/linux/linux_misc.c  Sun May 24 16:14:41 2015        
(r283427)
@@ -1206,7 +1206,7 @@ linux_setgroups(struct thread *td, struc
        ngrp = args->gidsetsize;
        if (ngrp < 0 || ngrp >= ngroups_max + 1)
                return (EINVAL);
-       linux_gidset = malloc(ngrp * sizeof(*linux_gidset), M_TEMP, M_WAITOK);
+       linux_gidset = malloc(ngrp * sizeof(*linux_gidset), M_LINUX, M_WAITOK);
        error = copyin(args->grouplist, linux_gidset, ngrp * sizeof(l_gid_t));
        if (error)
                goto out;
@@ -1245,7 +1245,7 @@ linux_setgroups(struct thread *td, struc
        crfree(oldcred);
        error = 0;
 out:
-       free(linux_gidset, M_TEMP);
+       free(linux_gidset, M_LINUX);
        return (error);
 }
 
@@ -1277,14 +1277,14 @@ linux_getgroups(struct thread *td, struc
 
        ngrp = 0;
        linux_gidset = malloc(bsd_gidsetsz * sizeof(*linux_gidset),
-           M_TEMP, M_WAITOK);
+           M_LINUX, M_WAITOK);
        while (ngrp < bsd_gidsetsz) {
                linux_gidset[ngrp] = bsd_gidset[ngrp + 1];
                ngrp++;
        }
 
        error = copyout(linux_gidset, args->grouplist, ngrp * sizeof(l_gid_t));
-       free(linux_gidset, M_TEMP);
+       free(linux_gidset, M_LINUX);
        if (error)
                return (error);
 

Modified: head/sys/compat/linux/linux_socket.c
==============================================================================
--- head/sys/compat/linux/linux_socket.c        Sun May 24 16:11:30 2015        
(r283426)
+++ head/sys/compat/linux/linux_socket.c        Sun May 24 16:14:41 2015        
(r283427)
@@ -609,7 +609,7 @@ linux_sendto_hdrincl(struct thread *td, 
            linux_args->len > IP_MAXPACKET)
                return (EINVAL);
 
-       packet = (struct ip *)malloc(linux_args->len, M_TEMP, M_WAITOK);
+       packet = (struct ip *)malloc(linux_args->len, M_LINUX, M_WAITOK);
 
        /* Make kernel copy of the packet to be sent */
        if ((error = copyin(PTRIN(linux_args->msg), packet,
@@ -632,7 +632,7 @@ linux_sendto_hdrincl(struct thread *td, 
        error = linux_sendit(td, linux_args->s, &msg, linux_args->flags,
            NULL, UIO_SYSSPACE);
 goout:
-       free(packet, M_TEMP);
+       free(packet, M_LINUX);
        return (error);
 }
 
@@ -1119,7 +1119,7 @@ linux_sendmsg(struct thread *td, struct 
                free(sa, M_SONAME);
 
                error = ENOBUFS;
-               cmsg = malloc(CMSG_HDRSZ, M_TEMP, M_WAITOK | M_ZERO);
+               cmsg = malloc(CMSG_HDRSZ, M_LINUX, M_WAITOK | M_ZERO);
                control = m_get(M_WAITOK, MT_CONTROL);
                if (control == NULL)
                        goto bad;
@@ -1197,7 +1197,7 @@ linux_sendmsg(struct thread *td, struct 
 bad:
        free(iov, M_IOV);
        if (cmsg)
-               free(cmsg, M_TEMP);
+               free(cmsg, M_LINUX);
        return (error);
 }
 
@@ -1270,7 +1270,7 @@ linux_recvmsg(struct thread *td, struct 
        outlen = 0;
 
        if (control) {
-               linux_cmsg = malloc(L_CMSG_HDRSZ, M_TEMP, M_WAITOK | M_ZERO);
+               linux_cmsg = malloc(L_CMSG_HDRSZ, M_LINUX, M_WAITOK | M_ZERO);
 
                msg.msg_control = mtod(control, struct cmsghdr *);
                msg.msg_controllen = control->m_len;
@@ -1363,7 +1363,7 @@ out:
 bad:
        free(iov, M_IOV);
        m_freem(control);
-       free(linux_cmsg, M_TEMP);
+       free(linux_cmsg, M_LINUX);
 
        return (error);
 }

Modified: head/sys/compat/linux/linux_sysctl.c
==============================================================================
--- head/sys/compat/linux/linux_sysctl.c        Sun May 24 16:11:30 2015        
(r283426)
+++ head/sys/compat/linux/linux_sysctl.c        Sun May 24 16:14:41 2015        
(r283427)
@@ -140,12 +140,12 @@ linux_sysctl(struct thread *td, struct l
                return (ENOTDIR);
        }
 
-       mib = malloc(la.nlen * sizeof(l_int), M_TEMP, M_WAITOK);
+       mib = malloc(la.nlen * sizeof(l_int), M_LINUX, M_WAITOK);
        error = copyin(PTRIN(la.name), mib, la.nlen * sizeof(l_int));
        if (error) {
                LIN_SDT_PROBE1(sysctl, linux_sysctl, copyin_error, error);
                LIN_SDT_PROBE1(sysctl, linux_sysctl, return, error);
-               free(mib, M_TEMP);
+               free(mib, M_LINUX);
                return (error);
        }
 
@@ -157,7 +157,7 @@ linux_sysctl(struct thread *td, struct l
                switch (mib[1]) {
                case LINUX_KERN_VERSION:
                        error = handle_string(&la, version);
-                       free(mib, M_TEMP);
+                       free(mib, M_LINUX);
                        LIN_SDT_PROBE1(sysctl, linux_sysctl, return, error);
                        return (error);
                default:
@@ -186,7 +186,7 @@ linux_sysctl(struct thread *td, struct l
                sbuf_delete(sb);
        }
 
-       free(mib, M_TEMP);
+       free(mib, M_LINUX);
 
        LIN_SDT_PROBE1(sysctl, linux_sysctl, return, ENOTDIR);
        return (ENOTDIR);

Modified: head/sys/compat/linux/linux_uid16.c
==============================================================================
--- head/sys/compat/linux/linux_uid16.c Sun May 24 16:11:30 2015        
(r283426)
+++ head/sys/compat/linux/linux_uid16.c Sun May 24 16:14:41 2015        
(r283427)
@@ -171,12 +171,12 @@ linux_setgroups16(struct thread *td, str
                LIN_SDT_PROBE1(uid16, linux_setgroups16, return, EINVAL);
                return (EINVAL);
        }
-       linux_gidset = malloc(ngrp * sizeof(*linux_gidset), M_TEMP, M_WAITOK);
+       linux_gidset = malloc(ngrp * sizeof(*linux_gidset), M_LINUX, M_WAITOK);
        error = copyin(args->gidset, linux_gidset, ngrp * sizeof(l_gid16_t));
        if (error) {
                LIN_SDT_PROBE1(uid16, linux_setgroups16, copyin_error, error);
                LIN_SDT_PROBE1(uid16, linux_setgroups16, return, error);
-               free(linux_gidset, M_TEMP);
+               free(linux_gidset, M_LINUX);
                return (error);
        }
        newcred = crget();
@@ -218,7 +218,7 @@ linux_setgroups16(struct thread *td, str
        crfree(oldcred);
        error = 0;
 out:
-       free(linux_gidset, M_TEMP);
+       free(linux_gidset, M_LINUX);
 
        LIN_SDT_PROBE1(uid16, linux_setgroups16, return, error);
        return (error);
@@ -259,14 +259,14 @@ linux_getgroups16(struct thread *td, str
 
        ngrp = 0;
        linux_gidset = malloc(bsd_gidsetsz * sizeof(*linux_gidset),
-           M_TEMP, M_WAITOK);
+           M_LINUX, M_WAITOK);
        while (ngrp < bsd_gidsetsz) {
                linux_gidset[ngrp] = bsd_gidset[ngrp + 1];
                ngrp++;
        }
 
        error = copyout(linux_gidset, args->gidset, ngrp * sizeof(l_gid16_t));
-       free(linux_gidset, M_TEMP);
+       free(linux_gidset, M_LINUX);
        if (error) {
                LIN_SDT_PROBE1(uid16, linux_getgroups16, copyout_error, error);
                LIN_SDT_PROBE1(uid16, linux_getgroups16, return, error);

Modified: head/sys/compat/linux/linux_util.c
==============================================================================
--- head/sys/compat/linux/linux_util.c  Sun May 24 16:11:30 2015        
(r283426)
+++ head/sys/compat/linux/linux_util.c  Sun May 24 16:14:41 2015        
(r283427)
@@ -54,6 +54,8 @@ __FBSDID("$FreeBSD$");
 #include <compat/linux/linux_util.h>
 
 MALLOC_DEFINE(M_LINUX, "linux", "Linux mode structures");
+MALLOC_DEFINE(M_FUTEX, "futex", "Linux futexes");
+MALLOC_DEFINE(M_FUTEX_WP, "futex wp", "Linux futex waiting proc");
 
 const char      linux_emul_path[] = "/compat/linux";
 

Modified: head/sys/compat/linux/linux_util.h
==============================================================================
--- head/sys/compat/linux/linux_util.h  Sun May 24 16:11:30 2015        
(r283426)
+++ head/sys/compat/linux/linux_util.h  Sun May 24 16:14:41 2015        
(r283427)
@@ -45,6 +45,8 @@
 #include <sys/uio.h>
 
 MALLOC_DECLARE(M_LINUX);
+MALLOC_DECLARE(M_FUTEX);
+MALLOC_DECLARE(M_FUTEX_WP);
 
 extern const char linux_emul_path[];
 
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"

Reply via email to