Re: svn commit: r363700 - in head/sys: arm/ti arm/ti/am335x arm/ti/clk arm/ti/cpsw arm/ti/omap4 arm/ti/usb dev/uart modules
thanks for prompt response. I confirm the issue is fixed. On 8/1/20, Michal Meloun wrote: > Oups, next module dependency on autogenerated header... > Fixed in r363758. > > Thanks for report > Michal > > > On 01.08.2020 6:39, Mateusz Guzik wrote: >> This breaks tinderbox for several arm kernels. >> >> On 7/30/20, Michal Meloun wrote: >>> Author: mmel >>> Date: Thu Jul 30 14:45:05 2020 >>> New Revision: 363700 >>> URL: https://svnweb.freebsd.org/changeset/base/363700 >>> >>> Log: >>> Move Ti AM335x to dev/extres/clk framework. >>> >>> Re-implement clocks for these SoC by using now standard extres/clk >>> framework. >>> This is necessary for future expansion of these. The new >>> implementation >>> is (due to the size of the patch) only the initial (minimum) version. >>> It will be updated/expanded with a subsequent set of particular >>> patches. >>> >>> This patch is also not tested on OMAP4 based boards (BeagleBone), >>> so all possible issues should be (and will be) fixed by ASAP once >>> identified. >>> >>> Submited by: Oskar Holmlund (oskar.holml...@ohdata.se) >>> Differential Revision: https://reviews.freebsd.org/D25118 >>> >>> Added: >>> head/sys/arm/ti/am335x/am3359_cppi41.c (contents, props changed) >>> head/sys/arm/ti/am335x/am335x_usb_phy.c (contents, props changed) >>> head/sys/arm/ti/clk/ >>> head/sys/arm/ti/clk/clock_common.c (contents, props changed) >>> head/sys/arm/ti/clk/clock_common.h (contents, props changed) >>> head/sys/arm/ti/clk/ti_clk_clkctrl.c (contents, props changed) >>> head/sys/arm/ti/clk/ti_clk_clkctrl.h (contents, props changed) >>> head/sys/arm/ti/clk/ti_clk_dpll.c (contents, props changed) >>> head/sys/arm/ti/clk/ti_clk_dpll.h (contents, props changed) >>> head/sys/arm/ti/clk/ti_clkctrl.c (contents, props changed) >>> head/sys/arm/ti/clk/ti_divider_clock.c (contents, props changed) >>> head/sys/arm/ti/clk/ti_dpll_clock.c (contents, props changed) >>> head/sys/arm/ti/clk/ti_gate_clock.c (contents, props changed) >>> head/sys/arm/ti/clk/ti_mux_clock.c (contents, props changed) >>> head/sys/arm/ti/ti_omap4_cm.c (contents, props changed) >>> head/sys/arm/ti/ti_omap4_cm.h (contents, props changed) >>> head/sys/arm/ti/ti_prm.c (contents, props changed) >>> head/sys/arm/ti/ti_prm.h (contents, props changed) >>> head/sys/arm/ti/ti_scm_syscon.c (contents, props changed) >>> head/sys/arm/ti/ti_sysc.h (contents, props changed) >>> Deleted: >>> head/sys/arm/ti/am335x/am335x_prcm.c >>> head/sys/arm/ti/am335x/am335x_usbss.c >>> head/sys/arm/ti/ti_hwmods.c >>> head/sys/arm/ti/ti_hwmods.h >>> Modified: >>> head/sys/arm/ti/am335x/am335x_dmtimer.c >>> head/sys/arm/ti/am335x/am335x_dmtpps.c >>> head/sys/arm/ti/am335x/am335x_dmtreg.h >>> head/sys/arm/ti/am335x/am335x_gpio.c >>> head/sys/arm/ti/am335x/am335x_lcd.c >>> head/sys/arm/ti/am335x/am335x_musb.c >>> head/sys/arm/ti/am335x/am335x_pwmss.c >>> head/sys/arm/ti/am335x/am335x_rtc.c >>> head/sys/arm/ti/am335x/am335x_scm.c >>> head/sys/arm/ti/am335x/files.am335x >>> head/sys/arm/ti/cpsw/if_cpsw.c >>> head/sys/arm/ti/files.ti >>> head/sys/arm/ti/omap4/files.omap4 >>> head/sys/arm/ti/ti_adc.c >>> head/sys/arm/ti/ti_edma3.c >>> head/sys/arm/ti/ti_gpio.c >>> head/sys/arm/ti/ti_i2c.c >>> head/sys/arm/ti/ti_mbox.c >>> head/sys/arm/ti/ti_pinmux.c >>> head/sys/arm/ti/ti_prcm.c >>> head/sys/arm/ti/ti_prcm.h >>> head/sys/arm/ti/ti_pruss.c >>> head/sys/arm/ti/ti_scm.c >>> head/sys/arm/ti/ti_sdhci.c >>> head/sys/arm/ti/ti_sdma.c >>> head/sys/arm/ti/ti_spi.c >>> head/sys/arm/ti/ti_sysc.c >>> head/sys/arm/ti/ti_wdt.c >>> head/sys/arm/ti/usb/omap_ehci.c >>> head/sys/arm/ti/usb/omap_host.c >>> head/sys/arm/ti/usb/omap_tll.c >>> head/sys/dev/uart/uart_dev_ti8250.c >>> head/sys/modules/Makefile >>> >>> Added: head/sys/arm/ti/am335x/am3359_cppi41.c >>> == >>> --- /dev/null 00:00:00 1970 (empty, because file is newly added) >>> +++ head/sys/arm/ti/am335x/am3359_cppi41.c Thu Jul 30 14:45:05 >>> 2020(r363700) >>> @@ -0,0 +1,192 @@ >>> +/*- >>> + * Copyright (c) 2019 Emmanuel Vadot >>> + * >>> + * Copyright (c) 2020 Oskar Holmlund >>> + * >>> + * Redistribution and use in source and binary forms, with or without >>> + * modification, are permitted provided that the following conditions >>> + * are met: >>> + * 1. Redistributions of source code must retain the above copyright >>> + *notice, this list of conditions and the following disclaimer. >>> + * 2. Redistributions in binary form must reproduce the above copyright >>> + *notice, this list of conditions and the following disclaimer in >>> the >>> + *documentation and/or other materials provided with the >>> distribution. >>> + * >>> + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR >>> + * IMPLIED
svn commit: r363767 - head/sys/kern
Author: mjg Date: Sat Aug 1 16:02:32 2020 New Revision: 363767 URL: https://svnweb.freebsd.org/changeset/base/363767 Log: cred: add more asserts for td_realucred == td_ucred Modified: head/sys/kern/kern_prot.c head/sys/kern/kern_thread.c Modified: head/sys/kern/kern_prot.c == --- head/sys/kern/kern_prot.c Sat Aug 1 14:58:43 2020(r363766) +++ head/sys/kern/kern_prot.c Sat Aug 1 16:02:32 2020(r363767) @@ -1881,7 +1881,8 @@ crunuse(struct thread *td) { struct ucred *cr, *crold; - cr = td->td_ucred; + MPASS(td->td_realucred == td->td_ucred); + cr = td->td_realucred; mtx_lock(>cr_mtx); cr->cr_ref += td->td_ucredref; td->td_ucredref = 0; @@ -1897,6 +1898,7 @@ crunuse(struct thread *td) crold = NULL; } mtx_unlock(>cr_mtx); + td->td_realucred = NULL; return (crold); } Modified: head/sys/kern/kern_thread.c == --- head/sys/kern/kern_thread.c Sat Aug 1 14:58:43 2020(r363766) +++ head/sys/kern/kern_thread.c Sat Aug 1 16:02:32 2020(r363767) @@ -543,6 +543,7 @@ thread_exit(void) (long)p->p_pid, td->td_name); SDT_PROBE0(proc, , , lwp__exit); KASSERT(TAILQ_EMPTY(>td_sigqueue.sq_list), ("signal pending")); + MPASS(td->td_realucred == td->td_ucred); /* * drop FPU & debug register state storage, or any other ___ svn-src-head@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r363759 - head/sys/dev/neta
Author: mw Date: Sat Aug 1 09:40:19 2020 New Revision: 363759 URL: https://svnweb.freebsd.org/changeset/base/363759 Log: Fix TX csum handling in if_mvneta The mvneta device requires MVNETA_TX_CMD_L4_CHECKSUM_NONE bit to be set in the tx descriptor is checksum not required. However, mvneta_tx_set_csumflag() is not setting this flag currently, causing the hardware to randomly corrupt IP header during transmission. This affects injected IPv4 packets that skips kernel IP stack processing (e.g. DHCP), as well as all IPv6 packets, since the driver currently does not offload csum for IPv6. The fix is to remove all the early return paths from mvneta_tx_set_csumflag() which do not set the MVNETA_TX_CMD_L4_CHECKSUM_NONE flag. PR: 248306 Submitted by: Mike Cui Reported by: Mike Cui Modified: head/sys/dev/neta/if_mvneta.c Modified: head/sys/dev/neta/if_mvneta.c == --- head/sys/dev/neta/if_mvneta.c Sat Aug 1 09:06:16 2020 (r363758) +++ head/sys/dev/neta/if_mvneta.c Sat Aug 1 09:40:19 2020 (r363759) @@ -2828,18 +2828,15 @@ mvneta_tx_set_csumflag(struct ifnet *ifp, csum_flags = ifp->if_hwassist & m->m_pkthdr.csum_flags; eh = mtod(m, struct ether_header *); - if (csum_flags == 0) - return; - switch (ntohs(eh->ether_type)) { case ETHERTYPE_IP: ipoff = ETHER_HDR_LEN; break; - case ETHERTYPE_IPV6: - return; case ETHERTYPE_VLAN: ipoff = ETHER_HDR_LEN + ETHER_VLAN_ENCAP_LEN; break; + default: + csum_flags = 0; } if (__predict_true(csum_flags & (CSUM_IP|CSUM_IP_TCP|CSUM_IP_UDP))) { ___ svn-src-head@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
Re: svn commit: r363700 - in head/sys: arm/ti arm/ti/am335x arm/ti/clk arm/ti/cpsw arm/ti/omap4 arm/ti/usb dev/uart modules
Oups, next module dependency on autogenerated header... Fixed in r363758. Thanks for report Michal On 01.08.2020 6:39, Mateusz Guzik wrote: > This breaks tinderbox for several arm kernels. > > On 7/30/20, Michal Meloun wrote: >> Author: mmel >> Date: Thu Jul 30 14:45:05 2020 >> New Revision: 363700 >> URL: https://svnweb.freebsd.org/changeset/base/363700 >> >> Log: >> Move Ti AM335x to dev/extres/clk framework. >> >> Re-implement clocks for these SoC by using now standard extres/clk >> framework. >> This is necessary for future expansion of these. The new implementation >> is (due to the size of the patch) only the initial (minimum) version. >> It will be updated/expanded with a subsequent set of particular patches. >> >> This patch is also not tested on OMAP4 based boards (BeagleBone), >> so all possible issues should be (and will be) fixed by ASAP once >> identified. >> >> Submited by: Oskar Holmlund (oskar.holml...@ohdata.se) >> Differential Revision: https://reviews.freebsd.org/D25118 >> >> Added: >> head/sys/arm/ti/am335x/am3359_cppi41.c (contents, props changed) >> head/sys/arm/ti/am335x/am335x_usb_phy.c (contents, props changed) >> head/sys/arm/ti/clk/ >> head/sys/arm/ti/clk/clock_common.c (contents, props changed) >> head/sys/arm/ti/clk/clock_common.h (contents, props changed) >> head/sys/arm/ti/clk/ti_clk_clkctrl.c (contents, props changed) >> head/sys/arm/ti/clk/ti_clk_clkctrl.h (contents, props changed) >> head/sys/arm/ti/clk/ti_clk_dpll.c (contents, props changed) >> head/sys/arm/ti/clk/ti_clk_dpll.h (contents, props changed) >> head/sys/arm/ti/clk/ti_clkctrl.c (contents, props changed) >> head/sys/arm/ti/clk/ti_divider_clock.c (contents, props changed) >> head/sys/arm/ti/clk/ti_dpll_clock.c (contents, props changed) >> head/sys/arm/ti/clk/ti_gate_clock.c (contents, props changed) >> head/sys/arm/ti/clk/ti_mux_clock.c (contents, props changed) >> head/sys/arm/ti/ti_omap4_cm.c (contents, props changed) >> head/sys/arm/ti/ti_omap4_cm.h (contents, props changed) >> head/sys/arm/ti/ti_prm.c (contents, props changed) >> head/sys/arm/ti/ti_prm.h (contents, props changed) >> head/sys/arm/ti/ti_scm_syscon.c (contents, props changed) >> head/sys/arm/ti/ti_sysc.h (contents, props changed) >> Deleted: >> head/sys/arm/ti/am335x/am335x_prcm.c >> head/sys/arm/ti/am335x/am335x_usbss.c >> head/sys/arm/ti/ti_hwmods.c >> head/sys/arm/ti/ti_hwmods.h >> Modified: >> head/sys/arm/ti/am335x/am335x_dmtimer.c >> head/sys/arm/ti/am335x/am335x_dmtpps.c >> head/sys/arm/ti/am335x/am335x_dmtreg.h >> head/sys/arm/ti/am335x/am335x_gpio.c >> head/sys/arm/ti/am335x/am335x_lcd.c >> head/sys/arm/ti/am335x/am335x_musb.c >> head/sys/arm/ti/am335x/am335x_pwmss.c >> head/sys/arm/ti/am335x/am335x_rtc.c >> head/sys/arm/ti/am335x/am335x_scm.c >> head/sys/arm/ti/am335x/files.am335x >> head/sys/arm/ti/cpsw/if_cpsw.c >> head/sys/arm/ti/files.ti >> head/sys/arm/ti/omap4/files.omap4 >> head/sys/arm/ti/ti_adc.c >> head/sys/arm/ti/ti_edma3.c >> head/sys/arm/ti/ti_gpio.c >> head/sys/arm/ti/ti_i2c.c >> head/sys/arm/ti/ti_mbox.c >> head/sys/arm/ti/ti_pinmux.c >> head/sys/arm/ti/ti_prcm.c >> head/sys/arm/ti/ti_prcm.h >> head/sys/arm/ti/ti_pruss.c >> head/sys/arm/ti/ti_scm.c >> head/sys/arm/ti/ti_sdhci.c >> head/sys/arm/ti/ti_sdma.c >> head/sys/arm/ti/ti_spi.c >> head/sys/arm/ti/ti_sysc.c >> head/sys/arm/ti/ti_wdt.c >> head/sys/arm/ti/usb/omap_ehci.c >> head/sys/arm/ti/usb/omap_host.c >> head/sys/arm/ti/usb/omap_tll.c >> head/sys/dev/uart/uart_dev_ti8250.c >> head/sys/modules/Makefile >> >> Added: head/sys/arm/ti/am335x/am3359_cppi41.c >> == >> --- /dev/null00:00:00 1970 (empty, because file is newly added) >> +++ head/sys/arm/ti/am335x/am3359_cppi41.c Thu Jul 30 14:45:05 >> 2020 (r363700) >> @@ -0,0 +1,192 @@ >> +/*- >> + * Copyright (c) 2019 Emmanuel Vadot >> + * >> + * Copyright (c) 2020 Oskar Holmlund >> + * >> + * Redistribution and use in source and binary forms, with or without >> + * modification, are permitted provided that the following conditions >> + * are met: >> + * 1. Redistributions of source code must retain the above copyright >> + *notice, this list of conditions and the following disclaimer. >> + * 2. Redistributions in binary form must reproduce the above copyright >> + *notice, this list of conditions and the following disclaimer in the >> + *documentation and/or other materials provided with the distribution. >> + * >> + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR >> + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED >> WARRANTIES >> + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. >> + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, >> + *
svn commit: r363758 - head/sys/modules/cpsw
Author: mmel Date: Sat Aug 1 09:06:16 2020 New Revision: 363758 URL: https://svnweb.freebsd.org/changeset/base/363758 Log: Add missing dependency for cpsw module. Reported by: mjg MFC with: r363700 Modified: head/sys/modules/cpsw/Makefile Modified: head/sys/modules/cpsw/Makefile == --- head/sys/modules/cpsw/Makefile Sat Aug 1 06:37:26 2020 (r363757) +++ head/sys/modules/cpsw/Makefile Sat Aug 1 09:06:16 2020 (r363758) @@ -3,6 +3,6 @@ .PATH: ${SRCTOP}/sys/arm/ti/cpsw KMOD= if_cpsw -SRCS= if_cpsw.c device_if.h bus_if.h ofw_bus_if.h miibus_if.h +SRCS= if_cpsw.c device_if.h bus_if.h ofw_bus_if.h miibus_if.h syscon_if.h .include ___ svn-src-head@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r363757 - head/sys/sys
Author: mjg Date: Sat Aug 1 06:37:26 2020 New Revision: 363757 URL: https://svnweb.freebsd.org/changeset/base/363757 Log: Bump __FreeBSD_version after making rights mandatory for NDINIT_ALL Modified: head/sys/sys/param.h Modified: head/sys/sys/param.h == --- head/sys/sys/param.hSat Aug 1 06:35:18 2020(r363756) +++ head/sys/sys/param.hSat Aug 1 06:37:26 2020(r363757) @@ -60,7 +60,7 @@ * in the range 5 to 9. */ #undef __FreeBSD_version -#define __FreeBSD_version 1300102 /* Master, propagated to newvers */ +#define __FreeBSD_version 1300103 /* Master, propagated to newvers */ /* * __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD, ___ svn-src-head@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r363756 - head/sys/kern
Author: mjg Date: Sat Aug 1 06:35:18 2020 New Revision: 363756 URL: https://svnweb.freebsd.org/changeset/base/363756 Log: cache: reshuffle struct cache_fpl and nameidata_saved Shaves 16 bytes. Modified: head/sys/kern/vfs_cache.c Modified: head/sys/kern/vfs_cache.c == --- head/sys/kern/vfs_cache.c Sat Aug 1 06:34:18 2020(r363755) +++ head/sys/kern/vfs_cache.c Sat Aug 1 06:35:18 2020(r363756) @@ -2890,24 +2890,24 @@ cache_fpl_handle_root(struct nameidata *ndp, struct vn * need restoring in case fast path lookup fails. */ struct nameidata_saved { - int cn_flags; long cn_namelen; char *cn_nameptr; size_t ni_pathlen; + int cn_flags; }; struct cache_fpl { - int line; - enum cache_fpl_status status; - bool in_smr; struct nameidata *ndp; - struct nameidata_saved snd; struct componentname *cnp; + struct pwd *pwd; struct vnode *dvp; - seqc_t dvp_seqc; struct vnode *tvp; + seqc_t dvp_seqc; seqc_t tvp_seqc; - struct pwd *pwd; + struct nameidata_saved snd; + int line; + enum cache_fpl_status status:8; + bool in_smr; }; static void ___ svn-src-head@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r363755 - head/sys/kern
Author: mjg Date: Sat Aug 1 06:34:18 2020 New Revision: 363755 URL: https://svnweb.freebsd.org/changeset/base/363755 Log: cache: mark climb_mount as __noinline Modified: head/sys/kern/vfs_cache.c Modified: head/sys/kern/vfs_cache.c == --- head/sys/kern/vfs_cache.c Sat Aug 1 06:33:38 2020(r363754) +++ head/sys/kern/vfs_cache.c Sat Aug 1 06:34:18 2020(r363755) @@ -3448,7 +3448,7 @@ cache_fplookup_mp_supported(struct mount *mp) * By the end of successful walk we are guaranteed the reached state was * indeed present at least at some point which matches the regular lookup. */ -static int +static int __noinline cache_fplookup_climb_mount(struct cache_fpl *fpl) { struct mount *mp, *prev_mp; @@ -3457,9 +3457,8 @@ cache_fplookup_climb_mount(struct cache_fpl *fpl) vp = fpl->tvp; vp_seqc = fpl->tvp_seqc; - if (vp->v_type != VDIR) - return (0); + VNPASS(vp->v_type == VDIR || vp->v_type == VBAD, vp); mp = atomic_load_ptr(>v_mountedhere); if (mp == NULL) return (0); @@ -3503,6 +3502,26 @@ cache_fplookup_climb_mount(struct cache_fpl *fpl) return (0); } +static bool +cache_fplookup_need_climb_mount(struct cache_fpl *fpl) +{ + struct mount *mp; + struct vnode *vp; + + vp = fpl->tvp; + + /* +* Hack: while this is a union, the pointer tends to be NULL so save on +* a branch. +*/ + mp = atomic_load_ptr(>v_mountedhere); + if (mp == NULL) + return (false); + if (vp->v_type == VDIR) + return (true); + return (false); +} + /* * Parse the path. * @@ -3689,9 +3708,11 @@ cache_fplookup_impl(struct vnode *dvp, struct cache_fp VNPASS(!seqc_in_modify(fpl->tvp_seqc), fpl->tvp); - error = cache_fplookup_climb_mount(fpl); - if (__predict_false(error != 0)) { - break; + if (cache_fplookup_need_climb_mount(fpl)) { + error = cache_fplookup_climb_mount(fpl); + if (__predict_false(error != 0)) { + break; + } } VNPASS(!seqc_in_modify(fpl->tvp_seqc), fpl->tvp); ___ svn-src-head@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r363754 - in head/sys: kern sys
Author: mjg Date: Sat Aug 1 06:33:38 2020 New Revision: 363754 URL: https://svnweb.freebsd.org/changeset/base/363754 Log: vfs: inline NDINIT_ALL The routine takes more than 6 arguments, which on amd64 means some of them have to be passed through the stack. Modified: head/sys/kern/vfs_lookup.c head/sys/sys/namei.h Modified: head/sys/kern/vfs_lookup.c == --- head/sys/kern/vfs_lookup.c Sat Aug 1 06:33:11 2020(r363753) +++ head/sys/kern/vfs_lookup.c Sat Aug 1 06:33:38 2020(r363754) @@ -1365,25 +1365,6 @@ bad: return (error); } -void -NDINIT_ALL(struct nameidata *ndp, u_long op, u_long flags, enum uio_seg segflg, -const char *namep, int dirfd, struct vnode *startdir, cap_rights_t *rightsp, -struct thread *td) -{ - - MPASS(rightsp != NULL); - ndp->ni_cnd.cn_nameiop = op; - ndp->ni_cnd.cn_flags = flags; - ndp->ni_segflg = segflg; - ndp->ni_dirp = namep; - ndp->ni_dirfd = dirfd; - ndp->ni_startdir = startdir; - ndp->ni_resflags = 0; - filecaps_init(>ni_filecaps); - ndp->ni_cnd.cn_thread = td; - ndp->ni_rightsneeded = rightsp; -} - /* * Free data allocated by namei(); see namei(9) for details. */ Modified: head/sys/sys/namei.h == --- head/sys/sys/namei.hSat Aug 1 06:33:11 2020(r363753) +++ head/sys/sys/namei.hSat Aug 1 06:33:38 2020(r363754) @@ -196,9 +196,22 @@ intcache_fplookup(struct nameidata *ndp, enum cache_f #defineNDINIT_ATVP(ndp, op, flags, segflg, namep, vp, td) \ NDINIT_ALL(ndp, op, flags, segflg, namep, AT_FDCWD, vp, _no_rights, td) -void NDINIT_ALL(struct nameidata *ndp, u_long op, u_long flags, -enum uio_seg segflg, const char *namep, int dirfd, struct vnode *startdir, -cap_rights_t *rightsp, struct thread *td); +#define NDINIT_ALL(ndp, op, flags, segflg, namep, dirfd, startdir, rightsp, td)\ +do { \ + struct nameidata *_ndp = (ndp); \ + cap_rights_t *_rightsp = (rightsp); \ + MPASS(_rightsp != NULL); \ + _ndp->ni_cnd.cn_nameiop = op; \ + _ndp->ni_cnd.cn_flags = flags; \ + _ndp->ni_segflg = segflg; \ + _ndp->ni_dirp = namep; \ + _ndp->ni_dirfd = dirfd; \ + _ndp->ni_startdir = startdir; \ + _ndp->ni_resflags = 0; \ + filecaps_init(&_ndp->ni_filecaps); \ + _ndp->ni_cnd.cn_thread = td; \ + _ndp->ni_rightsneeded = _rightsp; \ +} while (0) #define NDF_NO_DVP_RELE0x0001 #define NDF_NO_DVP_UNLOCK 0x0002 ___ svn-src-head@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r363753 - in head/sys: kern sys
Author: mjg Date: Sat Aug 1 06:33:11 2020 New Revision: 363753 URL: https://svnweb.freebsd.org/changeset/base/363753 Log: vfs: convert ni_rigthsneeded to a pointer Shaves 8 bytes of struct nameidata on 64-bit platforms. Modified: head/sys/kern/vfs_lookup.c head/sys/sys/namei.h Modified: head/sys/kern/vfs_lookup.c == --- head/sys/kern/vfs_lookup.c Sat Aug 1 06:32:25 2020(r363752) +++ head/sys/kern/vfs_lookup.c Sat Aug 1 06:33:11 2020(r363753) @@ -347,7 +347,7 @@ namei_setup(struct nameidata *ndp, struct vnode **dpp, *dpp = pwd->pwd_cdir; vrefact(*dpp); } else { - rights = ndp->ni_rightsneeded; + rights = *ndp->ni_rightsneeded; cap_rights_set_one(, CAP_LOOKUP); if (cnp->cn_flags & AUDITVNODE1) @@ -403,7 +403,7 @@ namei_setup(struct nameidata *ndp, struct vnode **dpp, ndp->ni_beneath_latch = pwd->pwd_cdir; vrefact(ndp->ni_beneath_latch); } else { - rights = ndp->ni_rightsneeded; + rights = *ndp->ni_rightsneeded; cap_rights_set_one(, CAP_LOOKUP); error = fgetvp_rights(td, ndp->ni_dirfd, , _caps, >ni_beneath_latch); @@ -1381,7 +1381,7 @@ NDINIT_ALL(struct nameidata *ndp, u_long op, u_long fl ndp->ni_resflags = 0; filecaps_init(>ni_filecaps); ndp->ni_cnd.cn_thread = td; - ndp->ni_rightsneeded = *rightsp; + ndp->ni_rightsneeded = rightsp; } /* Modified: head/sys/sys/namei.h == --- head/sys/sys/namei.hSat Aug 1 06:32:25 2020(r363752) +++ head/sys/sys/namei.hSat Aug 1 06:33:11 2020(r363753) @@ -69,7 +69,7 @@ struct nameidata { */ const char *ni_dirp; /* pathname pointer */ enumuio_seg ni_segflg; /* location of pathname */ - cap_rights_t ni_rightsneeded; /* rights required to look up vnode */ + cap_rights_t *ni_rightsneeded; /* rights required to look up vnode */ /* * Arguments to lookup. */ ___ svn-src-head@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r363752 - in head/sys: kern sys
Author: mjg Date: Sat Aug 1 06:32:25 2020 New Revision: 363752 URL: https://svnweb.freebsd.org/changeset/base/363752 Log: vfs: make rights mandatory for NDINIT_ALL Modified: head/sys/kern/vfs_lookup.c head/sys/sys/namei.h Modified: head/sys/kern/vfs_lookup.c == --- head/sys/kern/vfs_lookup.c Sat Aug 1 06:31:58 2020(r363751) +++ head/sys/kern/vfs_lookup.c Sat Aug 1 06:32:25 2020(r363752) @@ -1371,6 +1371,7 @@ NDINIT_ALL(struct nameidata *ndp, u_long op, u_long fl struct thread *td) { + MPASS(rightsp != NULL); ndp->ni_cnd.cn_nameiop = op; ndp->ni_cnd.cn_flags = flags; ndp->ni_segflg = segflg; @@ -1380,10 +1381,7 @@ NDINIT_ALL(struct nameidata *ndp, u_long op, u_long fl ndp->ni_resflags = 0; filecaps_init(>ni_filecaps); ndp->ni_cnd.cn_thread = td; - if (rightsp != NULL) - ndp->ni_rightsneeded = *rightsp; - else - cap_rights_init_zero(>ni_rightsneeded); + ndp->ni_rightsneeded = *rightsp; } /* Modified: head/sys/sys/namei.h == --- head/sys/sys/namei.hSat Aug 1 06:31:58 2020(r363751) +++ head/sys/sys/namei.hSat Aug 1 06:32:25 2020(r363752) @@ -188,13 +188,13 @@ int cache_fplookup(struct nameidata *ndp, enum cache_f * Initialization of a nameidata structure. */ #defineNDINIT(ndp, op, flags, segflg, namep, td) \ - NDINIT_ALL(ndp, op, flags, segflg, namep, AT_FDCWD, NULL, 0, td) + NDINIT_ALL(ndp, op, flags, segflg, namep, AT_FDCWD, NULL, _no_rights, td) #defineNDINIT_AT(ndp, op, flags, segflg, namep, dirfd, td) \ - NDINIT_ALL(ndp, op, flags, segflg, namep, dirfd, NULL, 0, td) + NDINIT_ALL(ndp, op, flags, segflg, namep, dirfd, NULL, _no_rights, td) #defineNDINIT_ATRIGHTS(ndp, op, flags, segflg, namep, dirfd, rightsp, td) \ NDINIT_ALL(ndp, op, flags, segflg, namep, dirfd, NULL, rightsp, td) #defineNDINIT_ATVP(ndp, op, flags, segflg, namep, vp, td) \ - NDINIT_ALL(ndp, op, flags, segflg, namep, AT_FDCWD, vp, 0, td) + NDINIT_ALL(ndp, op, flags, segflg, namep, AT_FDCWD, vp, _no_rights, td) void NDINIT_ALL(struct nameidata *ndp, u_long op, u_long flags, enum uio_seg segflg, const char *namep, int dirfd, struct vnode *startdir, ___ svn-src-head@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"
svn commit: r363751 - head/sys/sys
Author: mjg Date: Sat Aug 1 06:31:58 2020 New Revision: 363751 URL: https://svnweb.freebsd.org/changeset/base/363751 Log: capsicum: move global caps to caprights.h .. for easier inclusion Modified: head/sys/sys/caprights.h head/sys/sys/capsicum.h Modified: head/sys/sys/caprights.h == --- head/sys/sys/caprights.hSat Aug 1 04:57:30 2020(r363750) +++ head/sys/sys/caprights.hSat Aug 1 06:31:58 2020(r363751) @@ -60,4 +60,52 @@ struct cap_rights { typedefstruct cap_rights cap_rights_t; #endif +#ifdef _KERNEL +extern cap_rights_t cap_accept_rights; +extern cap_rights_t cap_bind_rights; +extern cap_rights_t cap_connect_rights; +extern cap_rights_t cap_event_rights; +extern cap_rights_t cap_fchdir_rights; +extern cap_rights_t cap_fchflags_rights; +extern cap_rights_t cap_fchmod_rights; +extern cap_rights_t cap_fchown_rights; +extern cap_rights_t cap_fcntl_rights; +extern cap_rights_t cap_fexecve_rights; +extern cap_rights_t cap_flock_rights; +extern cap_rights_t cap_fpathconf_rights; +extern cap_rights_t cap_fstat_rights; +extern cap_rights_t cap_fstatfs_rights; +extern cap_rights_t cap_fsync_rights; +extern cap_rights_t cap_ftruncate_rights; +extern cap_rights_t cap_futimes_rights; +extern cap_rights_t cap_getpeername_rights; +extern cap_rights_t cap_getsockopt_rights; +extern cap_rights_t cap_getsockname_rights; +extern cap_rights_t cap_ioctl_rights; +extern cap_rights_t cap_linkat_source_rights; +extern cap_rights_t cap_linkat_target_rights; +extern cap_rights_t cap_listen_rights; +extern cap_rights_t cap_mkdirat_rights; +extern cap_rights_t cap_mkfifoat_rights; +extern cap_rights_t cap_mknodat_rights; +extern cap_rights_t cap_mmap_rights; +extern cap_rights_t cap_no_rights; +extern cap_rights_t cap_pdgetpid_rights; +extern cap_rights_t cap_pdkill_rights; +extern cap_rights_t cap_pread_rights; +extern cap_rights_t cap_pwrite_rights; +extern cap_rights_t cap_read_rights; +extern cap_rights_t cap_recv_rights; +extern cap_rights_t cap_renameat_source_rights; +extern cap_rights_t cap_renameat_target_rights; +extern cap_rights_t cap_seek_rights; +extern cap_rights_t cap_send_rights; +extern cap_rights_t cap_send_connect_rights; +extern cap_rights_t cap_setsockopt_rights; +extern cap_rights_t cap_shutdown_rights; +extern cap_rights_t cap_symlinkat_rights; +extern cap_rights_t cap_unlinkat_rights; +extern cap_rights_t cap_write_rights; +#endif + #endif /* !_SYS_CAPRIGHTS_H_ */ Modified: head/sys/sys/capsicum.h == --- head/sys/sys/capsicum.h Sat Aug 1 04:57:30 2020(r363750) +++ head/sys/sys/capsicum.h Sat Aug 1 06:31:58 2020(r363751) @@ -419,51 +419,6 @@ __END_DECLS #ifdef _KERNEL #include -extern cap_rights_t cap_accept_rights; -extern cap_rights_t cap_bind_rights; -extern cap_rights_t cap_connect_rights; -extern cap_rights_t cap_event_rights; -extern cap_rights_t cap_fchdir_rights; -extern cap_rights_t cap_fchflags_rights; -extern cap_rights_t cap_fchmod_rights; -extern cap_rights_t cap_fchown_rights; -extern cap_rights_t cap_fcntl_rights; -extern cap_rights_t cap_fexecve_rights; -extern cap_rights_t cap_flock_rights; -extern cap_rights_t cap_fpathconf_rights; -extern cap_rights_t cap_fstat_rights; -extern cap_rights_t cap_fstatfs_rights; -extern cap_rights_t cap_fsync_rights; -extern cap_rights_t cap_ftruncate_rights; -extern cap_rights_t cap_futimes_rights; -extern cap_rights_t cap_getpeername_rights; -extern cap_rights_t cap_getsockopt_rights; -extern cap_rights_t cap_getsockname_rights; -extern cap_rights_t cap_ioctl_rights; -extern cap_rights_t cap_linkat_source_rights; -extern cap_rights_t cap_linkat_target_rights; -extern cap_rights_t cap_listen_rights; -extern cap_rights_t cap_mkdirat_rights; -extern cap_rights_t cap_mkfifoat_rights; -extern cap_rights_t cap_mknodat_rights; -extern cap_rights_t cap_mmap_rights; -extern cap_rights_t cap_no_rights; -extern cap_rights_t cap_pdgetpid_rights; -extern cap_rights_t cap_pdkill_rights; -extern cap_rights_t cap_pread_rights; -extern cap_rights_t cap_pwrite_rights; -extern cap_rights_t cap_read_rights; -extern cap_rights_t cap_recv_rights; -extern cap_rights_t cap_renameat_source_rights; -extern cap_rights_t cap_renameat_target_rights; -extern cap_rights_t cap_seek_rights; -extern cap_rights_t cap_send_rights; -extern cap_rights_t cap_send_connect_rights; -extern cap_rights_t cap_setsockopt_rights; -extern cap_rights_t cap_shutdown_rights; -extern cap_rights_t cap_symlinkat_rights; -extern cap_rights_t cap_unlinkat_rights; -extern cap_rights_t cap_write_rights; #define IN_CAPABILITY_MODE(td) (((td)->td_ucred->cr_flags & CRED_FLAG_CAPMODE) != 0) ___ svn-src-head@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to