Received: by 2002:a05:6a10:c604:0:0:0:0 with SMTP id y4csp349016pxt; Fri, 6 Aug 2021 03:37:11 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxbYzrw3VX/EVEKSMQ2TEVGOiRUHxlWbJAXiPwoHESAOcJY01Y/H2fFDXFKggZ1bsCV+ycH X-Received: by 2002:a05:6638:2714:: with SMTP id m20mr9082677jav.41.1628246230924; Fri, 06 Aug 2021 03:37:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1628246230; cv=none; d=google.com; s=arc-20160816; b=m9k7IYyNwCnIcPN2U2PQhfWrN9ZIXS34kQHZsw2nYZMmFdWvgRboIeTSMRTmMWuNQj Ww4q/z4jCQi2cSMbTj3q2Nq3pMgqi6aGloDz3Yk35wJjIB2o6IEk6URoMWQVDjDXPpTx 2Jw0li/z1evSVl8CQ1VhYLdFIVqqKsE4/NiHOM+faN0MyCHKCxQjpIiIeDYtAtSAaCWd lpoD1DxfxZaFkA0TA41ZQT7V/vUyiQwFJ2aJU0ylci5eyv65QRSA5viLjJz/VVy1fkTc Nx0cl1FwmxXIhGFDU5tuoVesqi2G+ghn/R+7XxLsFy6cGCeVH2LVoI9i+61tZ/yayxp4 pq7Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=KvDsWq0aD9C7qh0g19FSMx9NiSGhRzrfiTYiXVD5DrQ=; b=z+pcB/As5hWYSEu/wUgC/dHAxT8d0FK3KZo7NfJRt+Cv7/vHoV/69JgX+qGhjCkn4I UJOSZ4Mh2bXquUaAo81UmIgKR4Jj/tL7hNvss9hv/IkyhYWAnL0hPX5ATl3aqfKVrVPB BKb+2NfEQocpqtXyXdvNkRdfquUVNnJwtvQ6TncRaNJBbitFciWQ7vV9W7UVQylrmJTP 3w1vMK70CcaLUsIxxxhwYrHpur2UIYpQU+pnKVQA2bWvG/5m2mwC92rH7u7bUJ7M94I6 knnSKevfkyWsEvZjHR/Ew5eeMvgVgI6vYx1lmOA+UKlqEbDxoFpYddq159KKrGldkcDt 1+Uw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=MXxObmZt; spf=pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id a12si5273374jac.69.2021.08.06.03.36.50; Fri, 06 Aug 2021 03:37:10 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=MXxObmZt; spf=pass (google.com: domain of linux-crypto-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-crypto-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S245153AbhHFKgg (ORCPT + 99 others); Fri, 6 Aug 2021 06:36:36 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33224 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S245103AbhHFKgf (ORCPT ); Fri, 6 Aug 2021 06:36:35 -0400 Received: from mail-pj1-x1032.google.com (mail-pj1-x1032.google.com [IPv6:2607:f8b0:4864:20::1032]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4F3E1C061798; Fri, 6 Aug 2021 03:36:18 -0700 (PDT) Received: by mail-pj1-x1032.google.com with SMTP id l19so16041445pjz.0; Fri, 06 Aug 2021 03:36:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:in-reply-to; bh=KvDsWq0aD9C7qh0g19FSMx9NiSGhRzrfiTYiXVD5DrQ=; b=MXxObmZt4nfxA1erJGVzMqnOkcazWAzBFX5WJDMmNvE3MS6cAmvs0dvfjU3xn03JSx cbZp/3kn4sOISQ7g+gS9A+VMecWeUqBFmKASryFE10839CsGxmgBZuC+2jFuBfUSf8zP WIN1PaRCRIz7t/UeIUYyocC8bWtXuav/ndV/D0VGIYI5LjrYVYQSltvCWwYI4iOMIHgk L7YdQLzqgPpbH3hz+lB7poc8YggmvsjgT2vSp3UBDnC0P1AMfkD+CG8RmRDUvJ9T8dFe xeLcnpvTRlgbcPVTvs/neCkXGWi6unA7fro9NlmHImu6uvXrNUAK/TrkZJLB2UlH63Va G+AA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:in-reply-to; bh=KvDsWq0aD9C7qh0g19FSMx9NiSGhRzrfiTYiXVD5DrQ=; b=udb0e8I57VJW7NvFMUCUWknM4Xj8ziSxBzAPXylQuEQdogiX4XUWMAiIxRxMifGj1z OLy3RhNFdgtjEgxSTEG3J0DNARj7syGN0e8bB00BdE7rs23dnytOmBoulF4QG4ijwH6F hDVa2Bpva4yKG978pYNZYkXEZnN5EobXsAT8BGHYfLNMi7e2C2ghn+HAXWSinlxbA+xX jtLWZZuGNHbRxmeKippcAdCMImATe7pVOijxbwf6iD3E9Ck9DE4m1BnELoAUMAuT0odO v3/lC646wZK9+QyoyL7KwlgA70JerC8KSpFixpZW2m6MUM4X3aBMv4K8KfQmPgF/COwi 5i0Q== X-Gm-Message-State: AOAM530LrvNa8DimMgFHOgjUytu1GHYqOH1sdiI8C1M0eouf+o+fppLP 6i8ZT+Ud2NUI9HBw0qY04CE= X-Received: by 2002:a17:90a:940e:: with SMTP id r14mr20097966pjo.41.1628246177736; Fri, 06 Aug 2021 03:36:17 -0700 (PDT) Received: from fedora ([2405:201:6008:6ce2:9fb0:9db:90a4:39e2]) by smtp.gmail.com with ESMTPSA id g7sm9477138pfv.66.2021.08.06.03.36.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 06 Aug 2021 03:36:17 -0700 (PDT) Date: Fri, 6 Aug 2021 16:06:11 +0530 From: Shreyansh Chouhan To: Ard Biesheuvel Cc: Herbert Xu , "David S. Miller" , Thomas Gleixner , Ingo Molnar , Borislav Petkov , X86 ML , "H. Peter Anvin" , Linux Crypto Mailing List , Linux Kernel Mailing List , syzbot+20191dc583eff8602d2d@syzkaller.appspotmail.com Subject: Re: [PATCH] crypto: add missing kernel_fpu_end() call Message-ID: References: <20210730134155.1005358-1-chouhan.shreyansh630@gmail.com> <20210806082320.GA12731@gondor.apana.org.au> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: Precedence: bulk List-ID: X-Mailing-List: linux-crypto@vger.kernel.org Hi, On Fri, Aug 06, 2021 at 11:07:43AM +0200, Ard Biesheuvel wrote: > On Fri, 6 Aug 2021 at 11:05, Ard Biesheuvel wrote: > > > > On Fri, 6 Aug 2021 at 10:23, Herbert Xu wrote: > > > > > > On Fri, Jul 30, 2021 at 07:11:55PM +0530, Shreyansh Chouhan wrote: > > > > xts_crypt() code doesn't call kernel_fpu_end() after calling > > > > kernel_fpu_begin() if walk.nbytes is 0. Add a call to kernel_fpu_end() > > > > for this case. > > > > > > > > Reported-by: syzbot+20191dc583eff8602d2d@syzkaller.appspotmail.com > > > > Signed-off-by: Shreyansh Chouhan > > > > --- > > > > arch/x86/crypto/aesni-intel_glue.c | 3 +++ > > > > 1 file changed, 3 insertions(+) > > > > > > Ard? > > > > > > > diff --git a/arch/x86/crypto/aesni-intel_glue.c b/arch/x86/crypto/aesni-intel_glue.c > > > > index 2144e54a6c89..bd55a0cd7bde 100644 > > > > --- a/arch/x86/crypto/aesni-intel_glue.c > > > > +++ b/arch/x86/crypto/aesni-intel_glue.c > > > > @@ -894,6 +894,9 @@ static int xts_crypt(struct skcipher_request *req, bool encrypt) > > > > kernel_fpu_begin(); > > > > } > > > > > > > > + if (walk.nbytes == 0) > > > > + kernel_fpu_end(); > > > > + > > > > Don't we end up calling kernel_fpu_end() twice this way if we do enter > > the while() loop at least once? > > Oh ha, we do. I missed that. > > How about the below instead, does that work? > This should work. I will resend the updated patch. > --- a/arch/x86/crypto/aesni-intel_glue.c > +++ b/arch/x86/crypto/aesni-intel_glue.c > @@ -849,7 +849,7 @@ static int xts_crypt(struct skcipher_request *req, > bool encrypt) > return -EINVAL; > > err = skcipher_walk_virt(&walk, req, false); > - if (err) > + if (err || !walk.nbytes) > return err; > > if (unlikely(tail > 0 && walk.nbytes < walk.total)) { Thanks a lot for the review. Regards, Shreyansh Chouhan