From owner-svn-src-all@freebsd.org Tue Sep 18 11:58:07 2018 Return-Path: Delivered-To: svn-src-all@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 08BBF109C0DC; Tue, 18 Sep 2018 11:58:07 +0000 (UTC) (envelope-from bu7cher@yandex.ru) Received: from forward104o.mail.yandex.net (forward104o.mail.yandex.net [IPv6:2a02:6b8:0:1a2d::607]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client CN "forwards.mail.yandex.net", Issuer "Yandex CA" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 679B88D25B; Tue, 18 Sep 2018 11:58:06 +0000 (UTC) (envelope-from bu7cher@yandex.ru) Received: from mxback15j.mail.yandex.net (mxback15j.mail.yandex.net [IPv6:2a02:6b8:0:1619::91]) by forward104o.mail.yandex.net (Yandex) with ESMTP id 878563D85599; Tue, 18 Sep 2018 14:58:03 +0300 (MSK) Received: from smtp4p.mail.yandex.net (smtp4p.mail.yandex.net [2a02:6b8:0:1402::15:6]) by mxback15j.mail.yandex.net (nwsmtp/Yandex) with ESMTP id hLZlqUrbTQ-w3k8YcRl; Tue, 18 Sep 2018 14:58:03 +0300 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1537271883; bh=qQEFUaWmLOoe6eC23R8KhvVzi01Wo7oqO19XTMGdSeE=; h=Subject:To:Cc:References:From:Message-ID:Date:In-Reply-To; b=vRaLbkdEXMkaZ3ZC9Bs9D3IpwObNwXY6crinawSzdBj1cjyJog/i48UHErR1f/FF1 Hn7N6fHOWxl16EOjkblk8r6A5UJwy6poiInFDUhZlX+FuSfFX6UmdYKgelI7qfQM/L T85a3NNUGKMsbSF2rfb2EVkjWFROOxPi7d42pCVo= Received: by smtp4p.mail.yandex.net (nwsmtp/Yandex) with ESMTPSA id GePb6dGOcZ-w25WVsnC; Tue, 18 Sep 2018 14:58:02 +0300 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client certificate not present) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1537271882; bh=qQEFUaWmLOoe6eC23R8KhvVzi01Wo7oqO19XTMGdSeE=; h=Subject:To:Cc:References:From:Message-ID:Date:In-Reply-To; b=sIVxw1IPaUGcDIs+oDEvvKYT1wByWIPBqGggDByk7AzBu/9Q5bbdYd0UxKC8t+wRl JKEERvvIyLpnd2Z9SoqO+UbGoqf80LO1wahJNyjWvtB9VwG0njS2qTmNyRfQRMczWI 1bO/pyZBIaA5XRCNjvAcgVwN7K0ZDpec4br+Rzhc= Authentication-Results: smtp4p.mail.yandex.net; dkim=pass header.i=@yandex.ru Subject: Re: svn commit: r336439 - in head: share/man/man9 sys/crypto/aesni sys/crypto/armv8 sys/crypto/blake2 sys/crypto/ccp sys/crypto/via sys/dev/cesa sys/dev/cxgbe/crypto sys/dev/hifn sys/dev/safe sys/dev/s... To: cem@freebsd.org Cc: src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org References: <201807180056.w6I0uPb6000705@repo.freebsd.org> <6d1d2b23-978b-af1d-4022-16d09c9a42f5@yandex.ru> From: "Andrey V. Elsukov" Openpgp: id=E6591E1B41DA1516F0C9BC0001C5EA0410C8A17A Autocrypt: addr=bu7cher@yandex.ru; prefer-encrypt=mutual; keydata= xsBNBEwBF1kBCADB9sXFhBEUy8qQ4X63Y8eBatYMHGEFWN9ypS5lI3RE6qQW2EYbxNk7qUC5 21YIIS1mMFVBEfvR7J9uc7yaYgFCEb6Sce1RSO4ULN2mRKGHP3/Sl0ijZEjWHV91hY1YTHEF ZW/0GYinDf56sYpDDehaBF5wkWIo1+QK5nmj3vl0DIDCMNd7QEiWpyLVwECgLX2eOAXByT8B bCqVhJGcG6iFP7/B9Ll6uX5gb8thM9LM+ibwErDBVDGiOgvfxqidab7fdkh893IBCXa82H9N CNwnEtcgzh+BSKK5BgvPohFMgRwjti37TSxwLu63QejRGbZWSz3OK3jMOoF63tCgn7FvABEB AAHNIkFuZHJleSBWLiBFbHN1a292IDxhZUBmcmVlYnNkLm9yZz7CwHsEEwECACUCGwMGCwkI BwMCBhUIAgkKCwQWAgMBAh4BAheABQJMB/ruAhkBAAoJEAHF6gQQyKF6MLwH/3Ri/TZl9uo0 SepYWXOnxL6EaDVXDA+dLb1eLKC4PRBBjX29ttQ0KaWapiE6y5/AfzOPmRtHLrHYHjd/aiHX GMLHcYRXD+5GvdkK8iMALrZ28X0JXyuuZa8rAxWIWmCbYHNSBy2unqWgTI04Erodk90IALgM 9JeHN9sFqTM6zalrMnTzlcmel4kcjT3lyYw3vOKgoYLtsLhKZSbJoVVVlvRlGBpHFJI5AoYJ SyfXoN0rcX6k9X7Isp2K50YjqxV4v78xluh1puhwZyC0p8IShPrmrp9Oy9JkMX90o6UAXdGU KfdExJuGJfUZOFBTtNIMNIAKfMTjhpRhxONIr0emxxDOwE0ETAEXWQEIAJ2p6l9LBoqdH/0J PEFDY2t2gTvAuzz+8zs3R03dFuHcNbOwjvWCG0aOmVpAzkRa8egn5JB4sZaFUtKPYJEQ1Iu+ LUBwgvtXf4vWpzC67zs2dDuiW4LamH5p6xkTD61aHR7mCB3bg2TUjrDWn2Jt44cvoYxj3dz4 S49U1rc9ZPgD5axCNv45j72tggWlZvpefThP7xT1OlNTUqye2gAwQravXpZkl5JG4eOqJVIU X316iE3qso0iXRUtO7OseBf0PiVmk+wCahdreHOeOxK5jMhYkPKVn7z1sZiB7W2H2TojbmcK HZC22sz7Z/H36Lhg1+/RCnGzdEcjGc8oFHXHCxUAEQEAAcLAXwQYAQIACQUCTAEXWQIbDAAK CRABxeoEEMihegkYCAC3ivGYNe2taNm/4Nx5GPdzuaAJGKWksV+w9mo7dQvU+NmI2az5w8vw 98OmX7G0OV9snxMW+6cyNqBrVFTu33VVNzz9pnqNCHxGvj5dL5ltP160JV2zw2bUwJBYsgYQ WfyJJIM7l3gv5ZS3DGqaGIm9gOK1ANxfrR5PgPzvI9VxDhlr2juEVMZYAqPLEJe+SSxbwLoz BcFCNdDAyXcaAzXsx/E02YWm1hIWNRxanAe7Vlg7OL+gvLpdtrYCMg28PNqKNyrQ87LQ49O9 50IIZDOtNFeR0FGucjcLPdS9PiEqCoH7/waJxWp6ydJ+g4OYRBYNM0EmMgy1N85JJrV1mi5i Message-ID: Date: Tue, 18 Sep 2018 14:56:53 +0300 User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 In-Reply-To: Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="5FqrIpHqBPZoOAtu9ddhXkpe3QMcqY9jP" X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.27 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 18 Sep 2018 11:58:07 -0000 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --5FqrIpHqBPZoOAtu9ddhXkpe3QMcqY9jP Content-Type: multipart/mixed; boundary="NUGoJLdKsOiUkR24bZRU2Hs1iDY49Jh0U"; protected-headers="v1" From: "Andrey V. Elsukov" To: cem@freebsd.org Cc: src-committers , svn-src-all@freebsd.org, svn-src-head@freebsd.org Message-ID: Subject: Re: svn commit: r336439 - in head: share/man/man9 sys/crypto/aesni sys/crypto/armv8 sys/crypto/blake2 sys/crypto/ccp sys/crypto/via sys/dev/cesa sys/dev/cxgbe/crypto sys/dev/hifn sys/dev/safe sys/dev/s... References: <201807180056.w6I0uPb6000705@repo.freebsd.org> <6d1d2b23-978b-af1d-4022-16d09c9a42f5@yandex.ru> In-Reply-To: --NUGoJLdKsOiUkR24bZRU2Hs1iDY49Jh0U Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: quoted-printable On 17.08.2018 19:01, Conrad Meyer wrote: > Please file a PR and we can track it there. >=20 > The first suggestion that comes to mind is that the XFORMS_LOCK > protects modification of the xforms list =E2=80=94 not the lifetime of = objects > in it =E2=80=94 so drop the list lock over xf_init(). It does not appe= ar that > xform_init can race with xform_detach with the lock dropped. >=20 > xform_init is called only by key_setsaval, which is called in two > places: key_newsav, and key_update. In key_newsav, it is used on > sav's that are not yet linked in to a sah. In key_update, it is on > larbal sav's only (i.e., linked in to savtree_larval list but not > savtree_alive list). >=20 > xform_detach -> key_delete_xform only enumerates over the sahtree > looking for sah's with sav's present in savtree_alive with matching > xform. Since neither key_newsav nor key_update insert the sav into > the sah savtree_alive list until after setsaval -> xform_init, there > is no race between xform_init and xform_detach (protected by > SAHTREE_WLOCK). >=20 > I think this patch may be safe, and would remove the OOM-induced > deadlock condition: >=20 > --- netipsec/key.c (revision 337955) > +++ netipsec/key.c (working copy) > @@ -8676,11 +8676,13 @@ > XFORMS_LOCK(); > LIST_FOREACH(entry, &xforms, chain) { > if (entry->xf_type =3D=3D xftype) { > + XFORMS_UNLOCK(); > ret =3D (*entry->xf_init)(sav, entry); > - break; > + goto out; > } > } > XFORMS_UNLOCK(); > +out: > return (ret); > } I think this will work for now, but a potential problem can occur when xform that is going to be detached placed is some kld. I.e. some application invokes SA creation and another thread does kldunload ipsec_esp.ko (currently we don't have such module, but...) So, when we drop XFORMS_LOCK after check "entry->xf_type =3D=3D xftype", xf_init can become unavailable due to kldunload happened. --=20 WBR, Andrey V. Elsukov --NUGoJLdKsOiUkR24bZRU2Hs1iDY49Jh0U-- --5FqrIpHqBPZoOAtu9ddhXkpe3QMcqY9jP Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Comment: Using GnuPG with Thunderbird - https://www.enigmail.net/ iQEzBAEBCAAdFiEE5lkeG0HaFRbwybwAAcXqBBDIoXoFAlug6AYACgkQAcXqBBDI oXpddQf+NzoYGl7fBofowvy2N9nCKB0hrIjQZVb1cYm/OtZlCxJFbaEr3AEhZyez hcJzYIt3WAdz2sUR+Mz2qnG0f5Nrcxn6737lHCm981Ra+gZqYhSvZDMeeFHsTCs6 QIPrVPVXa0OFFfLiARW35ZmjcRAUhEaRUnHmgTFzz+DUUiK59jWBkuTLAipX0uET 7WESwGHS3PPj2o5xx2TsxD96nrCmGFgYQfUBL9TPLa+DzdzQoSwdTM9HDseM7M3K D7yOK6kca310ehxUN5yfKhok9Bmkz/MOkCjF2r2gvAOEcKxru1mcinTGreffzNXh Q7O6EstitP19WwOpsAc0MsVoiD5L/A== =1DJX -----END PGP SIGNATURE----- --5FqrIpHqBPZoOAtu9ddhXkpe3QMcqY9jP--